Неможливо застосувати chmod до файлу


18

У мене є файл на моєму жорсткому диску,

cd /media/celebisait/5AC69788C6976355

Там називається мій файл myFile.tar.gz. Я роблю ls -l,

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

Все здається прекрасним. Однак коли я це роблю,

$ sudo chmod 755 myFile.tar.gz

Я не маю жодних помилок, але нічого не відбувається, тобто коли я ls -lзнову роблю , я отримую той же вихід,

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

Чмод не змінюється .. Чому?

PS: Я використовую Ubuntu 13.04.

Редагувати:

$ 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

Редагувати 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)

Редагувати 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

Редагувати 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

що таке файлова система цього зовнішнього диска? dfКомандний результат був би непоганий
Kiwy

Вам не потрібен sudo, якщо ви володієте файлом і каталогом, залежно від способу його встановлення (лише для читання? Rootquash?), Можливо, це компакт-диск чи записаний захищений usb stick?
X Тянь

@Kiwy Я додав вихід df.
Саіт

@Braiam Як це зробити mount?
Саіт

розмістити вихід blkid.
Авінаш Радж

Відповіді:


15

TL; DR;

ПРИМІТКА: На підставі постійного оновлення питання ОП новими відомостями було встановлено, що питання полягає в тому, щоб він монтував розділ NTFS. Отже, №3 нижче - фактична відповідь на його проблему. Інші 2 методи я залишаю тут для інших, які можуть зіткнутися з подібними проблемами, які не використовують розділ NTFS.


Ідея №1 - читання медіа (лише ISO / CD / DVD)

Погляньте на результат mountкоманди, зокрема щось таке:

$ mount | grep '/media'

Пристрій, під яким встановлено /media/celebisait, швидше за все, це або файл ISO, або носій CD / DVD. У такому випадку ви не зможете отримати доступ до запису, оскільки вони, як правило, лише для читання.

Ви можете сказати, що встановлено для читання / запису проти читання лише повторно, повернувшись до mountвиводу команди.

Приклад

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

Помітьте вихід у дужках. Перший аргумент перед першою комою - rwце доступ для читання / запису. Якби це пристрій лише для читання, він roнатомість мав би там місце.

Альтернативний метод

За допомогою команди можна дізнатися, з якого пристрою вибирається певне місце на вашому жорсткому диску df -h .. Це покаже вам джерело пристрою поточного каталогу.

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

Тут ми можемо побачити, що я перебуваю в каталозі / підкаталозі, що є частиною версії /home, яку підтримує пристрій /dev/mapper/fedora_greeneggs-home.

З назвою пристрою ви зможете шукати це також у висновку mount.

Приклад

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

Ідея №2 - Але пристрій встановлено для читання / запису!

Якщо ви виявите, що ваш пристрій змонтовано для читання / запису, ви можете спробувати встановити PySDM - диспетчер пристроїв зберігання даних, який дозволяє повністю налаштувати точки кріплення на жорсткому диску без доступу вручну /etc/fstab. Це також дозволяє створити udevправила динамічної конфігурації пристроїв зберігання даних

кроки для читання / запису

  1. встановити фізичний менеджер пристроїв зберігання даних: sudo apt-get install pysdm
  2. відкрите керування пристроєм зберігання даних: sudo pysdm
  3. виберіть потрібні накопичувачі
  4. прес-допомога
  5. зніміть прапорець лише для читання
  6. перевірити власника файлової системи та написати своє ім’я користувача: celebisait
  7. натиснути нормально
  8. натиснути застосувати
  9. umount Drive
  10. змонтуйте його

Джерело: Як я можу змінити дозволи на зовнішніх накопичувачах?

Ідея №3 - розділи NTFS

На основі результату, який ви опублікували для команди:

$ sudo fdisk -l /dev/sdb

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

У вас є розділи NTFS, що пояснює, чому ви не змогли отримати chmodфайли на розділах, встановлених NTFS. Якщо ви використовуєте ntfs-3gмодуль для доступу до розділу NTFS, ви повинні мати змогу читати / записувати диск, просто не впливати на його дозволи, використовуючи звичайний набір інструментів Unix.


2
Я думаю, що celebisaitце його ім'я користувача.
Авінаш Радж

@AvinashRaj, так, це правда. :)
Sait

Я не думаю, що Ідея №1 відповідає первісно наданій інформації - спроба chmod-файлу у файловій системі лише для читання повинна призвести до помилки (EROFS). І я якось розгублений щодо того, що насправді реалізує Ідея №2. Це виглядає як химерний спосіб перерахування файлової системи читання / запис - але ви говорите, що це стосується випадку, коли файлова система вже читається-записується.
Нейт Елдредж

@NateEldredge - Було дуже незрозуміло, що саме відбувається на початку цього Q, отже, моя перша пропозиція полягала у встановленні способу встановлення пристрою. Мій другий метод, який я особисто використовував для виправлення дозволів на моєму MP3-програвачі USB, який періодично відображається в Nautilus як лише заново. Файли відображаються аналогічно тому, як описує ОП, і я використовую PySDM для вирішення проблеми. Проблема полягає не лише в тому, що FS встановлюється як RO, розділ на MP3-програвачі переводиться в режим лише для читання, і все ж він встановлений на RW.
slm

7

Як ви згадуєте про жорсткий диск.
Моя відповідь полягає в тому, що chmodфайл на розділі NTFS або FAT32 неможливо .
Насправді тільки файлова система UNIX / Linux , як ext3, ext4підтримують ці атрибути.

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

З цього чітко видно, що це /dev/sdb1був розділ NTFS.


1
як ти знаєш, що це NTFS? це, мабуть, але ви не можете припустити, що з питання
Ківі

@Kiwy це насправді більше, ніж інша відповідь, оскільки в ОП згадується жорсткий диск.
Джозеф Р.

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)

Тип fuseblkі вихід fdisk вказує на те, що ваш розділ є розділом NTFS. Вони не підтримують схему дозволів для файлів UNIX / LINUX, як і інші * власні файлові системи NIX.

Рішення полягає лише в переміщенні файла до файлової системи, яка підтримує такі дозволи, як ваш root. Те, як ви хочете це зробити , просто не вийде.

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

1

Нещодавно у мене була подібна проблема з розділом NTFS. Вже було заявлено, що NTFS не може змінити дозволи, але ці дозволи можна встановити при монтажі файлової системи. З огляду на ідентифікатори груп або користувачів, які ви хочете мати доступ до файлів, ви можете зробити щось на кшталт:

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

монтуйте man man сторінку, щоб ви могли підлаштувати її до вашого випадку використання:

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


0

Каталог, ймовірно, лише для читання. Спробуйте це:

ls -ld .
chmod 755 .
chmod 755 myFile.tar.gz

Це неправильно. У звичайній файловій системі Unix це чудово працює, щоб chmod файл у каталозі тільки для читання. Для читання, запису чи зміни метаданих файлів у цьому каталозі вам не потрібні дозволи на запис у каталог. Вам потрібен дозвіл на запис для створення нових файлів або видалення існуючих.
Нейт Елдредж
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.