Pam umask.so
Typiquement utilisé dans un contexte ou
- il n'y a pas de shell (donc la command umask de /etc/profile n'est pas exécutée)
- il y a écriture de fichier
- il n'y a rien du côté serveur pour configurer les droits par défaut
un montage sshfs ou une copie scp/sftp arrive dans ce contexte.
Pour forcer l'umask par défaut pour toutes les connexions ssh:
ajouter dans /etc/pam.d/sshd
session optional pam_umask.so umask=xxx
pour modifier l'umask par défaut par utilisateur: remplacer la ligne précédente dans /etc/pam.d/sshd par
session optional pam_umask.so
Modifier le champs GECOS de l'utilisateur ciblé (chfn) pour y ajouter la chaine
umask=xxx
Note: pam_umask.so va chercher la valeur de l'umask dans différent endroit du système (cf le man): notamment dans /etc/defaultlogin et /etc/login.defs. Attention a ce qui existe déjà sur votre machine.
pam_umask.so va initialiser l'umask, mais si un shell est exécuté après, la valeur umask peut être écrasée par ce qui est écrit dans /etc/profile ou ~/.profile.
Exemple, utilisateur "toto" dont le champs umask est mis à 002 dans son champs GECOS mais dont le fichier ~/.profile contient "umask 022"
Ssh "normal" avec un shell
$ ssh toto@host toto$ umask 022
Ssh sans shell (exécution à distance):
$ ssh toto@host umask 002 $
le fichier /etc/passwd a donc une tête:
toto:x:1001:1001:M. Toto A.,info1,info2,info3,umask=0002:/home/toto:/bin/bash