GNU/Linux >> Tutoriels Linux >  >> Linux

Obtenir de nouveaux fichiers pour hériter des autorisations de groupe sous Linux ?

J'ai un problème avec les permissions sur un serveur Linux. Je suis habitué à BSD. Lorsqu'un répertoire appartient à un groupe auquel l'utilisateur qui le possède n'appartient pas, tel que www-data, les fichiers qui y sont créés appartiendront à ce groupe. Ceci est important car je veux que les fichiers soient lisibles par le serveur Web (que je n'exécuterai pas en tant que root) mais pour qu'un utilisateur puisse toujours mettre de nouveaux fichiers dans le répertoire. Je ne peux pas mettre les utilisateurs dans www-data car ils peuvent alors lire les sites Web de tous les autres utilisateurs.

Je veux que le serveur Web lise tous les sites Web, je veux que les utilisateurs puissent changer les leurs.

Les autorisations sont définies comme ceci sur les dossiers pour le moment….

drwxr-x--- 3 john www-data 4096 Feb 17 21:27 john

C'est un comportement standard sur BSD pour que les permissions fonctionnent de cette façon. Comment puis-je faire en sorte que Linux fasse cela ?

Réponse acceptée :

On dirait que vous décrivez la fonctionnalité setgid bit où, lorsqu'un répertoire qui l'a défini, forcera tous les nouveaux fichiers créés à l'intérieur de celui-ci à avoir leur groupe défini sur le même groupe que celui défini dans le répertoire parent.

Exemple

$ whoami
saml

$ groups
saml wheel wireshark

configurer un répertoire avec des permissions + des propriétés

$ sudo mkdir --mode=u+rwx,g+rs,g-w,o-rwx somedir
$ sudo chown saml.apache somedir
$ ll -d somedir/
drwxr-s---. 2 saml apache 4096 Feb 17 20:10 somedir/

toucher un fichier comme saml dans ce répertoire

$ whoami
saml

$ touch somedir/afile
$ ll somedir/afile 
-rw-rw-r--. 1 saml apache 0 Feb 17 20:11 somedir/afile

Cela vous donnera approximativement ce que vous voulez. Si vous voulez vraiment exactement ce que vous avez décrit, je pense que vous devrez recourir à la fonctionnalité des listes de contrôle d'accès pour obtenir cela (ACL).

ACL

Si vous souhaitez avoir un peu plus de contrôle sur les autorisations sur les fichiers créés sous le répertoire, somedir , vous pouvez ajouter la règle ACL suivante pour définir les autorisations par défaut comme suit.

avant

$ ll -d somedir
drwxr-s---. 2 saml apache 4096 Feb 17 20:46 somedir

définir les autorisations

$ sudo setfacl -Rdm g:apache:rx somedir
$ ll -d somedir/
drwxr-s---+ 2 saml apache 4096 Feb 17 20:46 somedir/

Remarquez le + à la fin, cela signifie que ce répertoire a des ACL qui lui sont appliquées.

$ getfacl somedir
# file: somedir
# owner: saml
# group: apache
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:group:apache:r-x
default:mask::r-x
default:other::---

après

$ touch somedir/afile
$ ll somedir/afile 
-rw-r-----+ 1 saml apache 0 Feb 17 21:27 somedir/afile
$ 

$ getfacl somedir/afile
# file: somedir/afile
# owner: saml
# group: apache
user::rw-
group::r-x              #effective:r--
group:apache:r-x        #effective:r--
mask::r--
other::---

Remarquez avec les permissions par défaut (setfacl -Rdm ) défini de sorte que les autorisations soient (r-x ) par défaut (g:apache:rx ). Cela force tous les nouveaux fichiers à n'avoir que leur r bit activé.

En relation:Aide-mémoire ShellScript
Linux
  1. J'ai ajouté un utilisateur à un groupe, mais les autorisations de groupe sur les fichiers n'ont toujours aucun effet ?

  2. Linux - Comment définir les autorisations de fichier par défaut pour tous les dossiers/fichiers d'un répertoire ?

  3. Forcer de nouvelles autorisations sur les fichiers après Rsync depuis Seedbox ?

  4. Linux - Obtenir des fichiers pour la date actuelle sous Linux ?

  5. Lister les membres d'un groupe sous Linux

Commande Rm sous Linux

Comment modifier récursivement les autorisations de fichiers sous Linux

Comment trouver des fichiers en fonction de leurs autorisations sous Linux

8 commandes fondamentales de gestion de fichiers Linux pour les nouveaux utilisateurs

Créer de nouveaux groupes sous Linux avec la commande Groupadd

Comprendre les autorisations de fichiers de base et la propriété sous Linux