Dans OSX, je peux définir les autorisations du lien symbolique lui-même (au lieu de la chose qu'il pointe vers l'utilisation du -h). Depuis la page de manuel:
-h If the file is a symbolic link, change the mode of the link itself rather than the file that the link points to.
Dans Ubuntu 14.04, j'essaie de définir les autorisations d'un lien symbolique, mais il n'est défini que sur la cible du lien symbolique.
Il s'agit d'un lien symbolique de /home/nagios/.ssh/someprivatekey
à /somewhere/else/privatekey
, donc les autorisations sont importantes pour ssh. Comment puis-je atteindre cet objectif?
permissions
ssh
chmod
symbolic-link
Ray Burgemeestre
la source
la source
ls -l
sortie (lrwxrwxrwx
)..ssh/config
:)Réponses:
Pas possible. Il n'y a aucun moyen puisque les autorisations sur un lien symbolique n'ont aucun sens (un lien symbolique n'est pas un fichier; il pointe uniquement vers un fichier). Cependant, la façon de le faire avec Linux est via ACL .
les liens symboliques sont expliqués comme ...
La différence est ici: chmod et chmod ... c'est BSD contre Linux.
Je ne sais pas si c'est important mais concernant SSH: il utilise stat (2) , pas lstat (2) pour obtenir les permissions.
la source
fchmodat
Soit dit en passant, POSIX spécifie la fonction, qui peut être utilisée pour changer le mode des liens symboliques (fonctionnalité facultative - les systèmes qui ne le prennent pas en charge, y compris Linux, renvoient l'erreur EOPNOTSUPP), mais rien dans lachmod
commande pour l'utiliser. Seul-R
est défini dans POSIX.lchmod(2)
oufchmodat(2)
...), ils ont une signification (autoriser / refuserreadlink()
(lire) ou résoudre le chemin à travers eux (exécuter)). Les autorisations d'écriture ne le sont généralement pas, car vous ne pouvez pas modifier la cible d'un lien symbolique.Tu ne peux pas. L'
chmod
appel système sous-jacent ne le prend tout simplement pas en charge sous Linux, et d'ailleurs, Linux ne se soucie pas non plus des autorisations du lien. Deman chmod
:En ce qui concerne les liens durs ou les montages de liaison, les autorisations de la source sont utilisées, donc aucune des trois façons standard de refléter le contenu d'un fichier ailleurs ne peut vous y aider.
la source