dez 012010
 

Passei por um problema aqui em que eu precisava criar uma série de usuários que deveriam pertencer a determinados grupos. Isso porque, quando se cria um usuário novo na Debian (não sei se é assim nas outras distros), ele é incluído somente no seu próprio grupo. E isso é um problema, por exemplo, quando se quer ouvir música, pois o usuário, por padrão, não faz parte do grupo audio. Eu poderia fazer essa inclusão nos grupos individualmente (ou usando um script), mas estava considerando essa solução muito pouco funcional. Resolvi dar uma pesquisada e acabei descobrindo um recurso do próprio comando que resolveu o meu problema.

O pulo do gato está em um parâmetro e no arquivo de configurações do comando adduser. O nome do arquivo é adduser.conf e ele está localizado dentro do diretório /etc. Esse arquivo define todas as configurações padrão do adduser e apresenta vários parâmetros interessantes, como o shell padrão e o diretório dentro do qual deverão ser criados os diretórios dos usuários, entre (várias) outras coisas. Mas as configurações que interessam para este artigo está lá no finalzinho do arquivo. São elas EXTRA_GROUPS e ADD_EXTRA_GROUPS. É sempre bom lembrar que, por ser um arquivo do sistema, o adduser.conf só pode ser alterado com privilégios de superusuário, usando a conta root ou o comando sudo.

EXTRA_GROUPS define em quais grupos os usuários serão incluídos. Caso você queira usar os grupos padrão, que estão definidos na linha de configuração do parâmetro, você pode deixá-la exatamente como está. Agora, se você quiser alterar esses grupos, então é necessário descomentar a linha (eliminando o sinal #) e alterar o parâmetro para os grupos de seu interesse.

ADD_EXTRA_GROUPS define o comportamento padrão do comando adduser. Caso você queira que todos os usuários sejam incluídos nos grupos definidos em EXTRA_GROUPS, descomente a linha ADD_EXTRA_GROUPS e certifique-se de que o número ao final dela seja diferente de zero (por exemplo, ela deve ficar ADD_EXTRA_GROUPS=1). Caso você queira que somente alguns usuários entrem nos grupos definidos, deixe essa linha comentada (ou com o valor 0) e, quando for criar o usuário que deve pertencer aos grupos, acrescente o parâmetro –add_extra_groups ao comando adduser.

Exemplificando:

Situação 1: você quer que todos os usuários criados no seu sistema pertençam aos grupos audio, video, plugdev e users. Você deve então editar o arquivo adduser.conf e alterar a linha do parâmetro EXTRA_GROUPS para:

EXTRA_GROUPS="audio video plugdev users"

e a linha do ADD_EXTRA_GROUPS para:

ADD_EXTRA_GROUPS=1

(repare que, em ambas as linhas, não existe mais o sinal # no início delas) e, para criar novos usuários, execute o tradicional:

adduser nome_do_usuario

Todos os usuários criados dessa forma farão parte dos grupos audio, video, plugdev e users.

Situação 2: você quer que alguns os usuários pertençam aos grupos padrão do sistema (aqui na minha instalação eles são: dialout, cdrom, floppy, audio, video, plugdev e users). Nesse caso os parâmetros ficam com a configuração padrão do sistema, ou seja, as linhas permanecem como:

#EXTRA_GROUPS="dialout cdrom floppy audio video plugdev users"

e:

#ADD_EXTRA_GROUPS=1

(repare na marca de comentário no início de cada linha). Agora, toda vez que você quiser criar um usuário pertentecente aos grupos padrão, é necessário acrescentar o parâmetro –add_extra_groups ao comando, dessa forma:

adduser nome_do_usuario –add_extra_groups

Assim, somentes esses usuários farão parte desses grupos. Os outros, criados sem o parâmetro, continuarão somente com seus grupos pessoais.