É necessário reinicializar para atualizar as permissões após adicionar um usuário a um novo grupo?

25

No servidor Ubuntu, eu notei mais de uma vez agora que depois de adicionar um usuário a um grupo que o usuário não tem permissões de grupo até que eu reinicie o sistema. Por exemplo:

O usuário 'hudson' precisa de permissão para ler o diretório 'root: shadow / etc / shadow' Então eu adiciono o hudson ao grupo de sombras. hudson ainda não consegue ler. Então, eu sudo shutdown -h -r now 'e quando o sistema aparece novamente, o usuário hudson pode ler.

A reinicialização é necessária ou há uma maneira melhor de obter permissões aplicadas depois de adicionar o usuário ao grupo?

    
por Michael Prescott 03.01.2010 / 02:36

5 respostas

24

Eu estava procurando uma solução, encontrei este post e depois encontrei um!

Eu pensei que eu realmente ofereceria uma solução para que outras pessoas pudessem se beneficiar. Entrar e sair é tão 1995.

Extraído de:

link

Então, se você precisar obter permissões para o grupo cdrom , acabou de adicionar seu usuário a:

newgrp cdrom 

por exemplo

Então os passos seriam:

#adduser my_user cdrom

e depois

$newgrp cdrom

Confirmei que funciona.

Uma simples verificação $groups da CLI mostra que o usuário está no grupo. E uma execução rápida com os privilégios necessários desse grupo funciona.

Não há necessidade de matar suas janelas e fazer login e logout! Espero que ajude os outros!

Informações Adicionais (com base no comentário útil do jytou): "[Esta] solução funcionará apenas para o shell aberto atual. Se você tiver outro shell aberto, você precisará usar o mesmo comando levar as mudanças em consideração. "

    
por 13.03.2012 / 04:48
19

Ao adicionar um usuário a um novo grupo, o usuário deve efetuar logout e login novamente para que ele tenha efeito. Enquanto uma reinicialização vai conseguir isso, não deve ser necessário.

    
por 03.01.2010 / 02:39
8

Adicionar um usuário a um grupo não afeta os usuários atualmente conectados.

No caso de um daemon, você precisa reiniciá-lo para que novos grupos sejam aplicados.

Além disso, reiniciar o daemon usando uma opção no próprio daemon não funcionará, já que ele herdará o ambiente atual.

A maneira mais fácil de fazê-lo funcionar é parar completamente o daemon e iniciá-lo novamente, como em

/etc/init.d/foo stop ; /etc/init.d/foo start
    
por 03.01.2010 / 05:00
1

Há um modo de falha diferente que também deve ser tratado aqui.

Se o administrador atualizou o /etc/group , mas não conseguiu atualizar o /etc/gshadow (em sistemas com essa configuração), fazer logout e voltar ao programa não o atribuirá ao novo grupo.

Confusamente, groups mostrará a situação real e atual, enquanto id imprime incorretamente a saída, o que indica que você é um membro do grupo.

tripleee@vbvntv$ groups
tripleee

tripleee@vbvntv$ id
uid=1234(tripleee) gid=1234(tripleee) groups=1234(tripleee),4(adm)

tripleee@vbvntv$ ls -l /var/log/mail.log
-rw-r----- 1 root adm 15728 May 26 14:26 /var/log/mail.log

tripleee@vbvntv$ tail /var/log/mail.log
tail: cannot open '/var/log/mail.log' for reading: Permission denied

Eu não posso usar newgrp porque ele pede uma senha, e eu não tenho uma senha, apenas autenticação de chave pública SSH.

A solução seria o administrador reverter a edição manual de /etc/groups e, em seguida, fazer novamente com sudo gpasswd -a tripleee adm ; ou, como alternativa, usar grpconv para mesclar as alterações (que eu peguei no link )

    
por 26.05.2015 / 14:18
1

que é muito mais fácil, você pode verificar seu nível de acesso atual digitando:

id

para recarregar seus grupos que você precisa:

su - $USER

depois disso, verifique novamente o nível de acesso:

id

e você verá que o novo grupo agora está ativo.

    
por 30.05.2017 / 23:55