ID resulta diferente dependendo de quem pergunta

2

Eu tenho o userX que tem privilégios em tempo real para o grupo em tempo real. Eu queria dar privilégios de administrador de usuário, então mudei para root

~>su root

e correu

#>usermod -a -G root userX

Após um breve atraso, voltei ao prompt e testei o efeito.

#>id userX
#>uid=1000(userX)  gid=0(root) groups=0(root),1001(realtime)

Então, parece que eu fui bem sucedido. Saí e testei meu novo administrador adicionando um usuário fictício.

#>exit
~>useradd BSD
bash: /usr/sbin/useradd: Permission denied

Algo está errado. Eu tentei confirmar minha associação ao grupo e isso me deu uma resposta diferente.

~>id
~>uid=1000(userX)  gid=1001(realtime) groups=1001(realtime) contextunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Então, preciso saber por que meu usuário diz que não faz parte do root e que o root diz que o usuário é. O que estou perdendo?

    
por BSD 05.10.2017 / 19:53

1 resposta

4

O que está acontecendo?

A lista de grupos em que um usuário se encontra é configurada apenas no login (e possivelmente modificada usando o comando sg raramente usado, mas isso só funciona se houver uma senha de grupo definida para esse grupo). Se esse usuário fizer logout e, em seguida, efetuar login novamente, ele deverá se ver nesse grupo. No entanto, estar no grupo com GID 0 ('root' na maioria dos sistemas Linux, 'wheel' ou 'adm' na maioria dos sistemas não-Linux) não é o mesmo que ter privilégios administrativos, e é de fato uma má idéia de um perspectiva de segurança.

Por que isso não é o mesmo que privilégios administrativos?

O usuário root (UID 0) é especial. O grupo raiz (GID 0, chamado wheel em muitos sistemas não Linux por razões históricas que não consigo encontrar) não é. Seu usuário poderá acessar arquivos pertencentes ao grupo raiz, mas provavelmente não muito mais. Esta é uma distinção um tanto complicada, mas é muito importante.

Por que isso é uma má ideia?

Esta é uma má idéia, praticamente pelo mesmo motivo que correr o usuário root o tempo todo é uma má ideia. Você está sempre a um erro de tornar o sistema inutilizável (na maioria dos sistemas Linux, por exemplo, fazer parte do grupo raiz significa que você pode tornar o sistema não inicializável, pois é possível excluir coisas de /boot ).

Qual é a maneira correta (e segura) de conceder privilégios administrativos ao usuário?

Se possível, configure sudo , doas ou qualquer outra ferramenta de elevação de privilégios diferente de su no seu sistema para permitir o acesso. Se você não tiver essa ferramenta diferente de su , instale uma (sugiro sudo , é a mais amplamente usada e, portanto, uma das mais fáceis de aprender porque há muita documentação). Se isso também não for uma opção, apenas elevar através de su quando você precisar executar tarefas administrativas for a opção correta (embora tenha cuidado ao fazer isso, pois su não reinicia corretamente o ambiente para os comandos chamados através dele) .

    
por 05.10.2017 / 20:40

Tags