web-dev-qa-db-fra.com

Problèmes de permission d'installation avec Sudo entre 14.04 et 16.04

J'ai rencontré de nombreux problèmes d'autorisations lors de l'installation de packages dans 16.04. Je les installe avec Sudo, mais les utilisateurs normaux ne peuvent pas lire les fichiers du paquet.

J'ai donc fait un test simple: j'ai créé un répertoire en utilisant Sudo dans 14.04, et j'ai examiné les autorisations:

Sudo mkdir test_14_04
ls -ld test_14_04/ 
#returns: drwxr-xr-x 2 root root 4096 Jan  3 05:57 test_14_04/

Ensuite, j'ai fait la même chose en 16.04, mais à la place, je reçois:

#returns: drwxr-x--- 2 root root 4096 Jan  3 06:00 test_16_04/

Comme vous pouvez le constater, l’autorisation par défaut est la lecture universelle en 14.04 mais pas en 16.04. Donc, cela peut être le problème avec les autorisations de package installé Sudo-.

Comment puis-je réparer cela?

PS:
Ma version de 16.04 Ubuntu est:

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial

et ma version 14.04 est:

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:        14.04
Codename:       trusty
4
kingaj

A propos de votre question:

Exécutez Sudo visudo et ajoutez les lignes suivantes:

`Defaults umask=0022`
`Defaults umask_override`

umask_override (voir la page de manuel sudoers) :

Si défini, Sudo définira l'umask tel que spécifié par les sudoers sans modification. Cela permet de spécifier dans les sudoers un umask plus permissif que le propre umask de l'utilisateur et correspond au comportement historique. Si umask_override n'est pas défini, Sudo définira l'umask comme étant l'union de l'umask de l'utilisateur et de ce qui est spécifié dans les sudoers. Ce drapeau est désactivé par défaut. Si défini, Sudo exécutera la commande dans un pseudo-pty même si aucune journalisation d'E/S n'est en cours. Un programme malveillant exécuté sous Sudo pourrait éventuellement utiliser un processus d'arrière-plan qui sera conservé sur le terminal de l'utilisateur après l'exécution du programme principal. L'utilisation de cette option rendra cela impossible. Ce drapeau est désactivé par défaut.

En espérant que ça aide, bonne chance!

1
galoget

Le problème que vous rencontrez semble être avec la valeur par défaut de rootumask

Les autorisations créées dans la version 14.04 sont égales à umask sur 0022, ce qui devrait être la valeur par défaut root de umask.

# umask
0022

Il semble que votre valeur par défaut umask dans le 16.04 soit 0027, ce qui peut être vérifié en exécutant le root Invite:

umask

afin de changer le comportement par défaut, vous devez vérifier root démarrer les scripts (profile, login, etc.) et rechercher où cette valeur a été définie, puis la changer pour :

umask 0022

Au lieu de:

umask 0027

Plus d'informations peuvent être trouvées dans comprenant l'utilisation de la valeur linux umask


Exemple:

root@ubuntu:~# umask
0022
root@ubuntu:~# mkdir /tmp/z123
root@ubuntu:~# ll -ld /tmp/z123
drwxr-xr-x 2 root root 4096 Jan  3 14:51 /tmp/z123/
root@ubuntu:~# umask 0027
root@ubuntu:~# umask
0027
root@ubuntu:~# mkdir /tmp/a123
root@ubuntu:~# ll -ld /tmp/a123
drwxr-x--- 2 root root 4096 Jan  3 14:54 /tmp/a123/
6
Yaron