GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi chmod +w ne donne-t-il pas l'autorisation d'écrire à other(o)

Votre situation spécifique

Dans votre situation spécifique, nous pouvons deviner que votre umask actuel est 002 (il s'agit d'une valeur par défaut courante) et cela explique votre surprise.

Dans cette situation spécifique où umask la valeur est 002 (tous les nombres octaux).

  • +r signifie ugo+r parce que 002 & 444 est 000 , qui permet de définir tous les bits
  • +x signifie ugo+x parce que 002 & 111 est 000 , qui permet de définir tous les bits
  • mais +w signifie ug+w car 002 & 222 est 002 , ce qui empêche le bit "o" d'être défini.

Autres exemples

  • Avec umask 022 +w signifierait u+w .
  • Avec umask 007 +rwx signifierait ug+rwx .
  • Avec umask 077 +rwx signifierait u+rwx .

Qu'est-ce qui aurait correspondu à vos attentes

Lorsque vous modifiez umask à 000 , en exécutant

umask 000

dans votre terminal, puis

chmod +w file

définira les autorisations sur ugo+w.

Note complémentaire

Comme suggéré par ilkkachu, notez que umask 000 ne signifie pas que tout le monde peut lire et écrire tous vos fichiers.

Mais umask 000 signifie tout le monde qui a un accès quelconque à tout compte d'utilisateur sur votre machine (qui peut inclure des programmes exécutant des services de serveur ofc) peut lire et écrire tous les fichiers que vous créez avec ce masque actif et ne changez pas (si la chaîne contenant des répertoires jusqu'à la racine le permet également).


Avec :

chmod +<perms>

les permissions sont ajoutées à user , groupe et autre mais avec l'umask toujours en vigueur. Il s'assure que le fichier ne reçoit pas plus d'autorisations qu'un fichier nouvellement créé.

Si vous souhaitez ajouter les permissions à user , groupes et autre quel que soit le umask, utilisez

chmod a+<perms>

qui est l'abréviation de

chmod ugo+<perms>

Linux
  1. Pourquoi l'expression régulière fonctionne-t-elle dans X mais pas dans Y ?

  2. Pourquoi l'utilisateur racine a-t-il besoin d'une autorisation Sudo ?

  3. Pourquoi `md5sum` ne donne-t-il pas le même hachage qu'Internet ?

  4. Linux - Pourquoi Setuid ne fonctionne-t-il pas ??

  5. Linux – Pourquoi la locale Es_mx fonctionne-t-elle mais pas Es ?

Pourquoi `exit &` ne fonctionne pas ?

Linux - Pourquoi Rsync sur Linux ne conserve pas tous les horodatages (heure de création) ?

Pourquoi find -exec mv {} ./target/ + ne fonctionne-t-il pas ?

Pourquoi le conteneur Docker invite-t-il l'autorisation refusée ?

Pourquoi yum updateinfo n'affiche-t-il pas toutes les mises à jour ?

Comment définir l'autorisation drwxr-xr-x sur d'autres dossiers ?