web-dev-qa-db-fra.com

Pourquoi chmod + w ne donne pas la permission d'écriture à d'autres (o)

Quand je lance chmod +w filename il ne donne pas la permission d'écriture à other, il donne juste la permission d'écriture à user et group.

Après avoir exécuté cette commande

chmod +w testfile.txt

fonctionnement ls -l testfile.txt impressions

-rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt

mais en cas de +r et +x cela fonctionne correctement.

Je ne veux pas utiliser chmod ugo+w filename.

18
Ravi Sevta

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 2 (tous les nombres sont octaux).

  • +r veux dire ugo+r parce que 002 & 444 est 000, qui permet de régler tous les bits
  • +x veux dire ugo+x parce que 002 & 111 est 000, qui permet de régler tous les bits
  • mais +w veux dire ug+w parce que 002 & 222 est 002, ce qui empêche la définition du bit "o".

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 changez umask en 000, en exécutant

umask 000

dans votre terminal, puis

chmod +w file

définira les autorisations sur ugo + w.

Note latérale

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 que tous ceux qui ont un accès quelconque à n'importe lequel compte d'utilisateur sur votre machine (qui peut inclure des programmes exécutant les services du serveur ofc) peuvent lire et écrire tous les fichiers que vous créez avec ce masque actif et ne pas le faire ' t changer (si la chaîne contenant les répertoires jusqu'à la racine le permet également).

26
Prvt_Yadav

Avec:

chmod +<perms>

les perms sont ajoutés à tilisateur, groupe et autre mais avec le umask toujours appliqué. Il s'assure que le fichier ne bénéficie pas de plus d'autorisations qu'un fichier nouvellement créé.

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

chmod a+<perms>

ce qui est court pour

chmod ugo+<perms>
25
Stéphane Chazelas

Vous devez spécifier à qui vous accordez les autorisations, comme other, en utilisant chmod o+w testfile.txt

0
Jaken551