chmod 777 tidak berpengaruh pada Linux Mint

1

Saya mencoba untuk menetapkan hak akses run ke file bernama foobar menggunakan:

sudo chmod 777 foobar

Namun tidak ada yang terjadi. File ini terletak di partisi yang dipasang di NTFS. Perintah mount mengatakan:

/dev/sda4 on /media/DATA type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)

Perintah

ls -l foobar

jalankan setelah chmod mengatakan:

-rw------- 1 myusername myusername 2261603 Aug 29 17:54 foobar

Bisakah seseorang membantu saya?

HAL9000
sumber
Juga, Anda bisa mencoba menjalankan "sudo chmod a + x foobar" hanya untuk melihat apakah Anda mendapatkan hasil yang berbeda, meskipun saya ragu Anda akan melakukannya.
Jack
Izin Linux tidak berfungsi dengan benar pada volume NTFS yang dipasang melalui sekering. Anda harus mengatur pengubah akses di fstab atau perintah mount. lihat opsi sekering di sini: mjmwired.net/kernel/Documentation/filesystems/fuse.txt
Frank Thomas

Jawaban:

5

NTFS tidak menangani izin file yang sama seperti Linux, seperti yang dijelaskan dalam ntfs-3gFAQ :

Mengapa chmod dan chown tidak berpengaruh? [sic]

Secara default file pada NTFS dimiliki oleh root dengan akses penuh ke semua orang. Untuk mendapatkan perlindungan per file yang standar, Anda harus melakukan mount dengan opsi "izin". Selain itu, jika Anda ingin izin dapat dioperasikan dengan konfigurasi Windows tertentu, Anda harus memetakan pengguna.

Jadi, modifikasi Anda /etc/fstabdengan opsi yang sesuai: (Saya ubah default_permissionsmenjadi permissions):

/dev/sda4 /media/DATA ntfs rw,nosuid,nodev,allow_other,permissions,blksize=4096

atau, cukup hapus dan pasang kembali secara manual:

sudo umount /media/DATA
sudo mount -t ntfs -o rw,nosuid,nodev,relatime,permissions /dev/sda4 /media/DATA

Anda sekarang seharusnya dapat mengubah izin dengan normal sudo chmod.

terdon
sumber
Terima kasih atas jawabannya. Bisakah saya memasangnya secara otomatis menggunakan perintah Anda saat sistem melakukan boot?
HAL9000
@ HAL9000 ya, ubah /etc/fstabseperti yang saya tunjukkan dalam jawaban saya dan lain kali Anda reboot, itu akan dipasang dengan opsi yang tepat.
terdon
saya harus menambahkan baris itu di / etc / fstab? Atau haruskah saya melakukan sesuatu yang lain? Saya mencoba membaca beberapa tutorial tetapi saya tidak tahu apa itu UUID
HAL9000
UUID adalah nama untuk perangkat Anda, seperti '\ dev \ sda1'. Anda dapat menemukan uuid Anda dari terminal dengan 'ls -a / dev / disk / by-uuid'
Frank Thomas
Saya cukup menambahkan baris itu di / etc / fstab dan berfungsi. Namun sekarang semua file pada drive ditandai sebagai executable
HAL9000