web-dev-qa-db-fra.com

Comment définir umask par défaut dans Ubuntu 17.04?

Dans le passé, j’ai toujours défini umask à ~/.profile. J'ai défini un umask de 077 afin que mes documents obtiennent l'autorisation de 600 (rw-------). Mais définir ceci à ~/.profile ne fonctionne plus dans Ubuntu 17.04.

Ainsi, à mesure que de nouveaux documents sont créés dans une session gnome sous Ubuntu 17.04, où puis-je les configurer pour qu’ils soient créés avec l’autorisation 600?

4
G.W.

Pour définir les autorisations pour tous les répertoires et fichiers créés jour après jour par n’importe quel utilisateur:

  1. Sudo nano /etc/pam.d/common-session
  2. Recherchez la ligne avec "session facultative pam_umask.so"
  3. Remplacez ceci par "session facultative pam_umask.so umask = 0077"
  4. Enregistrez le fichier.
  5. Redémarrez.

Les nouveaux fichiers seront 600. Les nouveaux répertoires seront 700.

3
TooManyPets

Ubuntu 18.04, devrait fonctionner pour 17.04 et autres

Selon le pages de manuel , il existe plusieurs endroits où nous pouvons définir le umask du module PAM à rechercher; cela donne même un exemple. Je vais le mettre dans /etc/pam.d/login. Notez que ce fichier n’existe pas sur ma version d’Ubuntu, auquel cas nous pouvons le créer.

$ Sudo sh -c "echo 'session optional pam_umask.so umask=0027' >> /etc/default/login"

$ more /etc/default/login
session optional pam_umask.so umask=0027

Bogue maléfique

Maintenant, si nous redémarrons et demandons le umask dans le terminal, nous obtenons toujours 0022 et non le 0027 qui a été défini. Voir Bogue n ° 1685754 .

Mais si nous ouvrons une application, par exemple l'éditeur de texte, et sauvegardons un fichier, nous remarquerons que le nouvel umask est défini correctement. Ouvrez-le depuis le menu, pas depuis le terminal car il semble récupérer le (mauvais) umask du terminal.

$ touch terminal-file
$ ls -l
-rw-r-----  1 daniel daniel    0 jan 28 21:21 gedit-file
-rw-r--r--  1 daniel daniel    0 jan 28 21:22 terminal-file

Références

2
Daniel
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

C'est littéralement ce que dit votre ~/.profile. Avez-vous relogin une fois changé? Cela devrait bien fonctionner.

Également:

This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login exists.

En fait, a confirmé le problème sur un Ubuntu 17.04 fraîchement installé. Même une mise à jour complète provoque toujours ce problème et même ~/.bash_profile est ignoré, il semble y avoir un problème avec l'interpréteur de commandes qui ne lit pas ces fichiers après la connexion.

Vous pouvez utiliser ~/.bashrc pour l'instant, ce qui fonctionne toujours bien et est lu lors de la connexion.

Donc, après avoir creusé un peu, il semble que bash n’est plus exécuté par défaut avec --login, ce qui signifie qu’il ne lit pas le fichier ~/.profile. Commencer une nouvelle bash avec le umask dans ~/.profile avec bash --login définit correctement le début de la bash sans définir le bash sans le ~/.profile. Je ne suis pas sûr de ce qui a été changé, mais cela me semble être un bug sauf si cela a été intentionnellement changé.

0
Ziazis

Si vous utilisez GDM, il ne lit pas ~/.profile comme LightDM. Et le terminal ouvre normalement un shell sans connexion. L'effet net est que ~/.profile n'est pas chargé du tout lorsque vous ouvrez un terminal après vous être connecté à l'aide de GDM.

Non plus:

  • mettez vos paramètres dans ~/.bashrc, ou
  • configurez votre terminal pour démarrer un shell de connexion, ou
  • passer à LightDM
0
muru