Como adicionar grupo a um usuário sem remover outro grupo no suse linux com usermod?

7

Eu tenho um usuário, que tem um grupo principal & um grupo secundário, como:

[ testuser Welcome ~ ]$ id

uid=2000(testuser) gid=2000(testuser) groups=2000(testuser),27(sudo),2001(testgroup)

O grupo principal é testuser & grupo secundário é testgroup .

Agora, eu tento adicionar mais um grupo secundário testgroup2 a esse usuário com o comando abaixo

usermod -G testgroup2 testuser

mas removeu o grupo secundário anterior ( testgroup ) & adicionou o novo. Minha necessidade é que o grupo secundário anterior não seja removido & o novo grupo secundário deve ser adicionado.

Eu vi no Ubuntu, há uma opção como -a , que pode anexar o grupo ao usuário sem remover o outro grupo.

Por favor me avise é também possível no suse linux ou não ...?

Thankx !!!

    
por joy87 22.01.2015 / 19:35

3 respostas

4

No SLES11 SP3, o comando usermod (do pwdutils 3.2.15) suporta uma opção -A que fará o que você deseja:

-A, --add-to-group group,...
    With this option a list of  groups can be specified, which the user should
    become a member of. Each group is separated from the next one only by a comma,
    without whitespace.

No SLES12 e no OpenSUSE 13.1, o comando usermod (do shadow-utils mais usado 4.1.5.1) suporta uma opção -a a ser usada em conjunto com a opção -G :

-a, --append
    Add the user to the supplemental group(s). Use only with -G option.

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
    A list of supplementary groups which the user is also a member of. Each group
    is separated from the next by a comma, with no intervening whitespace. 

    If the user is currently a member of a group which is not listed, the user
    will be removed from the group. This behaviour can be changed via the -a option,
    which appends the user to the current supplementary group list.
    
por 23.01.2015 / 19:02
3

Se o seu usermod não tiver como acrescentar (nem mesmo -A ), tente adicionar o conjunto atual de grupos:

usermod -G "$(groups testuser | sed 's/.*: //;s/ /,/g'),testgroup2" testuser
    
por 23.01.2015 / 19:34
1

Esse comando faz você especificar uma lista de todos os grupos, substituindo os antigos.

 -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
           A list of supplementary groups which the user is also a member of. Each group is separated from the next by a comma, with no intervening whitespace. The groups are subject to the same restrictions as the group given with the -g option.

Em vez disso, use adduser :

adduser [options] user group

adduser pode ser usado para adicionar um usuário, mas também para adicionar um usuário a um grupo.

ou como @mark plotnick aponta, use a opção -a de usermod

    
por 22.01.2015 / 19:46