Pasang partisi NTFS saat startup, dengan pengguna non-root sebagai pemilik


28

Saya sedang memasang partisi NTFS saat startup menggunakan baris berikut di / etc / fstab:

/dev/sda3        /media/data           ntfs      nls=iso8859-1,umask=000

Untuk instalasi Ubuntu 11.10 saya, sepertinya semua file dan folder dimiliki oleh root- dan karena NTFS tidak benar-benar mendukung sistem manajemen hak yang sama, tidak ada cara saya dapat mengubahnya setelah mount selesai. Apa pun yang saya lakukan, di ls -lmana saja di partisi NTFS akan mencantumkan setiap file dan folder yang dimiliki oleh root:root.

Namun, ini menyebabkan beberapa masalah bagi saya. Terutama, beberapa aplikasi yang berjalan di bawah akun saya (disebut tomas) mengeluh tentang hak akses. Juga, setiap kali saya mencoba menyalin ( cp) atau memindahkan mvfile ( ) dari salah satu partisi ext3 saya ke partisi NTFS, saya mendapatkan pesan kesalahan yang mengatakan

mv: preserving times for `[path to new file]`: Operation not permitted

atau, sama halnya

mv: preserving permissions for ...

Apakah pemasangan partisi di nama saya bukan bantuan root? Jika demikian, bagaimana cara melakukannya di fstab?


Memperbarui:

Saya sekarang telah mengubah opsi sesuai saran, dan tiba di ini:

nls=iso8859-1,permissions,users,umask=000,uid=tomas,gid=tomas

ls -lsekarang menunjukkan semua file yang saya miliki alih-alih oleh root, dan sepertinya beberapa masalah yang saya miliki sebelumnya diselesaikan. Namun, tidak semuanya.

Ketika saya memulai Eclipse, saya mendapatkan kesalahan bahwa file yang terkait dengan android-SDK tidak dapat dijalankan: Izin ditolak. ls -lmemberi tahu saya hal berikut tentang file:

-rwxrwxrwx 1 tomas tomas 159620 2011-11-29 14:50 adb*

Ini terlihat seperti yang saya inginkan. Tetapi jika saya mencoba menjalankannya ( ./adbdi terminal) saya juga mendapat izin yang ditolak kesalahannya. Tetapi jika saya menjalankannya sudo, itu berfungsi (saya percaya - setidaknya itu tidak memberi saya pesan kesalahan, tetapi tidak memberi saya output sama sekali, yang saya pikir seharusnya tidak ...)

Mengapa file di atas, dengan mengeksekusi izin untuk siapa pun , masih tidak dapat dieksekusi oleh orang lain selain root? Bagaimana cara mengubah cara saya memasang sistem file jadi?


Pembaruan 2:

OK, saya sekarang sudah datang sedikit lebih jauh. Dengan memasang dengan opsi-opsi ini

nls=iso8859-1,permissions,users,auto

Saya mendapatkan semua izin mengatur seperti yang saya harapkan, dan chowndan chmodbenar - benar mengubah pengaturan pada file (setidaknya sesuai dengan ls -l) = D

TETAPI sistem saya masih bertingkah aneh. Izin untuk adbfile skrip muncul seperti di atas, tetapi baik saya maupun Eclipse tidak dapat menjalankannya tanpa kesalahan "Izin ditolak". Tetapi sejauh yang saya bisa lihat file memiliki semua flag yang diperlukan ditetapkan ( o=rwxharus cukup, kan?). Mengapa itu tidak berhasil?


Perbarui 3

OK, saya membuat semuanya berfungsi di sisi Ubuntu, dengan opsi berikut:

nls=iso8859-1,permissions,users,auto,exec

Namun, ketika saya mencoba mengakses file pada partisi dari Windows, pengaturan keamanan semua kacau. Pada semua file (dari beberapa yang saya teliti) akun baru yang dipanggil Account Unknown(long GUID)telah ditambahkan ke daftar pengguna, dan memiliki hak penuh. Kekurangan untuk sebagian besar pengguna lain berkurang sehingga saya tidak memiliki hak untuk melakukan hal-hal yang saya harapkan. Khususnya "Semua Orang" tampaknya tidak lagi memiliki hak untuk "Melintasi folder / mengeksekusi".

Ini mungkin dapat dipecahkan dengan hanya memilih partisi dan memungkinkan Semua Orang untuk melakukan apa saja pada folder root, dan kemudian katakan untuk melakukannya secara rekursif, tapi saya lebih suka tidak karena saya khawatir akan membutuhkan waktu berhari-hari untuk menyelesaikan ...


2
Dari gunung (8) : users Allow every user to mount and unmount the filesystem. This option implies the options noexec, ... unless overridden by subsequent options, as in the option line users,exec,dev,suid). Jadi tambahkan execke opsi Anda dan saya yakin masalah izin untuk eksekusi harus diselesaikan.
benwh

Apakah Anda pernah menyelesaikan masalah ini setelah Pembaruan 3? ... Saya mencoba pada satu titik untuk melakukan backup rsync dari sistem linux saya ke drive ntfs tambahan yang saya miliki, tetapi setelah banyak pencarian, sampai pada kesimpulan bahwa saya tidak akan pernah bisa memasukkan rangkaian lengkap informasi sistem file linux ke sebuah ntfs fs. (Yah, mungkin saya bisa mendekati seperti yang Anda lakukan di atas, tetapi pada akhirnya linux tidak memetakan dengan baik ke ntfs.)
Tampilan elips

@Elipticalview: Ini sudah lama sekali, dan saya tidak punya komputer yang sama lagi. Apakah Anda mencoba jawaban yang diterima?
Tomas Aschan

Jawaban:


25

Di kolom opsi tambahkan permissionsdan auto(dan mungkin useratau users)

nls=iso8859-1,permissions,users,auto
  • permissions: (Opsi NTFS-3G) Menetapkan izin standar pada file yang dibuat dan menggunakan kontrol akses standar.
  • auto: Akan dipasang saat boot dan dari mount -a
  • user: Izinkan pengguna biasa memasang sistem file
  • users: Izinkan setiap pengguna untuk memasang dan melepas sistem file

Kemudian ubah kepemilikan sistem file:

sudo chown -R thomas:thomas /media/data 

Baris saya masuk /etc/fstab

/dev/sda5 /media/ntfs ntfs-3g users,permissions,auto 0 0

Pasang dan daftarkan izin

sudo mount /media/ntfs
Using default user mapping

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 root root 4096 2012-01-04 17:08 ntfs

Ubah kepemilikan dan daftarkan izin baru

bodhi@ufbt:~$ sudo chown bodhi:bodhi /media/ntfs

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 bodhi bodhi 4096 2012-01-04 17:10 ntfs

Secara default, ntfs-3g me-mount partisi noexec, nosuid, dan nodev.

  • noexec: Jangan izinkan eksekusi langsung dari sembarang binari pada sistem file yang dipasang
  • nosuid: Jangan izinkan bit set-user-identifier atau set-group-identifier berlaku.
  • nodev: Jangan menafsirkan karakter atau memblokir perangkat khusus pada sistem file.

Untuk menimpa ini dan memungkinkan menjalankan file, gunakan exec

/dev/sda5 /media/ntfs ntfs-3g exec,permissions,auto 0 0

Sekarang kita dapatkan

bodhi@ufbt:~$ ls -l /media/ntfs

-rwx------ 1 bodhi bodhi 28 2012-01-04 17:16 file

bodhi@ufbt:~$ /media/ntfs/file
It works

Hm ... setelah menambahkannya ke fstab (membuat kolom opsi hte sebagai berikut nls=iso8859-1,permissions,users,umask=000:) dan me-reboot sekarang saya dapat memindahkan dan menyalin file tanpa pesan kesalahan. Semua file tetap ditampilkan sebagai miliknya root:root, meskipun setelahnya sudo chown -R tomas:tomas /media/data. Sepertinya tidak menjadi masalah untuk saat ini, tetapi karena penasaran: mengapa begitu?
Tomas Aschan

Saya pikir karena Andaumask=000
Panther

Tidak, umask=000sama dengan chmod 777- umask mendefinisikan semua flag yang tidak ingin Anda atur di file. Saya setuju itu berlawanan dengan intuisi, tetapi semuanya ada di sini: ubuntuforums.org/showpost.php?p=9092899&postcount=4
Tomas Aschan

Saya telah memperbarui pertanyaan saya dengan info lebih lanjut tentang apa yang saya coba dan hasilnya.
Tomas Aschan

1
Hm ... Saya harus menghapus tanda ini untuk saat ini: ternyata, ini mengacaukan izin ketika membaca file dari Windows ...
Tomas Aschan

2

Gunakan opsi uiddan gid(atau gunakan fitur pemetaan pengguna) dari mount.ntfs (8)


1
Dengan kata lain, tambahkan uid = siapa pun ke baris fstab
psusi

uiddan gidberfungsi, tetapi izin sekarang didukung dalam ntfs-3g, dan opsi-opsi tersebut melampaui permissionsopsi. Lihat: b.andre.pagesperso-orange.fr/permissions.html
Panther

Saya telah memperbarui pertanyaan saya dengan info lebih lanjut tentang apa yang telah saya coba dan hasil yang saya dapatkan. Silakan lihat =)
Tomas Aschan

Dapatkah Anda memperbarui entri fstab Anda dan menghapus uid, gid, dan umask Anda, hanya nls=iso8859-1,permissions,users, unmount dan pasang kembali partisi.
Panther

@ bodhi.zazen: Lalu kita kembali ke titik awal. File muncul sebagai milik oleh root:rootdan Eclipse mengeluh tentang izin.
Tomas Aschan

2

Milik saya bekerja dengan sempurna saat saya mengubah baris fstab ke

UUID=761C84B31C846FC3 /media/d        ntfs    defaults,umask=022,uid=1000 0       0

1

Bagaimana dengan menggunakan udisks? Itu dapat dengan mudah me-mount partisi NTFS dengan pengguna Anda sebagai pemilik.

Contoh (ketik di baris perintah):

/usr/bin/udisks --mount /dev/sda3

Anda juga dapat menambahkan perintah itu ke aplikasi startup dan itu akan dipasang secara otomatis saat Anda masuk.

Referensi: Secara OtomatisMount Partisi

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.