Je travaille dans un laboratoire où nous utilisons Linux (Debian et Ubuntu). Les noms d'utilisateur et les noms de groupe sont gérés par NIS et yp. Nous avons des utilisateurs communs auxquels tout le monde a accès et qui effectuent les expériences, puis nous avons chacun nos propres utilisateurs. En outre, il existe un groupe commun auquel nous appartenons tous.
Comment puis-je faire en sorte que tous les fichiers et répertoires du fichier partagé /home/
lecteur (NFS) lu/écrit (/ exécutable) par utilisateur/groupe? En gros ce que je veux c'est
chmod -R 664 /home
chgrp -R commongroup /home
ou équivalent umask 0002
.
Mais l’exécution des commandes ci-dessus ne corrige que les fichiers en cours dans les dossiers et umask ne fonctionne que pour un seul utilisateur et doit être exécuté à chaque fois qu’un utilisateur se connecte, par exemple. dans le .bashrc
fichier (et cela fonctionnera-t-il en mode de modification via gnome?). Existe-t-il une commande ou un paramètre à l'échelle du système que je pourrais utiliser pour m'assurer que notre groupe commun a un accès en écriture aux fichiers communs?
Debian et Ubuntu sont tous deux livrés avec pam_umask . Cela vous permet de configurer umask dans /etc/login.defs
Et de l’appliquer à l’ensemble du système, quelle que soit la procédure de connexion de l’utilisateur.
Pour l'activer, vous devrez peut-être ajouter une ligne à la lecture /etc/pam.d/common-session
session optional pam_umask.so
ou il est peut-être déjà activé. Puis éditez /etc/login.defs
Et changez la ligne UMASK
en
UMASK 002
(la valeur par défaut est 022
).
Notez que les utilisateurs peuvent toujours remplacer umask dans leur propre ~/.profile
Ou ~/.bashrc
Ou similaire, mais (au moins sur les nouvelles installations Debian et Ubuntu), il ne devrait pas y avoir de remplacement de umask dans /etc/profile
Ou /etc/bash.bashrc
. (S'il y en a, enlevez-les.)
Tout d’abord, assurez-vous que le pam-modules
Le paquet est installé. Cela rend le pam_umask
module disponible. Ensuite, assurez-vous que /etc/pam.d/common-session
a une ligne de la forme
session optional pam_umask.so
pour que pam_umask
est autorisé.
Maintenant, selon le pam_umask
man page, le umask par défaut est déterminé lors de la connexion en vérifiant chacun des emplacements suivants, dans l’ordre:
Un paramètre système global défini par défaut dans /etc/pam.d/common-session
. Pour le définir de cette façon, remplacez la ligne de ce fichier mentionné ci-dessus par ceci:
session optional pam_umask.so umask=002
Une entrée dans le champ GECOS d'un utilisateur individuel dans /etc/passwd
remplace un paramètre logiciel général par défaut pour cet utilisateur spécifique. Créez cette entrée en utilisant une commande de la forme:
chfn --other='umask=002' username
Une ligne de la forme UMASK=002
dans /etc/default/login
(vous devrez peut-être créer ce fichier) définit une valeur par défaut logicielle à l’échelle du système.
La valeur UMASK
de /etc/login.defs
. Cette valeur est également utilisée pour autre chose (calcul des autorisations sur le répertoire de base d'un nouvel utilisateur en cours de création; voir les commentaires dans /etc/login.defs
pour plus de détails). Il est donc préférable d'éviter de s'appuyer sur cela pour définir le paramètre umask par défaut pour les connexions régulières, afin de ne pas séparer les éléments.
Donc, dans votre cas, vous devriez le configurer soit dans /etc/default/login
si vous voulez qu'il soit possible de remplacer le paramètre pour des utilisateurs individuels ou de le définir dans /etc/pam.d/common-session
comme décrit ci-dessus si vous voulez qu'il soit identique pour tous les utilisateurs.
Notez que même avec le paramètre par défaut strict, les utilisateurs peuvent toujours remplacer le paramètre par défaut umask
manuellement à l'aide de la commande umask
à l'invite du shell ou dans leur .profile
script.
Notez également que la méthode Unix traditionnelle pour définir cette valeur par défaut consiste à ajouter une commande umask
à /etc/profile
, et cela fonctionnerait toujours aussi. Mais ce n'est pas la méthode recommandée pour configurer de telles choses sur Ubuntu, car il est difficile de gérer de manière fiable en utilisant des scripts et des interfaces graphiques.
Notez malheureusement ceci a cessé de fonctionner pour toute application convertie au lancement via systemd --user
.
Afin de faire correspondre les droits de groupe, sur le serveur, le bit gid défini (un des "sticky bits") peut être considéré comme une option supplémentaire.
Si le répertoire partagé est lié au groupe , lancez (à l'aide de la racine): chmod -R 2775 folder_for_the_group peut être intéressant.
Pour tout nouveau fichier créé dans le dossier, le créateur sera le propriétaire, mais le groupe sera automatiquement spécifié (tant que le créateur fait partie du groupe).
La grille des droits apparaît maintenant sous la forme -rwxrwsr-x +