função Newgrp

1

Eu não conseguia entender exatamente a função do newgrp. Isso ajuda a mover de um grupo para outro grupo do qual o usuário específico é membro. Ou permite tornar-se membro do grupo para o qual o usuário não é membro, mas possui uma senha de grupo. Eu não sou claro sobre isso. Algum de vocês pode me dar uma visão clara sobre isso?

    
por Dechen 02.12.2016 / 08:56

2 respostas

2

Para entender o que o comando newgrp faz, você precisa entender que quando você adiciona um usuário a um grupo, o novo usuário não será realmente adicionado ao grupo, até que você efetue logout e login novamente. Isso geralmente é um incômodo porque mata todos os seus programas. newgrp permite adicionar um usuário a um grupo e torná-lo efetivo na sessão de login atual.

uso

# show groups user "ubuntu" belongs to
ubuntu@ubuntu:/usr/share/man$ groups ubuntu 
ubuntu : ubuntu adm cdrom sudo dip plugdev lpadmin sambashare

# add user "ubuntu" to group: src
ubuntu@ubuntu:/usr/share/man$ sudo gpasswd -a ubuntu src
Adding user ubuntu to group src

ubuntu@ubuntu:/usr/share/man$ groups ubuntu
ubuntu : ubuntu adm cdrom sudo dip src plugdev lpadmin sambashare
#                                  ^^^
# user ubuntu is "technically" now added to group 'src'

# now try do something that members of 'src' can do  
#  i.e. create a file in /usr/local/src/
ubuntu@ubuntu:/usr/share/man$ ls -alh /usr/local/
total 0
drwxr-xr-x 1 root root 100 Jul 20 08:42 .
drwxr-xr-x 1 root root 180 Dec  2 20:19 ..
drwxr-xr-x 1 root root  80 Dec  2 20:15 bin
drwxr-xr-x 2 root root   3 Jul 20 08:42 etc
drwxr-xr-x 2 root root   3 Jul 20 08:42 games
drwxr-xr-x 2 root root   3 Jul 20 08:42 include
drwxr-xr-x 4 root root  49 Jul 20 08:45 lib
lrwxrwxrwx 1 root root   9 Jul 20 08:42 man -> share/man
drwxr-xr-x 2 root root   3 Jul 20 08:42 sbin
drwxr-xr-x 1 root root  60 Dec  2 19:53 share
drwxrwxr-x 1 root src   60 Dec  2 19:55 src
ubuntu@ubuntu:/usr/share/man$ touch /usr/local/src/a_file
touch: cannot touch '/usr/local/src/a_file': Permission denied
# it doesn't work

# now run "newgrp" on src group
ubuntu@ubuntu:/usr/share/man$ newgrp src
ubuntu@ubuntu:/usr/share/man$ touch /usr/local/src/a_file

# now you are truly part of src group
ubuntu@ubuntu:/usr/share/man$ ls -alh /usr/local/src
total 0
drwxrwxr-x 1 root    src      80 Dec  2 21:26 .
drwxr-xr-x 1 root    root    100 Jul 20 08:42 ..
-rw-rw-r-- 1 ubuntu  src       0 Dec  2 21:26 a_file
    
por the_velour_fog 02.12.2016 / 09:30
1

newgrp executa um shell configurando seu ID de grupo real (consulte man 7 credentials ) para o grupo solicitado, que pode ser um dos grupos ao qual o usuário pertence ou um grupo do qual o usuário conhece a senha . (Grupos podem ter senhas como contas de usuários).

Para retornar à situação antes de newgrp usar exit para finalizar o shell executado por newgrp . Como newgrp executa um novo shell, você precisa ser cuidadoso ao usá-lo em scripts (dica: canalize um comando para ele ou use um aqui-documento).

    
por AlexP 02.12.2016 / 09:29