O que compõem um usuário # /etc/passwd
Transcrição
O que compõem um usuário # /etc/passwd
Gerenciamento de grupos e usuários Todo sistema de gerência de usuário possui um id registrado no sistema. Com as informações de registro o Linux pode gerenciar o acesso aos usuários e as suas permissões de acesso. Os administradores de sistema podem gerenciar e controlar todo o acesso a grupos e usuários. Um grupo é conjunto de usuários do sistema. Cada grupo também possui informações que identificam o usuário no sistema, contendo um nome e um número. O que compõem um usuário Item Descrição Redução de User IDentification. Ele identifica o usuário no sistema UID junto com o login para permitir-lhe o seu acesso. Redução de Group IDentification. É o Número que identifica o grupo do GID usuário ao qual ele esta inserido. Comment Descreve as características do usuário, geralmente o nome completo Home Corresponde o diretório do usuário quando ele acessa o sistema, onde Directory Path seus arquivos são armazenados Corresponde ao shell padrão do usuário quando acessa o sistema. Shell Geralmente o Bash. As informações do usuário e senhas são armazenados nos arquivos /etc/passwd e /etc/shadow, e as informações sobre os grupos em /etc/group e /etc/gshadow. nesse arquivo é armazenado as informações separadas por ( : ) da seguinte forma: nome usuário:senha:id usuário:id grupo:descrição:diretório:shell Por exemplo: x:1000:1000:Descrição do aluno1,,,:/home/aluno1:/bin/bash # /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh 1 mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh Debian-exim:x:100:102::/var/spool/exim4:/bin/false statd:x:101:65534::/var/lib/nfs:/bin/false identd:x:102:65534::/var/run/identd:/bin/false messagebus:x:103:104::/var/run/dbus:/bin/false haldaemon:x:104:106:Hardware abstraction layer,,,:/home/haldaemon:/bin/false gdm:x:105:109:Gnome Display Manager:/var/lib/gdm:/bin/false aluno1:x:1000:1000:aluno1,,,:/home/aluno1:/bin/bash mysql:x:106:110:MySQL Server,,,:/var/lib/mysql:/bin/false cupsys:x:107:105::/home/cupsys:/bin/false O que compõem um grupo Item Name Descrição Nome do grupo Constitui a senha de gerenciamento do grupo, não havendo necessidade de Password preocupar com ela GID Número de identificação do grupo de usuário User list Corresponde a lista de usuários do grupo GID As informações dos grupos são armazenados no arquivo /etc/group. nesse arquivo é armazenado as informações separadas por ( : ) da seguinte forma: grupo:senha:id grupo:descrição:lista de usuários Por exemplo: grupo:x:1000:usuário1, usuário2 # /etc/group 2 root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20:aluno1 fax:x:21: voice:x:22: cdrom:x:24:aluno1 floppy:x:25:aluno1 tape:x:26: sudo:x:27: audio:x:29:aluno1 dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:aluno1 sasl:x:45: plugdev:x:46:aluno1 staff:x:50: games:x:60: users:x:100: nogroup:x:65534: crontab:x:101: Debian-exim:x:102: ssh:x:103: messagebus:x:104: avahi:x:105: netdev:x:106:aluno1 lpadmin:x:107: 3 haldaemon:x:108: powerdev:x:109:aluno1 scanner:x:110: ssl-cert:x:111:postgres postgres:x:112: gdm:x:113: aluno1:x:1000: dirmngr:x:114: mysql:x:115: dba:x:1003: # /etc/default/useradd Este arquivo define os valores padrões ao criar usuários com o comando useradd, onde pode ser editado retirando o comentário " # " das linhas abaixo: # /etc/default/useradd SHELL=/bin/sh # especifica o shell do usuário # GROUP=100 # especifica o GID do grupo do usuário recém criado # HOME=/home # especifica o diretório home do usuário # INACTIVE=-1 # especifica a quantidade de dias após a experição da senha a conta será desativada # EXPIRE= # especifica a data que será desativada a conta # SKEL=/etc/skel # SKEL especifica o diretório que contém os arquivos "esqueleto" do usuário, em outras palavras, arquivos assim como o .profile que será copiado para o diretório home criado para novos usuários. # CREATE_MAIL_SPOOL=yes # Especifica o diretório de email enquanto a conta é criada. # /etc/login.defs Este arquivo configura o controle de definições de login dos usuários # /etc/login.defs MAIL_DIR /var/mail # especifica o diretório de mensagens de email local DEFAULT_HOME yes # especifica que o diretório home do usuário deve ser criado USERGROUPS_ENAB yes # esta opção habilita o comando userdel remover usuários e seus grupos existentes LOGIN_RETRIES 5 # especifica o número máximo de tentativas de login se a senha estiver errada # especifica o valor mínimo e máximo do UID selecionado para criação novos usuários com useradd e adduser UID_MIN 1000 UID_MAX 60000 4 # especifica o valor mínimo e máximo do GID selecionado para criação novos grupos com groupadd GID_MIN 100 GID_MAX 60000 PASS_MAX_DAYS 99999 # número máximo de dias que uma senha pode ser usada PASS_MIN_DAYS 0 # número mínimo de dias permitido entre duas mudanças de senha PASS_WARN_AGE 7 # número de dias anteriores a expiração da senha #UMASK 022 # Define a máscara padrão, caso seja usada # especifica os últimos logins e usuários ainda logados no sistema que são armazenados no arquivo /var/log/wtmp que pode ser lido pelo comando last, e do arquivo /var/log/btmp lido pelo comando lastb FTMP_FILE /var/log/btmp Gerenciando usuários e grupos adduser ou useradd - Adiciona um grupo ou usuário no sistema adduser (opções) Opção -d (home) -u (Número) -g (grupo) -s (shell) (usuário) Descrição específica o diretório home do usuário. específica o UID do usuário. Informa o GID do grupo do usuário Informa o shell em /etc/shells do usuário. -e data de exclusão da conta do usuário (mm/dd/yy) Exemplo: # adduser aluno1 ou # useradd aluno1 -d # passwd aluno1 # mkdir /home/aluno1 /home/aluno1 -g grupo -s /bin/bash 5 # chown -R aluno1 /home/aluno1 No Debian você precisará apenas especificar uma senha e o nome de usuário e confirmar no final escollhendo S(sim). # adduser aluno Adding user `aluno' ... Adding new group `aluno' (1004) ... Adding new user `aluno' (1004) with group `aluno' ... Creating home directory `/home/aluno' ... Copying files from `/etc/skel' ... Enter new UNIX password:******* Retype new UNIX password:******* passwd: senha atualizada com sucesso Modificando as informações de usuário para aluno Informe o novo valor ou pressione ENTER para aceitar o padrão Nome Completo []: aluno Número da Sala []: Fone de Trabalho []: Fone Doméstico []: Outro []: A informação está correta? [s/N] s passwd - Muda a senha de um usuário passwd -x (dias) -w -e Exemplo: (usuário) específica o número de dias que a senha poderá ser utilizada O usuário receberá um alerta para mudar a senha antes de n dias específica a data na qual a conta será desabilitada # passwd aluno1 # passwd (muda senha de root) usermod - modifica as caracteristicas de um usuário usermod (opções) Opção -c (comentário) (usuário) Descrição comentário 6 -d (dir_home) -s (programa) -l (novo_login) -e (mm/dd/AA) -G (novos_grupos) -g (novo_grupo) -f (n dias) -u (Novo UID) -L -U modificando o diretório home Programa que será iniciado quando o usuário logar no sistema Novo login do usuário Especifica a data de cancelamento da conta de usuário Grupos extras dos quais o usuário será membro Novo grupo desabilita a conta so usuario em N dias após a expiração da senha Novo UID (Insere um caractere "!" na frente da senha criptografada, desabilitando a senha do usuário) (Remove o caractere "!" da senha criptografada, habilitando a senha do usuário Exemplo: # usermod -G grupo usuário $ groups aluno1 (visualiza grupos do usuário) ou $ cat /etc/group chage - Muda informações de expiração de senha de usuário chage (usuário) Opção -l M (num/dias) -d (mm/dd/aa) -m (num/dias) (opções) Descrição Exibe informações da expiração da senha de usuário Numero maximo de dias até que a senha expire Data da ultima alteraçãoda senha Número mínimo de dias entre alterações de senha. O valor zero indica que o usuário pode alterar a sua senha a qualquer momento Numero de dias entre a expiração de senha e o bloqueio da conta do l (num/dias) usuário E Data da expiração da conta do usuário (mm/dd/aa) Indica o numero de dias anteriores á expiração da senha que o usuário W (num/dias) deve ser notificado Exemplo: # chage -l usuário 7 finger - Exibe informações sobre usuários locais ou remotos finger (opções) (usuário) Opção Descrição -l Saída em formato detalhado -s Saída em formato simples Exemplo: $ finger usuário userdel - Deleta um usuário do sistema Exemplo: # userdel -r usuário groupadd - Adiciona grupos ao sistema groupadd (grupo) (opções) opçãodescrição Adiciona uma conta no -f sistema -g novo_GID Exemplo: # groupadd # groupadd grupo1 grupo2 -g 1001 gpasswd - Define senha para um grupo e realiza varias funções de administração de usuário e grupos groupadd (opções) (usuário) (grupo) 8 opçãodescrição -a Adiciona usuário ao grupo -d Exclui usuário do sistema -r Remove senha do grupo -A Define o administrador do grupo -M Define membros do grupo Desabilita o acesso ao grupo pelo comando -R newgrp Exemplo: # useradd aluno1 # passwd aluno1 # gpasswd grupo_1 (define a senha do grupo grupo_1) # gpasswd -a aluno1 grupo_1 (Adiciona o usuário aluno1 ao grupo "grupo_1") # gpasswd -d aluno1 grupo_1 (Exclui o usuário aluno1 do grupo "grupo_1") # gpasswd -r grupo_1 (Remove a senha do grupo "grupo_1") groupmod - Muda as características de um grupo groupmod (opções) (grupo) opção descrição -n (novo novo_grupo grupo) -g (novo GID) novo_GID Exemplo: # # # # groupadd -g 999 grupo groupmod -g 1000 grupo cat /etc/group | grep "grupo" groupmod -n novo-grupo grupo groupdel - Remove um grupo do sistema groupdel (grupo) 9 Exemplo: # groupdel grupo groups - Exibe os grupos de um usuário groups (usuário) Exemplo: $ groups # groups aluno1 su - Troca o id de um usuário para superusuário(root) ou para outro usuário su (opções) (login) Exemplo: $ su -h (para opções) aluno1@máquina:~$ su aluno2 (muda o id do aluno1 para aluno2) Password:********* aluno2@máquina:~$ aluno1@máquina:~$ su (muda o id de usuário para root) Password: ************** aluno1@máquina:~# (repare que foi trocado o $ por #) chfn - Muda as informações de um usuário (opções) (usuário) -f [nome] Especifica o nome completo do usuário -r [sala] Especifica a localização do usuário gerenciamento_usuarios_grupos -w [telefone] Especifica o telefone do trabalho do usuário Especifica o telefone da casa do usuário 10 -h [telefone] Exemplo: # chfn -f "Aluno1 da silva" aluno1 # cat /etc/passwd | grep "aluno1" newgrp - Troca de grupo Exemplo: $ newgrp grupo1 (O usuário atual muda para o grupo grupo1) $ exit (O usuário atual voltar para seu grupo anterior) users - Exibe os nomes de usuários correntemente conectados no computador Exemplo: $ users # users who - Mostra quem está logado no sistema Saia do ambiente gráfico apertando CTRL+ALT+F1 e logue em um terminal com um usuário. Logue em outro terminal tty1 tty2 CTRL+ALT+F2 com outro usuário e execute o comando who. Exemplo: usuario@maquina:~$ who aluno1 tty1 2007-09-02 19:45 aluno2 tty2 2007-09-02 19:45 11 whoami - Exibe o ID(nome) do usuário Exemplo: $ whoami w - Exibe os usuários logados e o que estão fazendo Exemplo: usuario@maquina:~$ w 23:28:32 up 1:26, 5 users, load average: 0,16, 0,25, 0,22 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT aluno1 tty1 23:28 29.00s 0.17s 0.16s -bash aluno2 tty2 23:28 9.00s 0.18s 0.17s -bash last - Mostra uma listagem dos últimos logins dos usuários e que ainda estão logados no sistema last (opções) -n (número) -R -a -x Exibe o número linhas. Caso não for usada, as linhas serão exibidas. Não informa o nome do computador Informa o nome do computador da última coluna Informa mudanças de nível de execução e shutdown Exemplo: $ last $ last $ last | | | less grep "aluno1" (Exibe informações do usuário aluno1) tac (Inverte a exibição da listagem dos usuários) lastlog - Exibe relatórios dos últimos logins de todos os usuários ou de um determinado usuário lastlog -u (opções) USUÁRIO 12 Exibe registro lastlog para usuário com LOGIN especificado -b NUM / DIAS -t NUM / DIAS Exibe somente registros lastlog mais antigos que DIAS Exibe somente registros lastlog mais recentes que DIAS Exemplo: $ lastlog | less $ last -u aluno1 (Exibe informações do usuário aluno1) $ last -b 1 (Exibe informações de 1 dia atrás) id - Identificação do usuário, grupo e outros grupos id (opções) (usuário) opções Descrição -g, --groupinforma identificação do primeiro grupo. -G--groupsinforma o id de outros grupos -n, --name Informa o nome e grupo do usuário sem o id -u, --user Informa o id do usuário (user ID). Informa o id real do usuário e grupo, complementando com as opções -u, -r, --real -g, ou -G. Exemplo: $ id (exibe UID, GID e grupos) $ id -u aluno1 (exibe apenas o UID do usuário) $ id -g aluno1 (exibe apenas o GID do grupo) sudo - Executa comandos como superusuário Para permitir um usuário usar o comando sudo é necessário configurar o sudo através do arquivo de configuração /etc/sudoers. Neste arquivo são especificados os comandos que um usuário poderá executar como root, para configurar o sudo digite o comando visudo como root e defina os comandos que um 13 usuário pode executar. Abaixo segue um exemplo de configuração, onde é permitido o usuário aluno1, aluno2 executarem os comandos fdisk, mount como root # visudo # User alias specification (Especifica os usuários) User_Alias USUARIOS = aluno1, cobaia # Cmnd alias specification (Especifica os comandos) Cmnd_Alias COMANDOS = /bin/mount, /sbin/fdisk # User privilege specification (Especifica os privilégios) root ALL=(ALL) ALL USUARIOS ALL = NOPASSWD:COMANDOS $ sudo -l $ sudo fdisk /dev/hda sudo (opções) (comando) Opção Descrição -h Exibe mensagem de ajuda Exibe os comandos permitidos e proibidos pelo usuário Exemplo: -l $ sudo -l $ sudo mount /dev/hda /mnt Comandos de gerênciamento de senhas sombra pwdconv - Cria o arquivo /etc/shadow apartir do arquivo /etc/passwd e alternativamente através de /etc/shadow existente Exemplo: 14 (antes faça uma copia de segurança dos arquivos na pasta root) # cp /etc/passwd /root/backup # cp /etc/shadow /root/backup # cp /etc/group /root/backup # # # # mv shadow /root/ (mova para a pasta root) ls /etc/shadow* (repare que o arquivo foi movido) pwconv (cria um novo arquivo /etc/shadow) ls /etc/shadow* (repare que o arquivo foi criado) pwdunconv - Cria o arquivo /etc/passwd apartir do arquivo /etc/passwd e /etc/shadow existentes e remove o arquivo /etc/shadow. Exemplo: # # # # # stat /etc/passwd (repare a data de acesso e modificação) stat /etc/shadow (repare a data de acesso e modificação) pwunconv ls /etc/shadow* (repare que o arquivo foi apagado) pwconv (cria novamente o arquivo /etc/shadow) grpconv - Cria o arquivo /etc/gshadow apartir do arquivo /etc/group e alternativamente através de /etc/gshadow existente Exemplo: (antes faça uma copia de segurança dos arquivos na pasta root) # cp /etc/group /root/backup # cp /etc/gshadow /root/backup # # # # mv gshadow /root/ (mova para a pasta root) ls /etc/gshadow* (repare que o arquivo foi movido) grpconv (cria um novo arquivo /etc/gshadow) ls /etc/gshadow* (repare que o arquivo foi criado) grpunconv - Cria o arquivo /etc/group apartir do arquivo /etc/group e /etc/gshadow existentes e remove o arquivo /etc/gshadow 15 Exemplo: # # # # # stat /etc/group (repare a data de acesso e modificação) stat /etc/gshadow (repare a data de acesso e modificação) grpunconv ls /etc/gshadow* (repare que o arquivo foi apagado) grpconv (cria novamente o arquivo /etc/gshadow) * Atenção ! Após executar os comandos pwunconv e grpunconv serão apagados os arquivos /etc/shadow e /etc/gshadow, sendo necessário restaurar os arquivos com as senhas criptografadas novamente para isso execute os comandos pwconv e grpconv novamente. # pwconv (restaura o arquivo /etc/shadow) # grpconv (restaura o arquivo /etc/gshadow) pwck - Analiza os arquivos /etc/passwd e /etc/shadow. Exemplo: # pwck grpck - Analiza os arquivos /etc/group e /etc/gshadow. Exemplo: # grpck Tornando um usuário com permissões de superusuário root 16 Para dar permissões de root a um usuário edite o arquivo /etc/passwd e altere seu UID e o GID colocando o valor 0 Abaixo segue um exemplo onde o UID e o GID do usuário aluno1 foi alterado de 1001 para 0. Antes aluno1:x:1001:1001:aluno1,,,:/home/aluno1:/bin/bash Depois aluno1:x:0:0:aluno1,,,:/home/aluno1:/bin/bash Bloqueando um usuário Para bloquear um usuário de fazer login, basta colocar como comentário com um # na linha referente a esse usuário no arquivo /etc/passwd. Antes aluno1:x:1001:1001:aluno1,,,:/home/aluno1:/bin/bash Depois # aluno1:x:1001:1001:aluno1,,,:/home/aluno1:/bin/bash Excluindo um usuário manualmente Para excluir um usuário manualmente, basta remover a linha referente a esse usuário nos arquivos /etc/passwd, /etc/group e /etc/shadow. Remova o diretório do usuário em /home e o arquivo referente ao usuário em /var/spool/mail. /etc/passwd aluno1:x:1001:1001:aluno1,,,:/home/aluno1:/bin/bash /etc/group aluno1:x:1000: 17 /etc/shadow aluno1:$1$3IJAsyNt$8Fl.ITawhIdTUGedVsdzP0:13820:0:99999:7::: /home # rm -rf /home/aluno1 /var/spool/mail # rm -f /var/spool/mail/aluno1 18
Documentos relacionados
Expressões regulares Expressão regular é um
backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats...
Leia maisCGPE/SE-MC - dgo..:::cefet-mg
é aquele que tem acesso limitado somente a seus dados e arquivos. Se tentar acessar dados de outro usuário, o sistema, dependendo das permissões configuradas, não deixará, emitindo uma mensage...
Leia mais