Re: chmod marche pas ... pourquoi?
On 2005-05-22 23:59:07 +0200, Debian User wrote:
> > Essaie de voir ce que tu obtiens au niveau des appels système...
>
> Hein? C'est quoi donc? Comment je fais-je?
En fait, tu as déjà des front-end. Déjà, "ls -l" te donne ce qu'il
faut, mais on ne sait jamais, il fait peut-être un traitement, et
c'est pour ça qu'il peut être préférable d'obtenir le champ st_mode
(qui donne le type du fichier et les permissions) directement.
Avec le stat de coreutils:
$ stat -c%f fichier
Avec le stat de zsh (module zsh/stat):
$ printf "%x\n" `stat -L +mode fichier`
ou pour l'avoir en octal:
$ printf "%o\n" `stat -L +mode fichier`
Normalement, tu devrais obtenir a1ff (en hexa) ou 120777 (en octal).
La page man stat(2) te donne la signification:
S_IFLNK 0120000 symbolic link
[...]
S_IRWXU 00700 mask for file owner permissions
S_IRUSR 00400 owner has read permission
S_IWUSR 00200 owner has write permission
S_IXUSR 00100 owner has execute permission
S_IRWXG 00070 mask for group permissions
S_IRGRP 00040 group has read permission
S_IWGRP 00020 group has write permission
S_IXGRP 00010 group has execute permission
S_IRWXO 00007 mask for permissions for others (not in group)
S_IROTH 00004 others have read permission
S_IWOTH 00002 others have write permisson
S_IXOTH 00001 others have execute permission
Maintenant, si c'est vraiment incorrect: pour corriger, c'est normal
que tu n'y arrives pas avec chmod. La page man chmod(1) dit:
chmod never changes the permissions of symbolic links; the chmod system
call cannot change their permissions. This is not a problem since the
permissions of symbolic links are never used. However, for each sym-
bolic link listed on the command line, chmod changes the permissions of
the pointed-to file. In contrast, chmod ignores symbolic links encoun-
tered during recursive directory traversals.
En revanche, l'appel système chmod modifie peut-être les permissions
du lien symbolique. Dans ce cas, il faut que tu te fasses un petit
programme C qui le fasse. Mais le plus simple est peut-être de faire
un rm du lien symbolique et de recréer le lien avec "ln -s".
--
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA
Reply to: