De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Adicionando e removendo usuários no OpenBSD

Colaboração: André Luiz Facina

Data de Publicação: 16 de Julho de 2008

O OpenBSD fornece dois comandos para facilmente adicionar usuários no sistema. Os comandos são:

  • adduser
  • user

Além disso, você pode adicionar usuários manualmente com o comando vipw, mas isso é mais difícil para a maioria das operações.

A maneira fácil de adicionar usuários no OpenBSD é usando o script adduser. Você pode configurar o adduser editando o arquivo /etc/adduser.conf. O comando adduser permite verificar a consistência dos arquivos /etc/passwd e /etc/group. Aqui no exemplo, o usuário testuser será adicionado no sistema. Para o usuário testuser será dado o diretório $HOME (/home/testuser), fará parte do grupo guest e vai ter o Korn Shell como shell padrão (/bin/ksh).

  # adduser
  Use option "-silent" if you don't want to see all warnings and questions.Reading /etc/shells
  Reading /etc/login.conf
  Check /etc/master.passwd
  Check /etc/group
  
  Ok, let's go.
  Don't worry about mistakes. I will give you the chance later to correct any input.
  Enter username []: testuser
  Enter full name []: Test User
  Enter shell csh ksh nologin sh [sh]: ksh
  Uid [1002]: Enter
  Login group testuser [testuser]: guest
  Login group is "guest". Invite testuser into other groups: guest no
  [no]: no
  Login class auth-defaults auth-ftp-defaults daemon default staff
  [default]: Enter
  Enter password []: Type password, then Enter
  Enter password again []: Type password, then Enter
  
  Name: testuser
  Password: ****
  Fullname: Test FAQ User
  Uid: 1002
  Gid: 31 (guest)
  Groups: guest
  Login Class: default
  HOME: /home/testuser
  Shell: /bin/ksh
  OK? (y/n) [y]: y
  Added user "testuser"
  Copy files from /etc/skel to /home/testuser
  Add another user? (y/n) [y]: n
  Goodbye!

Para deletar usuários do sistema, você deve usar o utilitário ``` rmuser. Ele removerá tudo do usuário. Ele removerá qualquer entrada no crontab, o diretório $HOME ( se o $HOME for de propriedade do usuário ) e os seus e-mails. Claro, além disso ele removerá as suas entradas em /etc/passwd e /etc/group. A seguir, vamos remover o usuário que foi adicionado no exemplo acima. Você será questionado sobre o nome do usuário e se é para remover o diretório HOME do mesmo.

  # rmuser
  Enter login name for user to remove: testuser
  Matching password entry:testuser:$2a$07$ZWnBOsbqMJ.ducQBfsTKUe3PL97Ve1AHWJ0A4uLamniLNXLeYrEie:1002
  :31::0:0:Test FAQ User:/home/testuser:/bin/ksh
  
  Is this the entry you wish to remove? y
  Remove user's home directory (/home/testuser)? y
  Updating password file, updating databases, done.
  Updating group file: done.
  Removing user's home directory (/home/testuser): done.

Adicionando usuários com o comando user

Essas ferramentas são menos interativas do que o comando adduser, tornado-as mais fácil de se usar em shell scripts.

O conjunto completo das ferramentas é:

  • group
  • groupadd
  • groupdel
  • groupinfo
  • groupmod
  • user
  • useradd
  • userdel
  • userinfo
  • usermod

Adicionando usuários

Essencialmente o comando user não é interativo, a maneira mais fácil e eficiente de adicionar usuários é usar o comando adduser. O atual comando /usr/sbin/user é apenas um frontend para o resto dos comandos /usr/sbin/user*. Portando, os seguintes comandos, user add ou useradd, podem ser usados para adicionar usuários, a escolha é sua, e o uso dos comandos será o mesmo.

Nesse exemplo nós adicionamos o mesmo usuário que especificamos no exemplo acima (adduser), é muito mais fácil de adicionar um usuário, se você conhecer as configurações padrões. Estas configurações estão localizadas em /etc/usermgmt.conf e podem ser vistas com o comando:

  $ user add -D
  group users
  base_dir /home
  skel_dir /etc/skel
  shell /bin/csh
  inactive 0
  expire Null (unset)
  range 1000..60000

As configurações acimas serão aplicadas por padrão, a menos que você especifique as opções na linha de comando. Por exemplo, em nosso caso, queremos que o usuário comece no grupo guest, e não no grupo user. Complicando um pouco mais, quando adicionarmos o usuário, queremos que a senha seja especificada na linha de comando. Isto é, a senha deve ser criptografada, para isso você deve primeiro usar o utilitário encrypt para criar a senha. Por exemplo: As senhas do OpenBSD por padrão utilizam o Blowfish, um algorítimo com 6 saltos. Aqui é um exemplo para criar uma senha criptografada para ser especificada no useradd.

  $ encrypt -p -b 6
  Enter string:
  $2a$06$YOdOZM3.4m6MObBXjeZtBOWArqC2.uRJZXUkOghbieIvSWXVJRzlq

Agora que temos a senha criptografada, estamos prontos para adicionar o usuário.

  # user add -p '$2a$06$YOdOZM3.4m6MObBXjeZtBOWArqC2.uRJZXUkOghbieIvSWXVJRzlq' -u 1002 \
  -s /bin/ksh -c "Test FAQ User" -m -g guest testuser

Nota: Certifique-se de utilizar aspas simples (' ') na senha criptografada. Além do que, certifique-se também de especificar a opção -m, se quiser que seja criado o diretório HOME a partir da cópia do diretório /etc/skel.

Para ver se o usuário foi criado corretamente, podemos usar vários utilitários diferentes. Abaixo são alguns comando que podem ser usados para checar rapidamente se tudo foi criado corretamente.

  $ ls -la /home
  total 14
  drwxr-xr-x 5 root wheel 512 May 12 14:29 .
  drwxr-xr-x 15 root wheel 512 Apr 25 20:52 ..
  drwxr-xr-x 24 ericj wheel 2560 May 12 13:38 ericj
  drwxr-xr-x 2 testuser guest 512 May 12 14:28 testuser
  $ id testuser
  uid=1002(testuser) gid=31(guest) groups=31(guest)
  $ finger testuser
  Login: testuser Name: Test FAQ User
  Directory: /home/testuser Shell: /bin/ksh
  Last login Sat Apr 22 16:05 (EDT) on ttyC2
  No Mail.
  No Plan.

Além desses comandos, user fornece seu próprio utilitário para mostrar as características dos usuários, esse comando é o userinfo.

  $ userinfo testuser
  login testuser
  passwd *
  uid 1002
  groups guest
  change Wed Dec 31 19:00:00 1969
  class
  gecos Test FAQ User
  dir /home/testuser
  shell /bin/ksh
  expire Wed Dec 31 19:00:00 1969

Removendo usuários

Para remover usuários com o comando user*, você usará o userdel. Ele é muito simples. Para remover um usuário criado no último exemplo, simplesmente utilize:

  # userdel -r testuser

Aviso: Com a opção -r, você escolhe se deseja remover o diretório HOME do usuário. Alternativamente, você pode especificar -p e não -r, isso bloqueará a conta do usuário, mas não removerá qualquer informação.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de André Luiz Facina