Il semble que Linux supporte le changement de propriétaire d'un lien symbolique (ie lchown
) mais changer le mode / permission d'un lien symbolique (ie lchmod
) n'est pas supporté . Autant que je sache, cela est conforme à POSIX. Cependant, je ne comprends pas pourquoi on soutiendrait l'une ou l'autre de ces opérations mais pas les deux. Quelle est la motivation derrière cela?
linux
permissions
posix
Florian Brucker
la source
la source
lrwxrwxrwx
. Achmod
n'a aucun sens ici. En suivant le lien, vous accédez aux autorisations des cibles.lchmod
. Mais d'autres systèmes d'exploitation de type Unix le prennent en charge (par exemple Mac OS X ), donc la question est de savoir pourquoi Linux ne le fait pas quand il le prend en chargelchown
.Réponses:
Linux, comme la plupart des systèmes de type Unix (Apple OS / X étant l'une des rares exceptions), ignore les autorisations sur les liens symboliques lorsqu'il s'agit de résoudre leurs cibles par exemple.
Cependant, la propriété des liens symboliques, comme d'autres fichiers, est pertinente en ce qui concerne l'autorisation de renommer ou de dissocier leurs entrées dans des répertoires dont le
t
bit est défini, tels que/tmp
.Pour pouvoir supprimer ou renommer un fichier (lien symbolique ou non) dans
/tmp
, vous devez être le propriétaire du fichier. C'est une des raisons pour lesquelles on peut vouloir changer la propriété d'un lien symbolique (pour accorder ou supprimer l'autorisation de dissocier / renommer).De plus, comme mentionné par Mark Plotnick dans sa réponse maintenant supprimée , les applications de sauvegarde et d'archivage doivent
lchown()
restaurer les liens symboliques vers leurs propriétaires d'origine. Une autre option serait de changer euid et egid avant de créer le lien symbolique, mais cela ne serait pas efficace et ne compliquerait pas la bonne gestion du répertoire dans lequel le lien symbolique est extrait.la source
Il n'y a pas de lchmod () dans posix mais fchmodat () qui permettrait de définir les permissions d'un lien symbolique. Cela ne nécessite toujours pas l'évaluation des autorisations des liens symboliques.
la source
lchmod
est conforme à POSIX. Qu'est-ce que cette réponse ajoute qui n'est pas déjà dans la question?