Pam umask.so

De Cliss XXI
Sauter à la navigation Sauter à la recherche

Typiquement utilisé dans un contexte ou

  1. il n'y a pas de shell (donc la command umask de /etc/profile n'est pas exécutée)
  2. il y a écriture de fichier
  3. 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