http://w w w .infow
publicidade
Introduo
Uma das coisas que torna seguro o sistema operacional GNU/Linux (na verdade, qualquer sistema baseado no Unix), a sua exigncia de que cada coisa tenha dono e permisses de uso. Assim, para que seja possvel restringir ou permitir o acesso e o uso de determinados recursos a uma ou mais pessoas, necessrio que cada uma tenha um usurio devidamente criado no sistema operacional. Mas, como criar usurios no Linux? Como alterar as caractersticas desses usurios? Como bloquear ou mesmo eliminar um usurio do sistema? isso que voc ver nas prximas linhas.
para esse usurio. Em alguns casos, embora isso no seja recomendvel, a senha pode estar inserida diretamente ali, mas criptografada; 1001: esse campo indica o nmero UID (User IDentification) do usurio, mas voc pode estar se perguntando o que isso. Como o prprio nome informa, nmero que serve para identificar o usurio. Em geral, o sistema pode suportar UIDs que vo de 0 a 4.294.967.296, embora alguns sistemas limitem esse nmero a valores inferiores. Normalmente, o UID 0 atribudo pelo prprio GNU/Linux ao usurio root. O sistema tambm pode criar automaticamente usurios para a execuo de determinadas rotinas e atribuir a eles UIDs baixos, como 1, 2, 3 e assim por diante. Note que, em nosso exemplo, o UID do usurio 1001. Para usurios "humanos" do sistema, realmente uma boa prtica criar UIDs mais altas, para fins de organizao; 500: esse o campo que indica o GID (Group IDentification) do usurio, isto , o nmero de identificao do grupo do qual ele faz parte. Assim como no UID, geralmente o usurio 0 indicado para o grupo do usurio root. Note, no entanto, que um mesmo usurio pode fazer parte de mais de um grupo (geralmente, o GNU/Linux permite a participao do usurio em at 32 grupos). Mas qual a vantagem de se ter mais de um grupo? Simples: suponha, por exemplo, que voc queira que somente os funcionrios do departamento contbil de sua empresa acessem os arquivos disponveis na pasta /contabilidade/. Para isso, voc cria um grupo e uma definio que faz com que apenas os usurios desse grupo tenham direito ao acesso. Feito isso, basta adicionar ao grupo cada usurio do departamento contbil. Assim, somente eles acessaro o diretrio. Via de regra, o sistema operacional cria um grupo para cada conta de usurio criada; TinTin,Belgica,846-846: esse campo muito interessante, pois permite a incluso de informaes adicionais sobre o usurio. Tambm chamado de GECOS (General Electric Comprehensive Operating System) em aluso a uma funcionalidade existente em um sistema operacional Unix que tinha esse nome, esse campo serve para, por exemplo, cadastrar o nome completo do usurio, seu endereo, seu telefone ou o seu ramal, etc. Cada informao separada da outra por uma vrgula, por exemplo: Emerson Alecrim,Rua X,1234-4321. Na prtica, voc pode inserir as informaes que achar melhor, no apenas os dados informados anteriormente; /home/tintin: cada usurio criado no sistema tem direito a uma pasta "home", ou seja, uma pasta sua, para uso exclusivo. neste campo que voc indica onde estar essa pasta. Em geral, essas pastas ficam dentro do diretrio /home/, mas voc pode definir o diretrio que quiser (ou mesmo no indicar nenhum); /bin/bash: esse o campo que informa qual o shell (interpretador de comandos) de login que o usurio utilizar. O GNU/Linux trabalha com vrios, entre eles, o bash, o sh e o csh. Caso nenhum shell seja informado, o sistema utilizar o bash como padro.
adduser -group grupo: com esse parmetro, ao invs de uma conta de usurio, um grupo criado. Para essa tarefa tambm pode-se utilizar o comando addgroup; adduser -home diretrio usurio: com essa opo, voc define em qual diretrio ficar o "home" do usurio. Se esse parmetro no for usado, o sistema criar o "home" no diretrio padro (geralmente, em /home/nome_do_usurio). Se preferir que nenhum diretrio desse tipo seja criado, voc pode utilizar a opo -no-create-home (no recomendvel);
adduser -uid nmero usurio: quando usurios so criados, o sistema geralmente adiciona a eles UIDs sequenciais, mas voc pode especificar o UID que quiser usando o parmetro uid seguido de um nmero, por exemplo, uid 31415. Note que, em muitas distribuies GNU/Linux, voc pode utilizar apenas a letra u ao invs de uid. Note tambm que o GID do usurio ser igual ao valor informado por voc, a no ser que voc especifique outro atravs da opo -gid, vista abaixo; adduser -gid nmero usurio: semelhante ao parmetro acima, mas especifica manualmente um grupo para o usurio ao invs de criar um parmetro. Note que, em muitas distribuies GNU/Linux, voc pode utilizar apenas a letra g ao invs de gid. O gid informado deve ser o de um grupo j existente; adduser -ingroup grupo usurio: adiciona o usurio criado a um grupo j existente, ao invs de criar um novo grupo para ele; adduser -shell shell usurio: atravs desse parmetro, voc pode especificar qual ser o shell padro do usurio. Em alguns sistemas possvel usar a letra s ao invs da palavra shell. Para servir de exemplo, vamos criar um usurio de nome wester. Esse usurio dever: - ter um UID de nmero 27182; - ser inserido no grupo infowester (j existente). Veja como ficar o comando: adduser -uid 27182 -ingroup infowester wester Assim que esse comando for digitado, o sistema pedir que voc digite duas vezes uma senha para o usurio. Em seguida, perguntar as informaes adicionais, como nome completo, telefone, etc. Note que voc pode deixar essas informaes em branco, se preferir. Voc deve ter notado pelo comando acima de que possvel utilizar mais de uma opo ao mesmo tempo no comando adduser.
Se alm de eliminar esse usurio do sistema voc quiser que sua pasta "home" seja apagada (junto com todo o seu contedo), basta digitar o comando userdel seguido do parmetro -r e do nome do usurio: userdel -r voldemort Ao fazer isso, certifique-se que o usurio tem cpia de todos os arquivos a serem apagados, quando cabvel.
-k: permite a alterao da senha somente se esta estiver expirada; -x dias: faz com que a senha funcione apenas pela quantidade de dias informada. Depois disso, a senha expira e o usurio deve troc-la; -n dias: indica a quantidade mnima de dias que o usurio deve aguardar para trocar a senha; -w dias: define a quantidade mnima de dias em que o usurio receber o aviso de que sua senha precisa ser alterada; -i: deixa a conta inativa, caso a senha tenha expirado; -l: "tranca" a conta do usurio; -u: desbloqueia uma conta que esteja "trancada"; -S: exibe o status da conta (note que a letra S deve estar em maiscula). Vamos a alguns exemplos para que voc possa entender essas opes: Suponha que voc queira que a senha do usurio marvin expire aps 30 dias. O comando : passwd marvin -x 30 Suponha, agora, que voc queira que a senha do usurio bender expire aps 14 dias e exiba uma mensagem de que necessrio trocar a senha trs dias antes da data limite. O comando ser o seguinte: passwd bender -x 14 -w 3 Agora, vamos supor que voc queira saber do status do usurio bender, para confirmar as alteraes. Eis o comando: passwd bender -S O resultado exibido neste exemplo : bender P 12/11/2007 0 14 3 -1 A letra P acima informa que o usurio bender tem senha. Se no tivesse, no lugar de P estariam as letras NP. Se a conta do usurio estivesse bloqueada, apareceria a letra L. Por sua vez, a data que aparece na seqncia (no formato ms/dia/ano) informa a ltima alterao de senha que houve. As prximas quatro informaes indicam, respectivamente, o perodo mnimo de utilizao da senha, o perodo mximo (lembra que voc definiu esse
perodo com sendo de 14 dias?), o perodo de alerta (que voc informou como sendo de 3 dias) e, por fim, o perodo de inatividade (quando no h inatividade, o resultado -1).
Como j informado antes, o GNU/Linux usa o arquivo /etc/shadow para lidar com as senhas de usurios. As informaes desse arquivo tm o seguinte padro (usando como exemplo os dados do usurio toad): toad:$1$O48MNVt9$08BBOTqV0cr2LtKtMXtAY1:13849:0:99999:7::: Assim como acontece no arquivo /etc/passwd, as informaes do arquivo /etc/shadow so separadas por : (dois pontos). No caso acima, aparece o nome do usurio (toad), a senha criptografada ( por que isso que h esse monte de caracteres sem sentido), a data da ltima mudana (13849), a quantidade mnima de dias que o usurio deve esperar para mudar a sua senha (0), a quantidade mxima de dias para a alterao de senha ser feita (99999) e a quantidade de dias restantes data de expirao que o sistema operacional deve esperar para exibir alertas de mudana de senha (7). Os demais campos (que esto em branco) so destinados informaes de expirao de conta, mas dificilmente so usados. Voc pode ter se perguntado sobre o motivo das datas serem representadas por um nico nmero, como o valor 13849, acima. Essa formato indica a quantidade de dias que j se passou desde 1 de janeiro de 1970.
Gerenciando grupos
Lidar com grupos no GNU/Linux tarefa muito semelhante ao trabalho com usurios. Veja os principais comandos disponveis: addgroup grupo: funciona de maneira igual ao comando adduser (inclusive algumas opes so as mesmas), no entanto, obviamente, cria grupos ao invs de usurios; groupdel grupo: serve para eliminar grupos do sistema; newgrp - grupo: com este comando possvel mudar o grupo efetivo do usurio, isto , o grupo pertencente a ele, por um outro grupo do qual ele faz parte. Essa operao somente executada caso o grupo tenha senha; groups usurio: mostra os grupos dos quais um usurio faz parte. Se quiser, por exemplo, saber os grupos do usurio gandalf, basta digitar em um terminal: groups gandalf As informaes dos grupos so armazenadas no arquivo /etc/groups. Esse arquivo tambm indica quais usurios pertencem aos grupos existentes. Cada grupo contm uma linha com essas informaes. Vamos analisar a seguinte linha de um arquivo /etc/groups para entender melhor como isso funciona: infowester:x:1002:wester,toad,marvin Assim como nos arquivos /etc/passwd e /etc/shadow, os campos da linha so separados por : (dois pontos). No exemplo acima, o primeiro campo indica o nome do grupo (infowester). O segundo campo informa a senha (sim, possvel definir senhas para grupos, embora raramente isso seja feito). Neste caso, usa-se x para indicar a ausncia de senha. O terceiro campo informa o GID do grupo (1002) e, por fim, o quarto campo informa quais so os usurios pertencentes a esse grupo. Note que, neste exemplo, os usurios wester, toad e marvin fazem parte do grupo infowester. A lista de usurios deve ser separada por vrgulas, sem espao entre os nomes. No que se refere a este assunto, possvel que encontre grupos em seu sistema que voc no lembra de ter criado. Suponha, por exemplo, que voc digitou o comando groups lestat para saber quais os grupos dos quais participa o usurio lestat, e o resultado foi o seguinte: lestat : lestat adm cdrom floppy audio video scanner lpadmin powerdev Note que o usurio lestat participa de vrios grupos, sendo um deles o seu grupo principal, que leva o seu nome. Mas, de onde surgiram os demais? O GNU/Linux possui alguns grupos considerados "padro", isto , grupos que servem para permitir que o usurio execute determinadas tarefas. A quantidade e as finalidades dos grupos podem variar de acordo com a distribuio GNU/Linux utilizada e a sua configurao. Eis alguns grupos bastante comuns:
cdrom: grupo para utilizao de unidades de CD/DVD; audio: grupo para acesso aos recursos de udio do computador; video: grupo para acesso aos recursos de vdeo do computador; floppy: grupo para utilizao da unidade de disquete; adm: grupo para acesso de recursos administrativos.
usermod -s shell usurio: altera o shell do usurio; usermod -u nmero usurio: altera o UID da conta do usurio.
Comandos adicionais
O GNU/Linux ainda conta com vrios outros comandos que lhe ajudam a gerenciar e obter informaes de usurios e grupos. Veja alguns: logname: mostra o nome do seu usurio; users: mostra os usurios que esto conectados ao sistema no momento; id: mostra dados da identificao do usurio. Eis algumas opes: id usurio: exibe os grupos (e seus respectivos GIDs) dos quais o usurio faz parte; id -g usurio: mostra o GID do grupo do usurio; id -G usurio: exibe o GID de todos os grupos do usurio (nome que a letra G fica em caixa alta); id -u usurio: indica o UID do usurio. finger usurio: mostra informaes detalhadas do usurio. Se o comando for digitado isoladamente (ou seja, somente finger), o sistema exibe todos os usurios que esto conectados no sistema operacional no momento;
chfn usurio: comando para mudar as informaes adicionais do usurio (nome completo, telefone, etc). last: o comando last bastante interessante e til, pois mostra os ltimos usurios que estiveram logados no sistema, os terminais usados por eles para se conectar, o hostname (quando a conexo feita remotamente), as datas e os horrios de utilizao do computador, assim como o tempo de permanncia no sistema. Esses dados geralmente so obtidos do arquivo de logs /var/log/wtmp. O last tambm possui opes. Veja algumas: last -n nmero: mostra apenas as ltimas linhas do log. Para definir a quantidade de linhas, substitua nmero pelo valor desejado. Por exemplo: last -n 10 last -x: mostra os dados de desligamento do sistema, assim como informaes do nvel de execuo; last -R: faz com que o comando no exiba os hostnames (note que a letra R fica em caixa alta); last -a: faz com que os hostnames sejam exibidos apenas na ltima coluna.
Finalizando
Hoje em dia, possvel criar e administrar usurios no GNU/Linux atravs de interfaces grficas, tal como mostra a imagem abaixo, uma janela de administrao de usurios da distribuio Ubuntu, exibida atravs do ambiente grfico Gnome. No entanto, importante saber como fazer essa tarefa por comandos para os casos onde somente o modo texto - isto , um terminal de comandos - est disponvel (situao que ocorre principalmente em servidores). Alm Via Shopping UOL disso, tal aprendizado ajuda na compreenso de como o GNU/Linux e outros sistemas baseados no Unix fazem o controle de grupos e usurios.
essencial :: Comandos do Linux - Prtico e Didtico :: Manual completo do Linux - Guia do administrador
Para que voc possa complementar tudo o que aprendeu com este tutorial, leia as seguintes matrias relacionadas: - O usurio root; - Entendendo e usando permisses no Linux. Escrito por Emerson Alecrim - Publicado em 12/12/2007 - Atualizado em 12/12/2007