Par accident, j'ai couru chmod -u filename
et il a supprimé toutes les autorisations que j'avais filename
.
La page de manuel ne fait référence à aucune -u
option. En expérimentant, j'ai pu conclure qu'il ne supprime pas toutes les autorisations, mais qu'il suffit de lire et d'exécuter l'accès, laissant l'accès en écriture intact.
Alors qu'est-ce que cela fait exactement?
Ma conclusion ci-dessus est fausse, je pense maintenant que ce qu'il fait est de supprimer les autorisations que le propriétaire a, de toutes les catégories.
Je pense que le comportement est analogue à a=u
, seulement il est au -
lieu de =
et a
peut être abandonné tout comme il peut avec, par exemple, a+x
.
permissions
chmod
y_wc
la source
la source
[ugoa...][[-+=][perms...]...]
, oùperms
est zéro ou plusieurs lettres de l'ensemblerwxXst
, ou une seule lettre de l'ensembleugo
" (page de manuel GNU chmod); POSIX est assez obscur, mais définit une production "permcopy" pour le même effet.u
), les autorisations accordées aux autres utilisateurs membres du groupe du fichier (g
) et les autorisations accordées aux utilisateurs qui n'appartiennent à aucune des deux catégories précédentes (o
). "u
, je spécifierai les autorisations accordées à l'utilisateur propriétaire du fichier. Mais il ne dit pas ce qu'il fait. Que signifie même spécifier?Réponses:
Ce n'est pas une option, mais une façon standard (mais peu commune) de spécifier les autorisations. Cela signifie supprimer (
-
) les autorisations associées au propriétaire du fichier (u
), pour tous les utilisateurs (pas précédentsu
,g
ouo
). Ceci est documenté dans la page de manuel.La page de manuel de GNU chmod documente ceci comme:
et ensuite
Cela
-u
signifie donc supprimer (-
) toutes les autorisations actuellement activées pour le propriétaire (u
) pour tout le monde (de manière équivalente àa-u
, sauf honorer le umask actuel). Bien que cela ne soit pas souvent très utile, l'analogue lechmod +u
sera parfois, par exemple, pour copier les autorisations du propriétaire sur d'autres lors d'une opération récursive.Il est également documenté dans POSIX , mais plus obscurément défini: la spécification d'autorisation est largement
who[+-=]perms
(ou un nombre), et l'effet de ceux-ci est spécifié plus en détail:puis
la source
perms
peut êtreu
, que j'ai. Oui,u
spécifie les autorisations ou le propriétaire. Mais comment s'ensuit-il que-u
les autorisations du propriétaire (moduleumask
) soient supprimées de tous les utilisateurs?-
toujours: il supprime les autorisations spécifiées de la classe d'utilisateurs spécifiée.-u
est exactement analogue-w
ou plus proche deugo-u
.chmod
question de documentation? Faites-moi savoir si vous pensez que cela mérite une question distincte. "et = entraîne leur ajout et entraîne la suppression des bits non mentionnés, sauf que les bits d'ID de groupe et d'utilisateur de jeu non mentionnés ne sont pas affectés." Pour moi, cela signifie que, étant donné un répertoire dont le propriétaire n'a qu'un accès en écriture,chmod u=rx directory
laissera les autorisations du propriétaire commerwx
. Mais ce n'est pas ce qui se passe, au lieu de cela, ils deviennent les attentesr-x
. Suis-je mal interprété quelque chose?s
bits setuid / setgid ( ) sont laissés seuls si vous ne les mentionnez pas, et tout ce que vous n'avez pas spécifié est supprimé.La réponse est un peu similaire à /unix//a/429424/255251 .
ne supprime pas toutes les autorisations, mais prend en compte la
umask
valeur.Maintenant, changez la valeur umask
la source