web-dev-qa-db-fra.com

Comment changer le mode umask en permanence?

J'ai lu quelques articles comme this ancien comment changer le mode umask mais n'arrive toujours pas à le comprendre 100%, Ubuntu 14.04 fonctionne avec le noyau Xenial avec le paramètre par défaut umask 0002 et mon objectif est de définir 0027 umask en mode permanent sur tout le système. Comment puis-je y arriver? Quelle est la meilleure façon de le faire?

4
JoKeR

Merci @waltinator de m'avoir orienté dans la bonne direction.

A partir de là, j'ai pensé qu'il était facile de configurer le mode mask sur 27 simplement exécuter dans le terminal:

Sudo gedit /etc/login.defs

ou avec nanolequel vous préférez.

rechercher la ligne:

Prefix these values with "0" to get octal, "0x" to get hexadecimal.

ERASECHAR   0177
KILLCHAR    025
UMASK       027

Modifiez la dernière ligne en faisant référence à UMASK. Ceci configurera mask à 07 pour prendre effet et simplement vous déconnecter et vous reconnecter.

Faites une remarque sur les lignes ci-dessus: Si USERGROUPS_ENAB est défini sur "yes", cela modifiera cette valeur par défaut UMASK ... utilisée en tant qu'autorisations de groupe, par exemple, 022 deviendra 002

Donc, pour que mask 0027 prenne effet jusqu'à la ligne:

USERGROUPS_ENAB yes

et le changer pour:

USERGROUPS_ENAB no

Terminé. Une fois que vous êtes déconnecté et reconnecté, exécutez la commande umasket vous obtiendrez le mode 0027.

Créez maintenant un nouveau fichier avec touchdans le terminal:

touch testfile

maintenant vérifier les autorisations:

stat -c %a ~/testfile

Il devrait vous donner 64

3
JoKeR

Un simple man -k umask aurait dû vous amener à lire man pam_umask, ce qui dit, en partie:

DESCRIPTION
pam_umask is a PAM module to set the file mode creation mask of the
current environment. The umask affects the default permissions assigned
to newly created files. 

Il dit aussi

The PAM module tries to get the umask value from the following places
   in the following order:

   ·   umask= argument

   ·   umask= entry in the user's GECOS field

   ·   UMASK= entry from /etc/default/login

   ·   UMASK entry from /etc/login.defs (influenced by USERGROUPS_ENAB in
       /etc/login.defs)
4
waltinator

J'utilisais la réponse de JoKeR ci-dessus pour obtenir un umask à l'échelle du système de 027, mais je savais que lorsque j'utilisais USERGROUPS_ENAB no, il fallait davantage de gestion de groupe. Je pense donc avoir trouvé un meilleure réponse , en gros:

  1. Assurez-vous que le paquet pam-modules est installé. cela rend le module pam_umask disponible.
  2. Assurez-vous que /etc/pam.d/common-session a une ligne de la forme
    session optional pam_umask.so
    pour que pam_umask soit activé.
  3. Selon la page de manuel pam_umask, 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 par défaut défini dans /etc/pam.d/common-session. Pour le définir ainsi, remplacez la ligne de ce fichier mentionné ci-dessus par ceci:
      session optional pam_umask.so umask=027
    • Une entrée dans le champ GECOS d'un utilisateur individuel dans/etc/passwd remplace une valeur par défaut système globale pour cet utilisateur spécifique. Créez cette entrée en utilisant une commande de la forme:
      chfn --other='umask=027' username
    • Une ligne de la forme UMASK=027 dans/etc/default/login (vous devrez peut-être créer ce fichier) définit une valeur logicielle par défaut 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.

Alors maintenant, j’utilise la première option (la valeur par défaut pour l’ensemble du système dans /etc/pam.d/common-session) et cela fonctionne vraiment bien.

Bonne chance mes amis :)

0
Dig