web-dev-qa-db-fra.com

Comment effacer l'autorisation "s" sur un répertoire sous Linux?

J'ai un répertoire qui s'affiche avec le masque d'autorisation drwsrwsr-x. Lorsque j'essaie de réinitialiser les autorisations sur 755 le S reste.

Quel est le "s" et pourquoi ne puis-je pas modifier les autorisations à 775 (drwxrwxr-x)?

25
Matt Elhotiby

Les s que vous voyez à la position "exécuter" dans la colonne utilisateur et groupe sont les bits SetUID (Définir l'ID utilisateur lors de l'exécution) et SetGID (Définir l'ID groupe lors de l'exécution).

Les autorisations de fichier Unix sont en fait un nombre octal à 4 chiffres SUGO

  • [~ # ~] s [~ # ~] contrôle les bits SetUID (4), SetGID (2) et "Sticky" (1)
  • [~ # ~] u [~ # ~] contrôle les bits de lecture (4)/d'écriture (2)/d'exécution (1) pour le propriétaire du fichier
  • [~ # ~] g [~ # ~] contrôle les bits de lecture/écriture/exécution pour le groupe du fichier
  • [~ # ~] o [~ # ~] contrôle les bits de lecture/écriture/exécution pour tout le monde.

Vous pouvez supprimer les bits setuid de votre répertoire avec chmod ug-s directory, ou chmod 0755 directory

Pour plus d'informations, consultez la page de manuel pour chmod et cette page Wikipedia sur le bit SetUID .

26
Hrvoje Špoljar

setuid et setgid

setuid et setgid (abréviation de définir l'ID utilisateur lors de l'exécution et définir l'ID de groupe lors de l'exécution, respectivement) sont des indicateurs de droits d'accès Unix qui permettent aux utilisateurs d'exécuter un exécutable avec les autorisations du propriétaire ou du groupe de l'exécutable. Ils sont souvent utilisés pour permettre aux utilisateurs d'un système informatique d'exécuter des programmes avec des privilèges temporairement élevés afin d'effectuer une tâche spécifique. Bien que les privilèges d'ID utilisateur ou d'ID de groupe fournis ne soient pas toujours élevés, ils sont au minimum spécifiques.

Pour supprimer numériquement les bits setuid et setgid, vous devez préfixer le modèle binaire avec un 0 (par exemple.: 0775 devient 00775).

Exécutez pour supprimer setuid et setgid:

chmod 00775 path

ou

chmod a-st path
25
ooshro

Ajout à la réponse d'Ooshro ...

Si vous utilisez des autorisations suid ou sgid sur un répertoire, tous les fichiers créés à l'intérieur de ce répertoire auront le même propriétaire (si suid) ou groupe (sgid) que le répertoire en question.

Je l'utilise pour mon partage Samba à la maison. Le répertoire de base appartient à l'utilisateur nobody et au groupe olympia, et les autorisations sont 2770. Vous devez donc être dans le groupe olympia pour lire ou écrire quoi que ce soit en dessous de ce répertoire, et il s'assurera qu'olympia est le groupe propriétaire de tout ce qui se trouve en dessous. . J'ai également Samba configuré pour utiliser un masque de protection de 2770 et un masque de fichier de 660 pour garder les autorisations correctes tout au long de l'arborescence.

2
baumgart