Je reçois une erreur d'autorisation dans CentOS 7 lorsque j'essaie de créer un lien dur. Avec les mêmes autorisations définies dans CentOS 6, je ne reçois pas l'erreur. Le problème est centré sur les autorisations de groupe. Je ne sais pas quelle version du système d'exploitation est correcte et laquelle est incorrecte.
Permettez-moi d'illustrer ce qui se passe. Dans mon répertoire de travail actuel, j'ai deux répertoires: source et destination. Au début, la destination est vide; la source contient un fichier texte.
[root@tc-dlx-nba cwd]# ls -l
total 0
drwxrwxrwx. 2 root root 6 Jun 12 14:33 destination
drwxrwxrwx. 2 root root 21 Jun 12 14:33 source
[root@tc-dlx-nba cwd]# ls -l destination/
total 0
[root@tc-dlx-nba cwd]# ls -l source/
total 4
-rw-r--r--. 1 root root 8 Jun 12 14:20 test.txt
[root@tc-dlx-nba cwd]#
Comme vous pouvez le voir, en ce qui concerne les autorisations, les deux répertoires sont 777, avec le propriétaire et le groupe définis sur root. Le propriétaire et le groupe du fichier texte sont également définis sur root. Cependant, les autorisations du fichier texte sont en lecture-écriture pour le propriétaire mais en lecture seule pour le groupe.
Lorsque je suis connecté en tant que root, je n'ai aucun problème à créer un lien dur dans le répertoire de destination pointant vers le fichier texte (dans le répertoire source).
[root@tc-dlx-nba cwd]# ln source/test.txt destination/
[root@tc-dlx-nba cwd]# ls destination/
test.txt
Cependant, si je me connecte en tant qu'autre utilisateur, dans ce cas, admin, je ne peux pas créer le lien. J'obtiens: "Opération non autorisée."
[root@tc-dlx-nba cwd]# rm -f destination/test.txt
[root@tc-dlx-nba cwd]# su admin
bash-4.2$ pwd
/root/cwd
bash-4.2$ ln source/test.txt destination/
ln: failed to create hard link ‘destination/test.txt’ => ‘source/test.txt’: Operation not permitted
Ce qui se passe a du sens pour moi, mais comme ce qui précède est autorisé dans CentOS 6, je voulais vérifier si j'avais mal compris quelque chose. Pour moi, cela ressemble à un bogue dans CentOS 6 qui a été corrigé dans CentOS 7.
Quelqu'un sait ce qui donne? Ai-je raison de croire que le comportement ci-dessus est le bon comportement? Est-ce CentOS 6 qui est correct? Ou, ont-ils raison et peut-être qu'il y a un problème subtil d'autorisations de groupe qui me manque? Merci.
Edit: J'ai essayé le même test tout à l'heure sur une machine virtuelle Debian v7 que j'ai. Debian est d'accord avec CentOS 7: "Opération non autorisée."
Edit # 2: Je viens d'essayer la même chose sur Mac OS X (Yosemite). Cela a fonctionné comme CentOS 6 l'a fait. En d'autres termes, cela a permis de créer le lien. (Remarque: Sous OS X, le groupe racine est appelé «roue». C'est la seule différence, pour autant que je sache.)