Impossible d'appliquer chmod à un fichier


18

J'ai un fichier sur mon disque dur,

cd /media/celebisait/5AC69788C6976355

Il y a mon dossier appelé myFile.tar.gz. Je fais un ls -l,

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

Tout semble aller bien. Cependant, quand je le fais,

$ sudo chmod 755 myFile.tar.gz

Je n'ai pas d'erreurs mais rien ne se passe, c'est-à-dire que lorsque je ls -lrecommence, j'obtiens la même sortie,

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

Chmod ne change pas .. Pourquoi?

PS: j'utilise Ubuntu 13.04.

Éditer:

$ 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

Modifier 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)

Modifier 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

Édition 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

quel est le système de fichiers de ce disque externe? dfle résultat de la commande serait bien
Kiwy

Vous n'avez pas besoin de sudo si vous possédez le fichier et le répertoire, selon la façon dont il a été monté (lecture seule? Rootsquash?) Ou peut-être un cd ou une clé USB protégée en écriture?
X Tian

@Kiwy J'ai ajouté la sortie de df.
Sait

@Braiam Comment faire mount?
Sait

publier la sortie de blkid.
Avinash Raj

Réponses:


15

TL; DR;

REMARQUE: Sur la base de la mise à jour continue de la question par l'OP avec de nouvelles informations, il a été déterminé que le problème était qu'il montait une partition NTFS. Donc, le n ° 3 ci-dessous est la véritable réponse à son problème. Je laisse les 2 autres méthodes ici pour d'autres qui peuvent rencontrer des problèmes similaires qui n'utilisent pas de partition NTFS.


Idée n ° 1 - médias en lecture seule (ISO / CD / DVD)?

Jetez un œil à la sortie de la mountcommande, en particulier quelque chose comme ceci:

$ mount | grep '/media'

Le périphérique monté sous /media/celebisaitest probablement un fichier ISO ou un support CD / DVD. Dans ce cas, vous ne pourrez pas accéder en écriture, car ceux-ci sont généralement en lecture seule.

Vous pouvez savoir ce qui est monté en lecture / écriture et en lecture seule en vous tournant à nouveau vers la mountsortie de la commande.

Exemple

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

Notez la sortie entre parenthèses. Le premier argument avant la première virgule est celui rwqui indique l'accès en lecture / écriture. S'il s'agissait d'un appareil en lecture seule, il y en aurait un à la roplace.

Méthode alternative

Vous pouvez également découvrir de quel périphérique un emplacement particulier sur votre disque dur provient en utilisant la df -h .commande. Cela vous montrera le périphérique source du répertoire actuel.

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

Ici, nous pouvons voir que je suis dans un répertoire / sous-répertoire qui fait partie du montage /home, qui est soutenu par le périphérique /dev/mapper/fedora_greeneggs-home.

Avec le nom de l'appareil, vous pouvez également le rechercher dans la sortie de mount.

Exemple

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

Idée n ° 2 - Mais l'appareil est monté en lecture / écriture!

Si vous constatez que votre appareil est monté en lecture / écriture, vous pouvez essayer d'installer PySDM - un gestionnaire de périphériques de stockage qui permet une personnalisation complète des points de montage du disque dur sans accès manuel à /etc/fstab. Il permet également la création de udevrègles de configuration dynamique des périphériques de stockage

étapes pour lire / écrire

  1. installer le gestionnaire de périphériques de stockage physique: sudo apt-get install pysdm
  2. gestionnaire de périphérique de stockage ouvert: sudo pysdm
  3. choisissez vos disques requis
  4. aide à la presse
  5. décochez ouvrir en lecture seule
  6. vérifiez l'utilisateur propriétaire du système de fichiers et écrivez votre nom d'utilisateur: celebisait
  7. appuyer sur OK
  8. appuyez sur appliquer
  9. umount Drive
  10. le monter

Source: Comment puis-je modifier les autorisations sur les disques externes?

Idée n ° 3 - partitions NTFS

En fonction de la sortie que vous avez publiée pour la commande:

$ sudo fdisk -l /dev/sdb

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

Vous disposez de partitions NTFS, ce qui explique pourquoi vous n'avez pas pu accéder aux chmodfichiers sur la ou les partitions montées NTFS. Si vous utilisez le ntfs-3gmodule pour accéder à la partition NTFS, vous devriez être capable de lire / écrire le disque, tout simplement pas affecter ses autorisations en utilisant la suite d'outils Unix normale.


2
je pense que celebisaitc'est son nom d'utilisateur.
Avinash Raj

@AvinashRaj, oui c'est vrai. :)
Sait

Je ne pense pas que l'idée # 1 corresponde aux informations fournies à l'origine - essayer de modifier un fichier sur un système de fichiers en lecture seule devrait entraîner une erreur (EROFS). Et je suis un peu confus quant à ce que l'idée # 2 accomplit réellement. Cela ressemble à un moyen sophistiqué de remonter le système de fichiers en lecture / écriture - mais vous dites que cela s'applique au cas où le système de fichiers est déjà en lecture-écriture.
Nate Eldredge

@NateEldredge - Il n'était pas très clair ce qui se passait exactement au début de ce Q, donc ma première suggestion était d'établir comment le périphérique était monté. Ma deuxième méthode que j'ai utilisée personnellement pour corriger les autorisations sur mon lecteur MP3 USB qui apparaît parfois dans Nautilus en lecture seule. Les fichiers apparaissent de la même manière que l'OP le décrit, et j'utilise PySDM pour résoudre le problème. Le problème n'est pas simplement que le FS soit monté en RO, la partition du lecteur MP3 est mise en mode lecture seule, et pourtant elle est montée en RW.
slm

7

Comme vous parlez d'un disque dur.
Ma réponse est qu'il n'est pas possible de chmodcréer un fichier sur une partition NTFS ou FAT32.
En fait, seul le système de fichiers unix / linux comme ext3, prend en ext4charge ces attributs.

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

Cela montre clairement qu'il /dev/sdb1s'agissait d'une partition NTFS.


1
comment savez-vous que c'est NTFS? c'est probablement mais vous ne pouvez pas supposer que d'après la question
Kiwy

@Kiwy, il est plus probable que ce soit le cas que l'autre réponse, car l'OP mentionne un disque dur.
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)

Le type fuseblket la sortie de fdisk indiquent que votre partition est une partition NTFS. Ceux-ci ne prennent pas en charge le schéma d'autorisations de fichiers UNIX / LINUX comme les autres systèmes de fichiers natifs * NIX.

La solution consiste simplement à déplacer le fichier vers un système de fichiers qui prend en charge ces autorisations comme votre racine. La façon dont vous voulez le faire ne fonctionnera tout simplement pas.

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

1

J'ai eu un problème similaire avec une partition NTFS récemment. Il a déjà été indiqué que NTFS ne peut pas avoir des autorisations modifiées, mais ces autorisations peuvent être définies lors du montage du système de fichiers. Étant donné les identifiants des groupes ou des utilisateurs auxquels vous souhaitez pouvoir accéder aux fichiers, vous pouvez faire quelque chose comme:

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

montez la page de manuel pour pouvoir l'adapter à votre cas d'utilisation:

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


0

Le répertoire est probablement en lecture seule. Essaye ça:

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

Ce n'est pas correct. Sur un système de fichiers Unix ordinaire, cela fonctionne très bien pour modifier un fichier dans un répertoire en lecture seule. Vous n'avez pas besoin d'autorisations d'écriture sur un répertoire pour lire, écrire ou modifier les métadonnées d'un fichier dans ce répertoire. Vous avez besoin d'une autorisation d'écriture pour créer de nouveaux fichiers ou supprimer des fichiers existants.
Nate Eldredge du
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.