Problemas de permissão de instalação com o sudo entre 14.04 e 16.04

4

Eu tive muitos problemas de permissões na instalação de pacotes no 16.04. Eu os instalo usando sudo , mas os usuários normais não podem ler os arquivos no pacote.

Por isso, executei um teste simples: criei um diretório usando sudo em 14.04 e observei as permissões:

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/

Então eu fiz a mesma coisa em 16.04, mas ao invés disso eu obtenho:

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

Como você pode ver, a permissão padrão é de leitura mundial em 14.04, mas não em 16.04. Então, esse pode ser o problema com as permissões do pacote sudo -installed.

Como posso corrigir isso?

PS:
Minha versão do Ubuntu 16.04 é:

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

e minha versão 14.04 é:

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:        14.04
Codename:       trusty
    
por kingaj 03.01.2018 / 13:07

2 respostas

1

Sobre sua pergunta:

Execute sudo visudo e adicione as seguintes linhas:

'Defaults umask=0022'
'Defaults umask_override'

umask_override (veja a página de manual do sudoers) :

  

Se definido, o sudo definirá o umask conforme especificado pelos sudoers sem   modificação. Isto torna possível especificar uma forma mais permissiva   umask em sudoers do que a umask do usuário e corresponde ao histórico   comportamento. Se umask_override não estiver definido, o sudo irá definir o umask para ser   a união da umask do usuário e o que é especificado nos sudoers. este   o sinalizador está desativado por padrão. Se definido, o sudo irá executar o comando em um   pseudo-pty mesmo se nenhum registro de E / S estiver sendo eliminado. Um programa malicioso   executado sob sudo poderia concebivelmente bifurcar um processo de fundo que   mantém o dispositivo terminal do usuário após o programa principal ter   terminou a execução. O uso dessa opção tornará isso impossível. este   o sinalizador está desativado por padrão.

Espero que isso ajude, boa sorte!

    
por galoget 04.01.2018 / 05:14
6

O problema que você está enfrentando parece estar com o valor padrão de root umask

As permissões que foram criadas na versão 14.04 são iguais a umask de 0022 , que deve ser o valor root padrão de umask

# umask
0022

Parece que seu umask padrão está no 16.04 is 0027 , que pode ser verificado ao ser executado no prompt root :

umask

para alterar o comportamento padrão, você precisará verificar os scripts root start ( profile , login , etc) e descobrir onde esse valor foi definido e alterá-lo para ser:

umask 0022

Em vez de:

umask 0027

Mais informações podem ser encontradas em entendimento do uso do valor do umask do

Exemplo:

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/
    
por Yaron 03.01.2018 / 13:19