Tidak dapat menerapkan chmod ke file

18

Saya punya file di HDD saya,

cd /media/celebisait/5AC69788C6976355

Ada file saya dipanggil myFile.tar.gz. Saya melakukan ls -l,

-rw------- 2 celebisait celebisait  1387745311 Jun  6  2013 myFile.tar.gz

Segalanya tampak baik-baik saja. Namun, ketika saya melakukannya,

$ sudo chmod 755 myFile.tar.gz

Saya tidak memiliki kesalahan tetapi tidak ada yang terjadi, yaitu, ketika saya lakukan ls -llagi, saya mendapatkan output yang sama,

-rw------- 2 celebisait celebisait  1387745311 Jun  6  2013 myFile.tar.gz

Chmod tidak berubah .. Kenapa?

PS: Saya menggunakan Ubuntu 13.04.

Edit:

$ cd /media/celebisait/5AC69788C6976355
$ df

Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda2       89873576  42976028  42325544  51% /
none                   4         0         4   0% /sys/fs/cgroup
udev            16436736         4  16436732   1% /dev
tmpfs            3289260       920   3288340   1% /run
none                5120         0      5120   0% /run/lock
none            16446280       764  16445516   1% /run/shm
none              102400        52    102348   1% /run/user
/dev/sda1          94759      2208     92551   3% /boot/efi
/dev/sdb1      767999996 541212516 226787480  71% /media/celebisait/5AC69788C6976355
/dev/sdb2      767999996   1466472 766533524   1% /media/celebisait/54D09DBDD09DA5B0

Edit 2:

$ cd /media/celebisait/5AC69788C6976355
$ mount

/dev/sda2 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /sys/firmware/efi/efivars type efivarfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
/dev/sda1 on /boot/efi type vfat (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfsd-fuse on /run/user/celebisait/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=celebisait)
/dev/sdb1 on /media/celebisait/5AC69788C6976355 type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sdb2 on /media/celebisait/54D09DBDD09DA5B0 type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)

Edit 3:

$ sudo fdisk -l /dev/sdb1

Disk /dev/sdb1: 786.4 GB, 786432000000 bytes
255 heads, 63 sectors/track, 95611 cylinders, total 1536000000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x6e697373

This doesn't look like a partition table
Probably you selected the wrong device.

     Device Boot      Start         End      Blocks   Id  System
/dev/sdb1p1   ?  1936269394  3772285809   918008208   4f  QNX4.x 3rd part
Partition 1 does not start on physical sector boundary.
/dev/sdb1p2   ?  1917848077  2462285169   272218546+  73  Unknown
Partition 2 does not start on physical sector boundary.
/dev/sdb1p3   ?  1818575915  2362751050   272087568   2b  Unknown
Partition 3 does not start on physical sector boundary.
/dev/sdb1p4   ?  2844524554  2844579527       27487   61  SpeedStor
Partition 4 does not start on physical sector boundary.

Partition table entries are not in disk order

Edit 4:

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x9c73d093

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT
/dev/sdb2      1536002048  3072002047   768000000    7  HPFS/NTFS/exFAT
/dev/sdb3      3072002048  3907026943   417512448    7  HPFS/NTFS/exFAT
Sait
sumber
apa sistem file drive eksternal itu? dfhasil perintah akan menyenangkan
Kiwy
Anda tidak perlu sudo jika Anda memiliki file dan direktori, tergantung pada cara mountnya (hanya baca? Rootquash?) Dari mungkin itu adalah cd atau tulis usb stick yang dilindungi?
X Tian
@ Kuiwy saya menambahkan output dari df.
Sait
@Braiam Bagaimana mount?
Sait
memposting output dari blkid.
Avinash Raj

Jawaban:

15

TL; DR;

CATATAN: Berdasarkan pembaruan terus-menerus dari pertanyaan oleh OP dengan informasi baru, ditentukan bahwa masalahnya adalah ia sedang memasang partisi NTFS. Jadi # 3 di bawah ini adalah jawaban aktual untuk masalahnya. Saya meninggalkan 2 metode lain di sini untuk orang lain yang mungkin mengalami masalah serupa yang tidak menggunakan partisi NTFS.


Gagasan # 1 - media hanya baca (ISO / CD / DVD)?

Lihatlah output dari mountperintah, khususnya sesuatu seperti ini:

$ mount | grep '/media'

Perangkat yang dipasang di bawah /media/celebisaitmungkin berupa file ISO atau media CD / DVD. Dalam hal ini Anda tidak akan dapat memperoleh akses tulis, karena ini biasanya hanya baca.

Anda dapat mengetahui apa yang dipasang baca / tulis vs. dibaca hanya dengan kembali ke mountoutput perintah.

Contoh

/dev/mapper/fedora_greeneggs-root on / type ext4 (rw,relatime,seclabel,data=ordered)

Perhatikan output dalam tanda kurung. Argumen pertama sebelum koma pertama adalah rwyang menunjukkan akses baca / tulis. Jika itu adalah perangkat hanya baca itu akan roada di sana sebagai gantinya.

Metode alternatif

Anda juga dapat mengetahui perangkat apa yang diambil dari lokasi tertentu pada HDD Anda dengan menggunakan df -h .perintah. Ini akan menunjukkan kepada Anda perangkat sumber direktori saat ini.

$ df -h .
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/fedora_greeneggs-home  402G  156G  226G  41% /home

Di sini kita dapat melihat bahwa saya berada di direktori / subdirektori yang merupakan bagian dari mount /home, yang didukung oleh perangkat /dev/mapper/fedora_greeneggs-home.

Dengan nama perangkat Anda kemudian bisa mencari itu juga di output mount.

Contoh

$ mount | grep '/dev/mapper/fedora_greeneggs-home'
/dev/mapper/fedora_greeneggs-home on /home type ext4 (rw,relatime,seclabel,data=ordered)

Ide # 2 - Tetapi perangkat sudah terpasang baca / tulis!

Jika Anda menemukan bahwa perangkat Anda di-mount baca / tulis, Anda mungkin ingin mencoba menginstal PySDM - Storage Device Manager yang memungkinkan penyesuaian penuh titik pemasangan hard disk tanpa akses manual /etc/fstab. Ini juga memungkinkan pembuatan udevaturan untuk konfigurasi dinamis perangkat penyimpanan

langkah-langkah membaca / menulis

  1. instal manajer perangkat penyimpanan fisik: sudo apt-get install pysdm
  2. palungan perangkat penyimpanan terbuka: sudo pysdm
  3. pilih drive yang diperlukan Anda
  4. bantuan pers
  5. hapus centang terbuka sebagai hanya baca
  6. periksa pemilik pemilik sistem file dan tulis nama pengguna Anda: celebisait
  7. tekan OK
  8. tekan berlaku
  9. umount Drive
  10. pasang itu

Sumber: Bagaimana saya bisa mengubah izin pada drive eksternal?

Ide # 3 - partisi NTFS

Berdasarkan output yang Anda posting untuk perintah:

$ sudo fdisk -l /dev/sdb

...
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT

Anda memiliki partisi NTFS, yang menjelaskan mengapa Anda tidak dapat ke chmodfile pada partisi yang diinstal NTFS. Jika Anda menggunakan ntfs-3gmodul untuk mengakses partisi NTFS, Anda seharusnya dapat membaca / menulis disk, hanya saja tidak memengaruhi izin menggunakan alat Unix normal.

slm
sumber
2
saya pikir itu celebisaitadalah nama penggunanya.
Avinash Raj
@AvinashRaj, ya itu benar. :)
Sait
Saya tidak berpikir Ide # 1 cocok dengan informasi yang diberikan semula - mencoba chmod file pada sistem file read-only akan menghasilkan kesalahan (EROFS). Dan saya agak bingung apa yang benar-benar dicapai Idea 2. Sepertinya cara mewah remount dari sistem file baca / tulis - tetapi Anda mengatakan ini berlaku untuk kasus bahwa sistem file sudah baca-tulis.
Nate Eldredge
@NateEldredge - Sangat tidak jelas apa yang sebenarnya terjadi di awal Q ini, maka saran pertama saya adalah untuk menetapkan bagaimana perangkat dipasang. Metode kedua saya, saya telah menggunakan secara pribadi untuk memperbaiki izin pada USB MP3 player saya yang kadang-kadang muncul di Nautilus sebagai hanya baca. File muncul mirip dengan cara OP menjelaskan, dan saya menggunakan PySDM untuk menyelesaikan masalah. Masalahnya bukan hanya FS yang dipasang sebagai RO, partisi pada MP3 player dimasukkan ke dalam mode readonly, namun itu dipasang RW.
slm
7

Seperti yang Anda sebutkan HDD.
Jawaban saya adalah tidak mungkin chmodfile pada partisi NTFS atau FAT32.
Bahkan hanya sistem file unix / linux seperti ext3, ext4mendukung atribut tersebut.

/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT

Ini jelas menunjukkan bahwa /dev/sdb1itu adalah partisi NTFS.

Avinash Raj
sumber
1
bagaimana Anda tahu itu NTFS? mungkin tetapi Anda tidak dapat menganggap itu dari pertanyaan
Kiwy
@ Kiriw ini sebenarnya lebih mungkin terjadi daripada jawaban lain karena OP menyebutkan HDD.
Joseph R.
5
/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT

/dev/sdb1 on /media/celebisait/5AC69788C6976355 type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)

Jenis fuseblkdan output fdisk menunjukkan bahwa partisi Anda adalah partisi NTFS. Ini tidak mendukung skema izin file UNIX / LINUX seperti * filesystem NIX asli lainnya.

Solusinya hanya memindahkan file ke sistem file yang mendukung izin ini seperti root Anda. Cara yang ingin Anda lakukan tidak akan berhasil.

cp /media/celebisait/5AC69788C6976355/myFile.tar.gz ~/
chmod 755 ~/myFile.tar.gz
ls -l ~/myFile.tar.gz
Braiam
sumber
1

Saya punya masalah yang sama dengan partisi NTFS baru-baru ini. Telah dinyatakan bahwa NTFS tidak dapat memiliki izin diubah, tetapi izin ini dapat diatur pada pemasangan sistem file. Mengingat id grup atau pengguna yang Anda inginkan untuk dapat mengakses file, Anda dapat melakukan sesuatu seperti:

sudo mount -t ntfs -o gid=46,fmask=0003,dmask=0002 /dev/sdb1 /media/DATAPART1

mount halaman manual sehingga Anda dapat menyesuaikannya dengan kasus penggunaan Anda:

http://linux.die.net/man/8/mount

Frogee
sumber
0

Direktori ini mungkin hanya baca. Coba ini:

ls -ld .
chmod 755 .
chmod 755 myFile.tar.gz
Chloe
sumber
Ini tidak benar. Pada sistem file Unix biasa, ini berfungsi dengan baik untuk chmod file dalam direktori read-only. Anda tidak perlu menulis izin pada direktori untuk membaca, menulis, atau mengubah metadata file di direktori itu. Anda perlu izin menulis untuk membuat file baru atau menghapus yang sudah ada.
Nate Eldredge