Prof. Sandro Wambier
Transcrição
Prof. Sandro Wambier
Prof. Sandro Wambier Sistemas Linux. Cada usuário do sistema possui sua “conta”. O usuário possui uma senha de acesso ao sistema que poderá ou não expirar. Cada usuário pertence a um ou mais “grupos”. Cada usuário poderá possuir um diretório particular. Os arquivos de cada usuário possuem “permissões” distintas para leitura, gravação e execução. Os arquivos de cada usuário podem ser disponíveis para seu grupo com permissões diferenciadas. Para criar, gerenciar ou eliminar contas de usuários no GNU/Linux, é necessário estar "logado" no sistema operacional com o usuário root. Se não fosse assim, a segurança do sistema seria seriamente comprometida, pois qualquer usuário poderia criar, alterar ou apagar contas. Nos sistemas GNU/Linux, as informações sobre usuários e grupos podem ser armazenadas de diversas formas, dependendo da necessidade e complexidade do sistema, número de usuários, etc. Entretanto, essas informações, por padrão, ficam armazenadas em arquivos de texto dentro do diretório /etc/. Os mais comuns são: /etc/passwd /etc/shadow /etc/group /etc/gshadow Nesse arquivo ficam armazenadas as informações sobre os usuários. Ele é constituído de diversas linhas, uma para cada usuário. Essas linhas contém diversos campos, a saber: Login de usuário; Password criptografado; UID: (User Identity) GID: (Group Identity) identificação do grupo padrão do usuário; Comentários; Diretório pessoal; Shell; Para entender melhor cada um destes itens, vamos analisá-los usando como base a linha abaixo extraída de um arquivo /etc/passwd, que mostra a posição que cada uma das informações do slide anterior ocupa: chuck:x:1001:500:Chuck,Norris,846:/home/chuck:/bin/bash Note que cada parâmetro do usuário é separado por : (dois pontos). chuck:x:1001:500:Chuck,Norris:/home/chuck:/bin/bash chuck > login do usuário, geralmente limitado a 32 caracteres. X > A letra x informa que a senha está armazenada e protegida dentro do arquivo /etc/shadow. Se houver um asterisco (*) no lugar, significa que a conta está desativada. 1001 > UID. Normalmente, o UID 0 é atribuído pelo próprio GNU/Linux ao usuário. Note que, em nosso exemplo, o UID do usuário é 1001. UID do root é 0 (zero) 500 > GID do usuário, o número de identificação do grupo do qual ele faz parte. Assim como no UID, geralmente o grupo 0 é indicado para o grupo do usuário root. /bin/bash > informa qual o shell de login que o usuário utilizará. O arquivo /etc/passwd contém informações sobre todos os usuários, inclusive as suas senhas criptografadas. Ele é legível por todos os usuários e, por isso, estas senhas podem ser facilmente descobertas por crackers. Para evitar isso e aumentar a segurança do sistema, adotaram o sistema de sombreamento de senhas, o shadow passwords. Quando o sistema de sombreamento de senhas está disponível, o campo password do arquivo /etc/passwd é substituído por um "x" e a senha do usuário é armazenada no arquivo /etc/shadow. Este arquivo só pode ser lido pelo usuário root, o que dificulta muito a ação de usuários maliciosos, aumentando a segurança das senhas dos usuários. O arquivo /etc/shadow é organizado da mesma forma que o /etc/passwd: uma linha para cada usuário, divididas em campos, que são: • Login de usuário; • Password criptografado; • Tempo de expiração da senha. Este arquivo armazena as informações sobre os grupos de usuários. O formato é similar ao do /etc/passwd e seus campos são: • • • • Nome do grupo; Password; GID; Usuários membros do grupo. O arquivo /etc/gshadow possui as mesmas funções do arquivo /etc/shadow. Veja um exemplo desse arquivo: adm:!:: teste:!:: tux:!:: Sistemas Linux. Formato padrão para o useradd. # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel Sistemas Linux. Formato padrão para definições de login: MAIL_DIR /var/spool/mail PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 UID_MIN 500 UID_MAX 60000 GID_MIN 500 GID_MAX 60000 CREATE_HOME yes useradd: Comando utilizado para criação de um usuário. adduser: Comando utilizado para criação de um usuário mais interativo. userdel: Comando utilizado para remoção de um usuário. usermod: Comando usado para modificar os dados de um usuário. passwd: Comando usado para definir e ou modificar a senha de um usuário. groupadd: Comando usado para criar um grupo. addgroup: Comando usado para criar um grupo mais interativo. groupdel: Comando usado para remover um grupo. groupmod: Comando usado para modificar os dados de um grupo. groups: Comando usado para mostrar os grupos dos quais um usuário faz parte. Para criar um usuário de modo simples no Linux utilizamos os seguintes comandos: [root@localhot ] adduser meu_user - cria o usuário meu_user [root@localhot ] passwd meu_user - cria a senha do usuário meu_user Para deletarmos um usuário utilizamos o seguinte comando: [root@localhot ] userdel meu_user - deleta o usuário meu_user [root@localhot ] userdel -r meu_user - deleta o usuário meu_user junto com o diretório. Para criar um grupo digite o comando: [root@localhost]# groupadd novo_grupo para alterar o nome de um grupo ja criado: [root@localhost]# groupmod novo_nome nome_antigo Por padrão, sistemas GNU/Linux possuem alguns grupos utilizados para permitir o acesso a determinados serviços e privilégios no sistema. root: Grupo do superusuário; bin e daemon: Programas executados; sys: Grupo do sistema; adm: Grupo administrativo; tty: Acesso a terminais; disk: Acesso à dispositivos de disco; lp: Grupo da impressora; mem e kmem: Acesso à memória do kernel; wheel: Usuários com privilégios próximos ao root; mail: Usado por utilitários de e-mail; news: Usado por utilitários de Usenet news; man: Usado para acesso a páginas de manual; games: Grupo para guardar recordes de jogos; dip: Grupo dial-up (PPP, SLIP); ftp: Grupo do daemon FTP; nobody: Grupo de baixa segurança; users: Grupo padrão de usuários em vários sistemas; floppy: Grupo para acesso a discos floppy. Comando useradd Sintaxe: useradd [opções] <username> Opções: -d - Caminho do diretório home do usuário. -g - Especifica o grupo do usuário. -c - Inclui um comentário referente ao usuário, tais como nome, setor, etc -s - Especifica o shell de comando que o usuário irá utilizar. -m - Cria o diretório home do usuário e copia os arquivos de /etc/skel/ para o home criado. -p - Essa opção serve para especificarmos uma senha já criptografada para o usuário. Exemplo: # useradd -g admin -s /bin/bash -d /home/sup1 -c "Usuário Administrativo de Suporte 1" -m sup1 No exemplo acima criamos o usuário sup1, que tem como grupo admin, usando o shell /bin/bash, o home criado foi o /home/sup1 e tem o comentário "Usuário Administrativo de Suporte 1". /etc/skel - Neste diretório são armazenados arquivos, por padrão ocultos (arquivos que iniciam com um "."), que são copiados para o diretório HOME do usuário no momento da criação do usuário. Se precisarmos incluir alguma configuração padrão, podemos usar esse diretório para incluir ou até mesmo editar os arquivos existentes e fazer os ajustes as suas necessidades. Comando passwd Sintaxe: passwd [opções] <username> Opções: -d - Permite o usuário acessar (logar) o sistema sem senha. -l - Bloqueia/trava a conta do usuário. O usuário não consegue logar. -u - Desbloqueia/destrava a conta do usuário (bloqueado pela opção "-l"). -S - Mostra o status da senha do usuário. Exemplo 1: # passwd sup1 Chaging password for user sup1 New password: [digitar a senha] Retype new password: [repetir a senha] Exemplo 2: Nesse exemplo iremos travar a conta do usuário sup1. # passwd -l sup1 Exemplo 3: Vamos agora destravar a conta do usuário sup1: # passwd -u sup1 Comando usermod Sintaxe: usermod [opções] <username> Opções: • -d - Modifica o caminho do diretório home do usuário. • -g - Modifica o grupo do usuário. • -c - Modifica o comentário referente ao usuário. • -s - Modifica o Shell de comando que o usuário irá utilizar. • -p - Substitui a senha já criptografada do usuário. Exemplo 1: Nesse exemplo estamos modificando o grupo e o comentário do usuário sup1 ao mesmo tempo. # usermod -g <novoGrupo> -c "<novoComentario>" sup1 logname: mostra o nome do seu usuário; users: mostra os usuários que estão conectados ao sistema no momento; id: mostra dados da identificação do usuário. Eis algumas opções: id usuário: exibe os grupos (e seus respectivos GIDs) dos quais o usuário faz parte; finger usuário: mostra informações detalhadas do usuário. Se o comando for digitado isoladamente (ou seja, somente finger), o sistema exibe todos os usuários que estão conectados no sistema operacional no momento; chfn usuário: comando para mudar as informações adicionais do usuário (nome completo, telefone, etc). last: o comando last é bastante interessante e útil, pois mostra os últimos usuários que estiveram logados no sistema, os terminais usados por eles para se conectar, o hostname (quando a conexão é feita remotamente), as datas e os horários de utilização do computador, assim como o tempo de permanência no sistema. Esses dados geralmente são obtidos do arquivo de logs /var/log/wtmp. a) Estou logado como sandro, para alterar para joao: su joao joao@mybox:~$ Para sair do joao e voltar ao sandro CTRL + D Se der CTRL + D sai do terminal. who > mostra usuários logados e qual terminal e data whoami > mostra qual usuário esta logado no momento pois nem sempre o prompt indica isso. hostname > mostra o nome do seu computador Sistemas Linux. É o recurso que permite ao administrador do sistema (root) especificar limites de utilização do espaço em disco do servidor Linux. Esses limites são especificados para usuários e grupos. Sistemas Linux. Para ativar o recurso de Quotas: 1. Editar o arquivo /etc/fstab e adicionar nas opções de montagem, usrquota (para user) e grpquota (group) conforme exemplo abaixo: LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2 2. Reinicializar o sistema 3. Rodar o comando /sbin/quotacheck -vagum (v:verbose, a:all, g:group, u:user,m:noremount). Serão criados os aquivos aquota.group e aquota.user no sistema de arquivos onde foi ativa a quota, no nosso exemplo será no /home. - Para checar quotas dos usuários: repquota -au (all filesystems) (root only) - Para checar quotas dos grupos: repquota -ag (all filesystems) (root only) - Para editar quotas de usuário: edquota -u username - Para editar quotas de grupo: edquota -g groupname - Para editar o período grace dos usuários: edquota -ut username - Para editar o período grace dos grupos: edquota -gt groupname onde: - Filesystem=FS que está com quota ativa - blocks(blocos de 1k) = Blocos utilizados / soft=limite mínimo hard=limite máximo - inodes(arquivos) = inodes utilizados / soft=limite mínimo hard=limite máximo - Grace Period = Days, hours, minutes or seconds - O limite soft pode ser extrapolado até o hard apenas durante o período grace, após o período grace, o usuário não terá mais espaço disponível. - Se valores forem 0, o limite está inativo. - O valor deve ser expresso em Kb ex.: +- 2MB para o usuário teste: Disk quotas for user teste (uid 502): Filesystem blocks soft hard inodes soft hard /dev/sda2 24 2000 2000 7 0 0 1) Crie 4 usuários no sistema: ana,pedro,joao,maria. 2) Crie 3 grupos no sistema: adm,rh,suporte. 3) Aloque os usuários ana e pedro no grupo adm; aloque os usuários joao e maria no grupo rh; aloque o usuário ana no grupo suporte. 4) Adicione no arquivo /etc/skel a criação automática da pasta “arquivos comuns” para todos os usuários que forem criados.