Existe uma variedade de comandos diferentes disponíveis no ambiente UNIX® para manipular contas de usuários. Os comandos mais comuns estão sumariados abaixo, seguidos por exemplos mais detalhados de seu uso.
Comando | Sumário |
---|---|
adduser(8) | O comando recomendado para adicionar novos usuários. |
rmuser(8) | O comando recomendado para excluir usuários. |
chpass(1) | Uma ferramenta flexível para alterar informações de usuários. |
passwd(1) | Um simples comando para alterar a senha do usuário |
pw(8) | Uma podereosa e flexível ferramenta para alterar todos os aspectos das contas de usuários. |
adduser(8) é um programa simples para adicionar novos usuários. Cria entradas nos arquivos passwd e group. Criará também um diretório home para o usuário novo, copia os arquivos de configuração padrão (``dotfiles'') de /usr/share/skel, e pode opcionalmente enviar ao usuário novo uma mensagem de boas vindas.
No FreeBSD 5.0, o adduser(8) foi rescrito de rotinas em linguagem Perl para um ``shell script'' que trabalha em conjunto com o pw(8), assim seu uso é ligeiramente diferente no FreeBSD 4.X e no FreeBSD 5.X.
Para criar a configuração inicial, use adduser -s -config_create. [1] Em seguida, configuramos os padrões do adduser(8), e criamos a nossa primeira conta de usuário, uma vez que utilizar a conta root para uso normal é um péssimo hábito.
Exemplo 8-1. Configurando adduser e adicionando um usuário no FreeBSD 4.X
# adduser -v Use option ``-silent'' if you don't want to see all warnings and questions. Check /etc/shells Check /etc/master.passwd Check /etc/group Enter your default shell: csh date no sh tcsh zsh [sh]: zsh Your default shell is: zsh -> /usr/local/bin/zsh Enter your default HOME partition: [/home]: Copy dotfiles from: /usr/share/skel no [/usr/share/skel]: Send message from file: /etc/adduser.message no [/etc/adduser.message]: no Do not send message Use passwords (y/n) [y]: y Write your changes to /etc/adduser.conf? (y/n) [n]: y Ok, let's go. Don't worry about mistakes. I will give you the chance later to correct any input. Enter username [a-z0-9_-]: jua Enter full name []: J. Usuario Aleatorio Enter shell csh date no sh tcsh zsh [zsh]: Enter home directory (full path) [/home/jua]: Uid [1001]: Enter login class: default []: Login group jua [jua]: Login group is ``jua''. Invite jua into other groups: guest no [no]: wheel Enter password []: Enter password again []: Name: jua Password: **** Fullname: J. Usuario Aleatorio Uid: 1001 Gid: 1001 (jua) Class: Groups: jua wheel HOME: /home/jua Shell: /usr/local/bin/zsh OK? (y/n) [y]: y Added user ``jua'' Copy files from /usr/share/skel to /home/ua Add another user? (y/n) [y]: n Goodbye! #
Em resumo, nós mudamos a shell padrão para zsh (uma shell adicional encontrada na coleção de ports), e desligamos o envio de um e-mail de boas vindas para o usuário adicionado. Nós salvamos as configurações, criamos uma conta com o nome de jua, e certificamos que jua faz parte do grupo wheel (de modo que possa assumir os privilégios do usuário root com o comando su(1).)
Nota: A senha que você digita não aparece, nem são mostrados asteriscos. Certifique-se que você não digitou dias vezes a senha errôneamente.
Nota: Use o adduser(8) sem argumentos de agora em diante, e você não terá que redefinir as opções padrão. Se o programa solicitar que os padrões sejam modificados, saia dele, e tente a opção -s.
Exemplo 8-2. Adicionando um usuário em FreeBSD 5.X
# adduser Username: jua Full name: J. Usuario Aleatorio Uid (Leave empty for default): Login group [jua]: Login group is jua. Invite jua into other groups? []: wheel Login class [default]: Shell (sh csh tcsh zsh nologin) [sh]: zsh Home directory [/home/jua]: Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : jua Password : **** Full Name : J. Usuario Aleatorio Uid : 1001 Class : Groups : jia wheel Home : /home/jua Shell : /usr/local/bin/zsh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (jua) to the user database. Add another user? (yes/no): no Goodbye! #
Você pode utilizar o rmuser(8) para remover completamente um usuário do sistema. rmuser(8) executa as seguintes etapas:
Remove as entradas crontab(1) do usuário (se houver alguma).
Remove todos os trabalhos pendentes no at(1), que pertencem ao usuário.
Mata todos os processos controlados pelo usuário.
Remove o usuário do arquivo de senha local do sistema
Remove o diretório home do usuário (se este for de autoridade do usuário)
Remove o arquivo de armazenamento de mensagens de correio eletrônico que pertence ao usuário, em /var/mail.
Remove todos os arquivos de posse do usuário nas áreas temporárias de gravação de arquivos, como /tmp.
Finalmente, remove o nome do usuário de todos os grupos que ele pertence, em /etc/group.
Nota: Se um grupo se tornar vazio e o nome do grupo for o mesmo que o nome do usuário, o grupo será removido; isto inclui os grupos originais que é opcionalmente criado para cada usuário pelo adduser(8).
rmuser(8) não pode ser usado para remover contas de super usuários, pois isso aponta indícios de modificações prejudiciais no sistema.
Por padrão, a aplicação funciona em modo interativo, e tenta confirmar que você está certo do que está fazendo.
Exemplo 8-3. rmuser Remoção interativa de contas
# rmuser jua Matching password entry: jua:*:1001:1001::0:0:J. Usuario Aleatorio:/home/jru:/usr/local/bin/zsh Is this the entry you wish to remove? y Remove user's home directory (/home/jua)? y Updating password file, updating databases, done. Updating group file: trusted (removing group jua -- personal group is empty) done. Removing user's incoming mail file /var/mail/jua: done. Removing files belonging to jua from /tmp: done. Removing files belonging to jua from /var/tmp: done. Removing files belonging to jua from /var/tmp/vi.recover: done. #
O chpass(1) modifica informações da base de dados do usuário tais como senhas, interpretadores de comandos e informações pessoais.
Apenas administradores do sistema, como o super usuário, podem alterar informações e senhas de outros usuários com chpass(1).
Quando passado sem opções, com exceção de um usuário opcional, chpass(1) abrirá um editor contendo as informações do usuário. Quando o usuário sair do editor, a base de dados do usuário será atualizada com as novas informações.
Nota: No FreeBSD 5.X, você será questionado sobre a senha senha depois que sair do editor, caso você não seja um super usuário.
Exemplo 8-4. Usando o chpass de forma interativa pelo super usuário
#Changing user database information for jua. Login: jua Password: * Uid [#]: 1001 Gid [# or name]: 1001 Change [month day year]: Expire [month day year]: Class: Home directory: /home/jua Shell: /usr/local/bin/zsh Full Name: J. Usuario Aleatorio Office Location: Office Phone: Home Phone: Other information:
O usuário normal pode alterar somente um subconjunto pequeno destas informações, e somente para ele mesmo.
Exemplo 8-5. Usando o chpass de forma interativa por um usuário normal
#Changing user database information for jua. Shell: /usr/local/bin/zsh Full Name: J. Usuario Aleatorio Office Location: Office Phone: Home Phone: Other information:
Nota: chfn(1) e chsh(1) são sinônimos de chpass(1). São links simbólicos para esta aplicação. Da mesma forma, ypchpass(1), ypchfn(1), e ypchsh(1) também o são. O suporte à NIS é automático, de forma que especificar yp antes do comando torna-se dispensável. Se isso parece confuso para você, não se preocupe pois o assunto NIS será abordado em Capítulo 19.
O comando passwd(1) é a maneira usual de modificar sua própria senha, ou a senha de um outro usuário, caso você tenha privilégios de administrador.
Nota: Os usuários comuns devem digitar sua senha original, antes de definir a nova senha, para impedir que uma pessoa desautorizada modifique-a, quando o verdadeiro dono estiver ausente mas manteve o console aberto.
Exemplo 8-6. Alterando sua senha
% passwd Changing local password for jua. Old password: New password: Retype new password: passwd: updating the database... passwd: done
Exemplo 8-7. Alterando a senha de outro usuário, tendo os privilégios do super usuário
# passwd jua Changing local password for jua. New password: Retype new password: passwd: updating the database... passwd: done
Nota: O chpass(1), bem como yppasswd(1), também é um link simbólico para passwd(1), de forma que o NIS possa trabalhar com um ou outro comando.
pw(8) é um comando utilitário cuja função é criar, remover, alterar e apresentar usuários e grupos. Ele funciona como um front end para os arquivos de usuários e grupos do sistema. O pw(8) tem um conjunto muito completo de opções e comandos que o torna apropriado para o uso em scripts shell, mas os usuários novos podem acha-lo mais complexo do que os outros comandos apresentados aqui.
[1] |
A opção -s faz o adduser(8) por padrão ficar em modo silencioso. Usaremos -v mais tarde quando quizermos modificar estes padrões. |
Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.