Controle de usuários no GNU/Linux
Para criar, gerenciar ou eliminar contas de usuários no GNU/Linux, é necessário estar" no sistema operacional com o usuário
root (ou outro usuário que tenha privilégios de administrador). Os motivos para isso são óbvios: somente usuários
autorizados é que podem manipular outras contas, do contrário, a segurança do sistema seria seriamente comprometida,
pois qualquer usuário poderia criar, alterar ou apagar contas. Note que, dependendo das configurações do seu sistema, pode
ser necessário executar cada instrução antecedida do comando 'sudo', como acontece por padrão com a distribuição
Ubuntu.
Antes de criar e controlar contas no GNU/Linux, é conveniente entender como o sistema operacional lida com isso. Em geral,
cada conta criada fica armazenada em um arquivo de nome passwd localizado dentro do diretório /etc/ (ou seja, seu
caminho completo é /etc/passwd). Esse arquivo contém várias informações sobre cada usuário:
- o seu nome de login (ou seja, o nome que é necessário digitar para entrar no sistema);
- senha (neste caso, a informação da senha pode estar criptografada ou em outro arquivo);
- UID (User IDentification), ou seja, número de identificação do usuário;
- GID (Group IDentification), isto é, número de identificação do grupo do usuário;
- informações adicionais sobre o usuário (nome completo, dados de contato, etc);
- directório "home", ou seja, o directório principal de cada usuário;
- shell do usuário, uma espécie de programa que interpretará os comandos que o usuário digitar.
Engº Adão
Garcia
Instituto de Telecomunicações
1
As restrições básicas de acesso são implementadas através de um sistema de permissões
simples, porém eficiente, que consiste num conjunto de três permissões de acesso (ler, gravar e
executar) e três grupos (dono, grupo e outros), que combinadas permitem fazer muita coisa.
Os dois comandos mais básicos são o "adduser" e o "passwd", que permitem, respectivamente
adicionar novos usuários e alterar as senhas de acesso posteriormente, como em:
# adduser joao
(cria o usuário joao, especificando uma senha inicial)
# passwd joao
Engº Adão
Garcia
Instituto de Telecomunicações
2
O próprio usuário pode alterar a senha usando o comando "passwd", desde que ele saiba a senha antiga. Se o
usuário esqueceu a senha, você pode definir uma nova executando o comando como root; nesse caso o
sistema pede a nova senha directamente, sem solicitar a senha antiga.
Os usuários são cadastrados no sistema através do arquivo "/etc/passwd". Se tiver curiosidade em olhar dentro
do arquivo você verá uma entrada para cada usuário, incluindo o directório home e o shell usado, como em:
joao:x:1001:1001:,,,:/home/joao:/bin/bash
Engº Adão
Garcia
Instituto de Telecomunicações
3
Note que cada parâmetro do usuário é separado por : (dois pontos). Vamos estudar cada um:
tintin: é neste ponto que fica localizado o nome de login do usuário, neste caso, tintin. Esse nome não pode
ser igual a outro já existente no sistema e, geralmente é limitado a 32 caracteres. Todavia, dependendo da
configuração aplicada, o nome pode ser "case sensitive", ou seja, diferencia letras maiúsculas de
minúsculas. Assim, 'wester' será diferente de 'wEster', por exemplo;
x: essa posição indica a senha do usuário. 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.
Todavia, se não houver nada, significa que não há senha para esse usuário. Em alguns casos, embora isso
não seja recomendável, a senha pode estar inserida diretamente ali, mas criptografada;
1001: esse campo indica o número UID (User IDentification) do usuário, mas você pode estar se perguntando o
que é isso. Como o próprio nome informa, é número que serve para identificar o usuário. Em geral, o sistema pode
suportar UIDs que vão de 0 a 4.294.967.296, embora alguns sistemas limitem esse número a valores inferiores.
Normalmente, o UID 0 é atribuído pelo próprio GNU/Linux ao usuário root. O sistema também pode criar
automaticamente usuários para a execução 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 usuário é 1001. Para usuários "humanos" do sistema,
realmente é uma boa prática criar UIDs mais altas, para fins de organização;
Engº Adão
Garcia
Instituto de Telecomunicações
4
TinTin,Belgica,846-846: esse campo é muito interessante, pois permite a inclusão de informações adicionais
sobre o usuário. Também chamado de GECOS (General Electric Comprehensive Operating System) em
alusão a uma funcionalidade existente em um sistema operacional Unix que tinha esse nome, esse campo
serve para, por exemplo, cadastrar o nome completo do usuário, seu endereço, seu telefone ou o seu ramal,
etc. Cada informação é separada da outra por uma vírgula, por exemplo: Emerson Alecrim,Rua X,1234-4321.
Na prática, você pode inserir as informações que achar melhor, não apenas os dados informados
anteriormente;
/home/tintin: cada usuário 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 diretório /home/, mas você pode definir o diretório que quiser (ou mesmo não indicar nenhum);
/bin/bash: esse é o campo que informa qual o shell (interpretador de comandos) de login que o usuário
utilizará. O GNU/Linux trabalha com vários, entre eles, o bash, o sh e o csh. Caso nenhum shell seja
informado, o sistema utilizará o bash como padrão.
Engº Adão
Garcia
Instituto de Telecomunicações
5
GERENCIAMENTO DE USUÁRIOS
COMO ADICIONAR USUÁRIOS:
Utilizando o linuxconf:
Contas de usuários->Contas de usuários->Adicionar
Nome da conta: preencher com o login
Nome completo: preencher com o nome
completo
Grupo (opc.): opcional
Grupos suplementares: opcional
Diretório HOME (opc.):opcional
Interpretador de comandos (opc.): opcional
ID do usuário (opc.): opcional
Aceitar
Será necessário entrar com a senha do
usuário adicionado.
Sair
Sair
Sair
Ativar Mudanças
Engº Adão
Garcia
Instituto de Telecomunicações
6
Grupo (opc.): Se nenhum grupo for definido, então será gerado um novo grupo automaticamente
Grupos suplementares: Se o usuário também pertencer a um outro grupo, o nome do mesmo deve estar
referenciado neste campo
Diretório HOME (opc.): se nenhum for especificado então será criado no directório /home/nome_da_conta
Interpretador de comandos (opc.): se nenhum for selecionado então será adotado o shell padrão (/bin/bash)
ID do usuário (opc.): se nenhum for especificado então o sistema criará um ID automaticamente para o usuário
Modo Texto :
Para executar em modo texto, certifique-se que esteja usando a conta do super usuário (root) :
Engº Adão
Garcia
Instituto de Telecomunicações
7
Para executar em modo texto, certifique-se que esteja usando a conta do super usuário (root) :
Essa é uma forma simples de criar um usuário:
nome completo: João da Silva
nome da conta: joao
Diretório home: /home/joao
Shell utilizado: /bin/bash
[root@localhost]# /usr/sbin/useradd -m -c 'João da Silva'
-d /home/joao -s '/bin/bash' joao
E para modificar a senha do usuário recém criado:
[root@localhost]# passwd joao
Engº Adão
Garcia
Instituto de Telecomunicações
8
# useradd -d /home/user1 -m -c "usuario teste" -s /bin/bash user1
Entendendo o comando
useradd - Comando que cria usuários no Linux
-d - Opção válida para criação da home do usuário
-m - Parametro obrigatório, pois é quem copia o skel
-c - Comentário sobre o usuário
-s - Determina o shell padrão do usuário
user1 - É o nome de usuário escolhido
Engº Adão
Garcia
Instituto de Telecomunicações
9
COMO REMOVER USUÁRIOS:
Utilizando o linuxconf:
Contas de usuários->Contas de usuários-> Selecionar uma conta e pressionar ENTERcv -> Botão Excluir
arquivar dados da conta
excluir dados da conta
não alterar dados da conta
Aceitar
Sair
Sair
Sair
Ativar Mudanças
Note que o script que será executado ao se arquivar, excluir uma conta pode ser
alterado para um outro script. Para isso faça a configuração em:
Contas de usuários-> Políticas de senhas e contas
Comando de exclusão de conta: basta preencher com o script desejado
Comando de arquivamento de conta: basta preecher com o script desejado
Aceitar
Sair
Sair
Ativar Mudanças
Modo texto :
Remover a conta chamada joao, mas sem deletar o diretório home.
[root@localhost]# userdel joao
Para excluir o usuário e deletar o diretório home respectivo, faça:
[root@localhost]# userdel -r joao
Engº Adão
Garcia
Instituto de Telecomunicações
10
COMO EDITAR USUÁRIOS PREVIAMENTE
CADASTRADOS
Modo texto:
Para verificar qual é o ID do usuário e do grupo execute:
[root@localhost]# id joao
uid=604(joao) gid=504()
[root@localhost]# /usr/sbin/usermod -c 'Joao Carlos' -d
/home/jcarlos
-m -s '/bin/bash' -u 604 -g 504 -e '' joao
Esta conta será modificada para:
nome completo: João Carlos
nome da conta: joao
Diretório home: /home/jcarlos
Shell utilizado: /bin/bash
Engº Adão
Garcia
Instituto de Telecomunicações
11
A opção -m diz para mover todos os arquivos do home antigo do usuário para o novo home que será
/home/jcarlos.
Para modificar o nome de login (nome da conta) deve-se editar o arquivo /etc/passwd e trocar:
Original (nome da conta = joao)
joao:x:591:502:Joao Carlos:/home/joao:/bin/bash
Modificado: (nome da conta = carlos)
carlos:x:591:502:Joao Carlos:/home/joao:/bin/bash
Arquivos de configuração
O arquivo que possui as configurações dos usuários é o /etc/passwd, abaixo uma linha
comentada do mesmo:
Exemplo 1
joao:x:591:502:Joao Carlos:/home/joao:/bin/bash
joao = nome da conta
x = indica que está sendo utilizado o método shadow de encriptação de senhas
591 = ID do usuário (UID = user identification)
502 = ID do grupo (GID = group identification)
Joao Carlos = nome completo
/home/joao = diretório home do usuário
/bin/bash = shell padrão do usuário
Exemplo 2:
joao:$1$Io87bF/Y$/uWiDxPL8HfcU.FZwN2wq1:591:502:Joao Carlos
:/home/joao:/bin/bash
joao = nome da conta
$1$Io87bF/Y$/uWiDxPL8HfcU.FZwN2wq1 = senha encriptada não utiliza o shadow
591 = ID do usuário (UID = user identification)
502 = ID do grupo (GID = group identification)
Joao Carlos = nome completo
/home/joao = diretório home do usuário
/bin/bash = shell padrão do usuário
Engº Adão
Garcia
Instituto de Telecomunicações
12
GERENCIAMENTO DE GRUPOS
COMO ADICIONAR UM GRUPO
Utilizando linuxconf :
Contas de usuários ->Definições de grupos -> Adicionar
Nome do grupo: preencher com o nome do
grupo
ID do grupo: é preenchido
automaticamente
Membros alternativos (opc.): nome de um
grupo alternativo
Aceitar
Sair
Sair
Sair
Ativar Mudanças
Engº Adão
Garcia
Instituto de Telecomunicações
13
Modo Texto:
[root@localhost]# groupadd nome_grupo
COMO REMOVER UM GRUPO
Utilizando o linuxconf:
Contas de usuários-> Definições de grupos-> Selecionar um grupo e pressionar ENTER->Botão Excluir
arquivar dados da conta
excluir dados da conta
não alterar dados da conta
Aceitar
Sair
Sair
Sair
Ativar Mudanças
Modo texto :
[root@localhost]# groupdel nome_grupo
COMO EDITAR GRUPOS PREVIAMENTE CADASTRADOS:
Utilizando o linuxconf :
Contas de usuários-> Definições de grupo-> Selecionar um grupo e pressionar ENTER
Alterar os campos desejados.
Aceitar
Sair
Sair
Ativar Mudanças
Engº Adão
Garcia
Instituto de Telecomunicações
14
Modo Texto :
Para alterar o nome do grupo basta executar:
[root@localhost]# groupmod novo_nome nome_antigo
Arquivos de Configuração:
O arquivo de configuração dos grupos é o /etc/group
Engº Adão
Garcia
Instituto de Telecomunicações
15
COMO DEFINIR UMA CONTA
Em alguns casos é necessário travar uma conta temporariamente, para isso basta seguir os passos:
Contas de usuários->Contas de usuários-> Selecionar uma conta e pressionar ENTER
esta conta está ativa: deixar desmarcada esta opção
Aceitar
Sair
Sair
Ativar Mudanças
COMO ALTERAR AS PERMISSÕES DOS ARQUIVOS CRIADOS PELO USUÁRIO
Para definir quais serão as permissões dos arquivos que serão criados por um usuário,
basta executar:
[root@localhost]# umask 111
Neste caso, todos os arquivos criados a partir de agora terão permissão mais ou menos
assim:
-rw-rw-rw-
dono = leitura, escrita, execução
grupo = leitura, execução
outros = leitura, execução
Engº Adão
Garcia
Instituto de Telecomunicações
16
cadastrar um usuário sem senha
Acesse como root.
Crie um usuário normalmente:
Ex:
[root@localhost]# adduser teste
Foi criado um usuário de exemplo "teste", para que ele possa acessar
será necessário criar uma senha:
[root@localhost]# passwd teste
New UNIX password:
Retype new UNIX password:
Engº Adão
Garcia
Instituto de Telecomunicações
17
Para utilizar um usuário sem senha será necessário editar o arquivo shadow:
[root@localhost]# vi /etc/shadow
Vá até a linha do usuário desejado e apague os caracteres estranhos entre o primeiro ":" e o segundo
":", para salvar e sair use a opção ":x!".
Ex:
[root@localhost]# vi /etc/shadow
root:$1$Bp0Cq2nl$Z7ES3ab/XGX2m5i770aBF1:11562:0:99999:7:-1:-1:0
bin:*:11562:0:99999:7:::
daemon:*:11562:0:99999:7:::
adm:*:11562:0:99999:7:::
lp:*:11562:0:99999:7:::
sync:*:11562:0:99999:7:::
shutdown:*:11562:0:99999:7:::
halt:*:11562:0:99999:7:::
mail:*:11562:0:99999:7:::
news:*:11562:0:99999:7:::
uucp:*:11562:0:99999:7:::
operator:*:11562:0:99999:7:::
games:*:11562:0:99999:7:::
gopher:*:11562:0:99999:7:::
ftp:*:11562:0:99999:7:::
nobody:*:11562:0:99999:7:::
postfix:!!:11562:0:99999:7:::
named:!!:11562:0:99999:7:::
suporte:$1$i2iPs4UF$tbzUQOETtS1ILd6/ZxMS50:11563:0:99999:7:-1:-1:0
skippy:$1$0VJqeXl.$aI2AS39uiR/awQ5an/m/i0:11564:0:99999:7:-1:-1:0
teste:$1$bzAPAUJV$0I46K7YCj.THNldA6SiwX/:11564:0:99999:7:-1:-1:0
A linha do usuário teste deverá ficar assim:
teste::11564:0:99999:7:-1:-1:0
Engº Adão
Garcia
Instituto de Telecomunicações
18
BLOQUEAR USUÁRIOS EM LOGINS
Também podemos bloquear temporariamente um usuário, sem remover o home ou qualquer outro
arquivo usando o comando "passwd -l", como em:
# passwd -l joao
O "passwd -l" realmente trava a conta, fazendo com que o sistema passe a recusar qualquer
senha inserida na hora do login. Para desbloquear a conta posteriormente, use o "passwd -u",
como em:
# passwd -u joao
Engº Adão
Garcia
Instituto de Telecomunicações
19
Manipulando as
permissões
Modificando permissões
Engº Adão
Garcia
Instituto de Telecomunicações
20
Possibilidades de mudar as permissões de acesso de usuários, grupos
e outros. abordaremos das duas formas de modificá-las através das
notações octal e simbólica. Elas são usadas para modificar cada um
dos níveis de permissões.
Níveis de permissão:
Engº Adão
Garcia
Instituto de Telecomunicações
21
Notação octal:
Modificamos directamente os 3 níveis de permissão. Para modificarmos as permissões através dessa
forma, devemos especificar explicitamente o conjunto de permissões. Isto significa que iremos modificar
de uma vez só os três níveis de permissão (dono, grupo e outros).
Não temos como modificar apenas 1 nível de permissão, quando usamos esta notação. Se a intenção é
apenas modificar um nível de permissão, é mais simples optarmos pela notação simbólica ou
especificarmos os outros 2 níveis usando o octal que representa o mesmo conjunto de permissões
atuais.
Sua representação é um conjunto de oito números, onde cada um deles significa um conjunto de
permissões diferente.
Tabela notação octal:
Engº Adão
Garcia
Instituto de Telecomunicações
22
Tabela notação simbólica:
Em adição as opções simbólicas descritas acima, temos 3 formas de trabalho:
Engº Adão
Garcia
Instituto de Telecomunicações
23
Para iniciarmos nossos exemplos vamos criar a seguinte árvore de
directórios, contendo alguns arquivos e directórios:
Como já tínhamos o directório "/documentos" e o arquivo "bugiganga.txt".
# cd /documentos
# touch organograma.odc
# cd Documentos/
# touch credores.xls
# touch contas_pagar.odc
Agora de dentro do directório /documentos vamos dar o comando "ls -l".
# ls -l
-rw-r--r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt
drwxr-xr-x 2 root root 4096 2010-05-04 17:31 Documentos
-rw-r--r-- 1 root root 0 2010-05-04 17:30 organograma.odc
Engº Adão
Garcia
Instituto de Telecomunicações
24
Como podemos ver, o dono dos arquivos é o superusuário "root" e o grupo dono deles é o
grupo "root". As permissões são de escrita(w) e leitura(r) para o dono (root), leitura(r) para o
grupo (root) e leitura(r) para os outros, isso para os arquivos. No caso do diretório temos o bit
de execução (x) ligado, além de todos os outros bits estarem com as permissões iguais as dos
arquivos.
Agora estamos preparados para estudarmos os comandos que nos permitem manipular as
permissões. Os comandos "chmod", "chgrp" e "chown" serão descritos a seguir.
Comando chmod
Usado para modificar as permissões de acesso de um arquivo ou directório. Quando criamos um
arquivo, seu dono (proprietário) é o usuário que o criou, seu o grupo é o grupo padrão do seu
proprietário. Como vimos anteriormente existe uma exceção a essa regra. Caso o directório onde
esse arquivo/directório esteja sendo criado possua o bit especial "setgid" activado. Nesse caso o
grupo passa a ser o mesmo grupo do directório "pai".
Sintaxe:
chmod [opções] [permissões] [arquivo/diretório]
Opções:
Engº Adão
Garcia
Instituto de Telecomunicações
25
Ex.1: Vamos dar direito de escrita para o grupo dono do arquivo bugiganga.txt.
# ls -l
-rw-r--r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt
drwxr-xr-x 2 root root 4096 2010-05-04 17:31 Documentos
-rw-r--r-- 1 root root 0 2010-05-04 17:30 organograma.odc
# chmod g+w bugiganga.txt
# ls -l
-rw-rw-r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt
drwxr-xr-x 2 root root 4096 2010-05-04 17:31 Documentos
-rw-r--r-- 1 root root 0 2010-05-04 17:30 organograma.odc
Ex.2: Iremos agora remover direito de escrita para o grupo dono do arquivo bugiganga.txt.
# chmod g-w bugiganga.txt
# ls -l
-rw-r--r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt
drwxr-xr-x 2 root root 4096 2010-05-04 17:31 Documentos
-rw-r--r-- 1 root root 0 2010-05-04 17:30 organograma.odc
Ex.3: Vamos incluir o direito de escrita para os "outros" no directório "Documentos" de forma recursiva, isso significa que
arquivos/diretórios abaixo do directório Documentos irão receber direito de escrita para os "outros".
# chmod -R o+w Documentos
# ls -l
-rw-r--r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt
drwxr-xrwx 2 root root 4096 2010-05-04 17:31 Documentos
-rw-r--r-- 1 root root 0 2010-05-04 17:30 organograma.odc
# ls -l Documentos/
-rw-r--rw- 1 root root 0 2010-05-04 17:31 contas_pagar.odc
-rw-r--rw- 1 root root 0 2010-05-04 17:31 credores.xls
Engº Adão
Garcia
Instituto de Telecomunicações
26
Ex.4: Usaremos um exemplo de notação octal. Faremos com que o arquivo organograma só tenha direito de leitura e
escrita para o dono do arquivo, nesse caso o "root".
# chmod 600 organograma.odc
# ls -l
-rw-r--r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt
drwxr-xrwx 2 root root 4096 2010-05-04 17:31 Documentos
-rw------- 1 root root 0 2010-05-04 17:30 organograma.odc
Como acabamos de ver, podemos modificar as permissões de arquivos/diretórios de diversas formas.
Engº Adão
Garcia
Instituto de Telecomunicações
27
r: leitura
w: escrita
x: para diretórios listar conteúdo, para arquivos permissão de escrita.
Também podemos representar com números, onde:
1 = executar/listar (r)
2 = gravar (w)
4 = leitura (x) Engº Adão
Garcia
Instituto de Telecomunicações
28
Permissões com números
0 = sem permissões.
1 = listar diretórios, executar programas, não é possível ler arquivos.
4 = Não consegue listar o conteúdo dos diretórios, consegue ler arquivos caso saiba seu caminho completo.
5 (4+1) = Listar diretórios, ler e executar arquivos.
6 (4+2) = Não lista o conteúdo dos diretórios, consegue ler e editar arquivos caso saiba seu caminho completo.
7 (4+2+1) = Controle total
Engº Adão
Garcia
Instituto de Telecomunicações
29

Usuarios linux

  • 1.
    Controle de usuáriosno GNU/Linux Para criar, gerenciar ou eliminar contas de usuários no GNU/Linux, é necessário estar" no sistema operacional com o usuário root (ou outro usuário que tenha privilégios de administrador). Os motivos para isso são óbvios: somente usuários autorizados é que podem manipular outras contas, do contrário, a segurança do sistema seria seriamente comprometida, pois qualquer usuário poderia criar, alterar ou apagar contas. Note que, dependendo das configurações do seu sistema, pode ser necessário executar cada instrução antecedida do comando 'sudo', como acontece por padrão com a distribuição Ubuntu. Antes de criar e controlar contas no GNU/Linux, é conveniente entender como o sistema operacional lida com isso. Em geral, cada conta criada fica armazenada em um arquivo de nome passwd localizado dentro do diretório /etc/ (ou seja, seu caminho completo é /etc/passwd). Esse arquivo contém várias informações sobre cada usuário: - o seu nome de login (ou seja, o nome que é necessário digitar para entrar no sistema); - senha (neste caso, a informação da senha pode estar criptografada ou em outro arquivo); - UID (User IDentification), ou seja, número de identificação do usuário; - GID (Group IDentification), isto é, número de identificação do grupo do usuário; - informações adicionais sobre o usuário (nome completo, dados de contato, etc); - directório "home", ou seja, o directório principal de cada usuário; - shell do usuário, uma espécie de programa que interpretará os comandos que o usuário digitar. Engº Adão Garcia Instituto de Telecomunicações 1
  • 2.
    As restrições básicasde acesso são implementadas através de um sistema de permissões simples, porém eficiente, que consiste num conjunto de três permissões de acesso (ler, gravar e executar) e três grupos (dono, grupo e outros), que combinadas permitem fazer muita coisa. Os dois comandos mais básicos são o "adduser" e o "passwd", que permitem, respectivamente adicionar novos usuários e alterar as senhas de acesso posteriormente, como em: # adduser joao (cria o usuário joao, especificando uma senha inicial) # passwd joao Engº Adão Garcia Instituto de Telecomunicações 2
  • 3.
    O próprio usuáriopode alterar a senha usando o comando "passwd", desde que ele saiba a senha antiga. Se o usuário esqueceu a senha, você pode definir uma nova executando o comando como root; nesse caso o sistema pede a nova senha directamente, sem solicitar a senha antiga. Os usuários são cadastrados no sistema através do arquivo "/etc/passwd". Se tiver curiosidade em olhar dentro do arquivo você verá uma entrada para cada usuário, incluindo o directório home e o shell usado, como em: joao:x:1001:1001:,,,:/home/joao:/bin/bash Engº Adão Garcia Instituto de Telecomunicações 3
  • 4.
    Note que cadaparâmetro do usuário é separado por : (dois pontos). Vamos estudar cada um: tintin: é neste ponto que fica localizado o nome de login do usuário, neste caso, tintin. Esse nome não pode ser igual a outro já existente no sistema e, geralmente é limitado a 32 caracteres. Todavia, dependendo da configuração aplicada, o nome pode ser "case sensitive", ou seja, diferencia letras maiúsculas de minúsculas. Assim, 'wester' será diferente de 'wEster', por exemplo; x: essa posição indica a senha do usuário. 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. Todavia, se não houver nada, significa que não há senha para esse usuário. Em alguns casos, embora isso não seja recomendável, a senha pode estar inserida diretamente ali, mas criptografada; 1001: esse campo indica o número UID (User IDentification) do usuário, mas você pode estar se perguntando o que é isso. Como o próprio nome informa, é número que serve para identificar o usuário. Em geral, o sistema pode suportar UIDs que vão de 0 a 4.294.967.296, embora alguns sistemas limitem esse número a valores inferiores. Normalmente, o UID 0 é atribuído pelo próprio GNU/Linux ao usuário root. O sistema também pode criar automaticamente usuários para a execução 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 usuário é 1001. Para usuários "humanos" do sistema, realmente é uma boa prática criar UIDs mais altas, para fins de organização; Engº Adão Garcia Instituto de Telecomunicações 4
  • 5.
    TinTin,Belgica,846-846: esse campoé muito interessante, pois permite a inclusão de informações adicionais sobre o usuário. Também chamado de GECOS (General Electric Comprehensive Operating System) em alusão a uma funcionalidade existente em um sistema operacional Unix que tinha esse nome, esse campo serve para, por exemplo, cadastrar o nome completo do usuário, seu endereço, seu telefone ou o seu ramal, etc. Cada informação é separada da outra por uma vírgula, por exemplo: Emerson Alecrim,Rua X,1234-4321. Na prática, você pode inserir as informações que achar melhor, não apenas os dados informados anteriormente; /home/tintin: cada usuário 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 diretório /home/, mas você pode definir o diretório que quiser (ou mesmo não indicar nenhum); /bin/bash: esse é o campo que informa qual o shell (interpretador de comandos) de login que o usuário utilizará. O GNU/Linux trabalha com vários, entre eles, o bash, o sh e o csh. Caso nenhum shell seja informado, o sistema utilizará o bash como padrão. Engº Adão Garcia Instituto de Telecomunicações 5
  • 6.
    GERENCIAMENTO DE USUÁRIOS COMOADICIONAR USUÁRIOS: Utilizando o linuxconf: Contas de usuários->Contas de usuários->Adicionar Nome da conta: preencher com o login Nome completo: preencher com o nome completo Grupo (opc.): opcional Grupos suplementares: opcional Diretório HOME (opc.):opcional Interpretador de comandos (opc.): opcional ID do usuário (opc.): opcional Aceitar Será necessário entrar com a senha do usuário adicionado. Sair Sair Sair Ativar Mudanças Engº Adão Garcia Instituto de Telecomunicações 6
  • 7.
    Grupo (opc.): Senenhum grupo for definido, então será gerado um novo grupo automaticamente Grupos suplementares: Se o usuário também pertencer a um outro grupo, o nome do mesmo deve estar referenciado neste campo Diretório HOME (opc.): se nenhum for especificado então será criado no directório /home/nome_da_conta Interpretador de comandos (opc.): se nenhum for selecionado então será adotado o shell padrão (/bin/bash) ID do usuário (opc.): se nenhum for especificado então o sistema criará um ID automaticamente para o usuário Modo Texto : Para executar em modo texto, certifique-se que esteja usando a conta do super usuário (root) : Engº Adão Garcia Instituto de Telecomunicações 7
  • 8.
    Para executar emmodo texto, certifique-se que esteja usando a conta do super usuário (root) : Essa é uma forma simples de criar um usuário: nome completo: João da Silva nome da conta: joao Diretório home: /home/joao Shell utilizado: /bin/bash [root@localhost]# /usr/sbin/useradd -m -c 'João da Silva' -d /home/joao -s '/bin/bash' joao E para modificar a senha do usuário recém criado: [root@localhost]# passwd joao Engº Adão Garcia Instituto de Telecomunicações 8
  • 9.
    # useradd -d/home/user1 -m -c "usuario teste" -s /bin/bash user1 Entendendo o comando useradd - Comando que cria usuários no Linux -d - Opção válida para criação da home do usuário -m - Parametro obrigatório, pois é quem copia o skel -c - Comentário sobre o usuário -s - Determina o shell padrão do usuário user1 - É o nome de usuário escolhido Engº Adão Garcia Instituto de Telecomunicações 9
  • 10.
    COMO REMOVER USUÁRIOS: Utilizandoo linuxconf: Contas de usuários->Contas de usuários-> Selecionar uma conta e pressionar ENTERcv -> Botão Excluir arquivar dados da conta excluir dados da conta não alterar dados da conta Aceitar Sair Sair Sair Ativar Mudanças Note que o script que será executado ao se arquivar, excluir uma conta pode ser alterado para um outro script. Para isso faça a configuração em: Contas de usuários-> Políticas de senhas e contas Comando de exclusão de conta: basta preencher com o script desejado Comando de arquivamento de conta: basta preecher com o script desejado Aceitar Sair Sair Ativar Mudanças Modo texto : Remover a conta chamada joao, mas sem deletar o diretório home. [root@localhost]# userdel joao Para excluir o usuário e deletar o diretório home respectivo, faça: [root@localhost]# userdel -r joao Engº Adão Garcia Instituto de Telecomunicações 10
  • 11.
    COMO EDITAR USUÁRIOSPREVIAMENTE CADASTRADOS Modo texto: Para verificar qual é o ID do usuário e do grupo execute: [root@localhost]# id joao uid=604(joao) gid=504() [root@localhost]# /usr/sbin/usermod -c 'Joao Carlos' -d /home/jcarlos -m -s '/bin/bash' -u 604 -g 504 -e '' joao Esta conta será modificada para: nome completo: João Carlos nome da conta: joao Diretório home: /home/jcarlos Shell utilizado: /bin/bash Engº Adão Garcia Instituto de Telecomunicações 11
  • 12.
    A opção -mdiz para mover todos os arquivos do home antigo do usuário para o novo home que será /home/jcarlos. Para modificar o nome de login (nome da conta) deve-se editar o arquivo /etc/passwd e trocar: Original (nome da conta = joao) joao:x:591:502:Joao Carlos:/home/joao:/bin/bash Modificado: (nome da conta = carlos) carlos:x:591:502:Joao Carlos:/home/joao:/bin/bash Arquivos de configuração O arquivo que possui as configurações dos usuários é o /etc/passwd, abaixo uma linha comentada do mesmo: Exemplo 1 joao:x:591:502:Joao Carlos:/home/joao:/bin/bash joao = nome da conta x = indica que está sendo utilizado o método shadow de encriptação de senhas 591 = ID do usuário (UID = user identification) 502 = ID do grupo (GID = group identification) Joao Carlos = nome completo /home/joao = diretório home do usuário /bin/bash = shell padrão do usuário Exemplo 2: joao:$1$Io87bF/Y$/uWiDxPL8HfcU.FZwN2wq1:591:502:Joao Carlos :/home/joao:/bin/bash joao = nome da conta $1$Io87bF/Y$/uWiDxPL8HfcU.FZwN2wq1 = senha encriptada não utiliza o shadow 591 = ID do usuário (UID = user identification) 502 = ID do grupo (GID = group identification) Joao Carlos = nome completo /home/joao = diretório home do usuário /bin/bash = shell padrão do usuário Engº Adão Garcia Instituto de Telecomunicações 12
  • 13.
    GERENCIAMENTO DE GRUPOS COMOADICIONAR UM GRUPO Utilizando linuxconf : Contas de usuários ->Definições de grupos -> Adicionar Nome do grupo: preencher com o nome do grupo ID do grupo: é preenchido automaticamente Membros alternativos (opc.): nome de um grupo alternativo Aceitar Sair Sair Sair Ativar Mudanças Engº Adão Garcia Instituto de Telecomunicações 13
  • 14.
    Modo Texto: [root@localhost]# groupaddnome_grupo COMO REMOVER UM GRUPO Utilizando o linuxconf: Contas de usuários-> Definições de grupos-> Selecionar um grupo e pressionar ENTER->Botão Excluir arquivar dados da conta excluir dados da conta não alterar dados da conta Aceitar Sair Sair Sair Ativar Mudanças Modo texto : [root@localhost]# groupdel nome_grupo COMO EDITAR GRUPOS PREVIAMENTE CADASTRADOS: Utilizando o linuxconf : Contas de usuários-> Definições de grupo-> Selecionar um grupo e pressionar ENTER Alterar os campos desejados. Aceitar Sair Sair Ativar Mudanças Engº Adão Garcia Instituto de Telecomunicações 14
  • 15.
    Modo Texto : Paraalterar o nome do grupo basta executar: [root@localhost]# groupmod novo_nome nome_antigo Arquivos de Configuração: O arquivo de configuração dos grupos é o /etc/group Engº Adão Garcia Instituto de Telecomunicações 15
  • 16.
    COMO DEFINIR UMACONTA Em alguns casos é necessário travar uma conta temporariamente, para isso basta seguir os passos: Contas de usuários->Contas de usuários-> Selecionar uma conta e pressionar ENTER esta conta está ativa: deixar desmarcada esta opção Aceitar Sair Sair Ativar Mudanças COMO ALTERAR AS PERMISSÕES DOS ARQUIVOS CRIADOS PELO USUÁRIO Para definir quais serão as permissões dos arquivos que serão criados por um usuário, basta executar: [root@localhost]# umask 111 Neste caso, todos os arquivos criados a partir de agora terão permissão mais ou menos assim: -rw-rw-rw- dono = leitura, escrita, execução grupo = leitura, execução outros = leitura, execução Engº Adão Garcia Instituto de Telecomunicações 16
  • 17.
    cadastrar um usuáriosem senha Acesse como root. Crie um usuário normalmente: Ex: [root@localhost]# adduser teste Foi criado um usuário de exemplo "teste", para que ele possa acessar será necessário criar uma senha: [root@localhost]# passwd teste New UNIX password: Retype new UNIX password: Engº Adão Garcia Instituto de Telecomunicações 17
  • 18.
    Para utilizar umusuário sem senha será necessário editar o arquivo shadow: [root@localhost]# vi /etc/shadow Vá até a linha do usuário desejado e apague os caracteres estranhos entre o primeiro ":" e o segundo ":", para salvar e sair use a opção ":x!". Ex: [root@localhost]# vi /etc/shadow root:$1$Bp0Cq2nl$Z7ES3ab/XGX2m5i770aBF1:11562:0:99999:7:-1:-1:0 bin:*:11562:0:99999:7::: daemon:*:11562:0:99999:7::: adm:*:11562:0:99999:7::: lp:*:11562:0:99999:7::: sync:*:11562:0:99999:7::: shutdown:*:11562:0:99999:7::: halt:*:11562:0:99999:7::: mail:*:11562:0:99999:7::: news:*:11562:0:99999:7::: uucp:*:11562:0:99999:7::: operator:*:11562:0:99999:7::: games:*:11562:0:99999:7::: gopher:*:11562:0:99999:7::: ftp:*:11562:0:99999:7::: nobody:*:11562:0:99999:7::: postfix:!!:11562:0:99999:7::: named:!!:11562:0:99999:7::: suporte:$1$i2iPs4UF$tbzUQOETtS1ILd6/ZxMS50:11563:0:99999:7:-1:-1:0 skippy:$1$0VJqeXl.$aI2AS39uiR/awQ5an/m/i0:11564:0:99999:7:-1:-1:0 teste:$1$bzAPAUJV$0I46K7YCj.THNldA6SiwX/:11564:0:99999:7:-1:-1:0 A linha do usuário teste deverá ficar assim: teste::11564:0:99999:7:-1:-1:0 Engº Adão Garcia Instituto de Telecomunicações 18
  • 19.
    BLOQUEAR USUÁRIOS EMLOGINS Também podemos bloquear temporariamente um usuário, sem remover o home ou qualquer outro arquivo usando o comando "passwd -l", como em: # passwd -l joao O "passwd -l" realmente trava a conta, fazendo com que o sistema passe a recusar qualquer senha inserida na hora do login. Para desbloquear a conta posteriormente, use o "passwd -u", como em: # passwd -u joao Engº Adão Garcia Instituto de Telecomunicações 19
  • 20.
    Manipulando as permissões Modificando permissões EngºAdão Garcia Instituto de Telecomunicações 20
  • 21.
    Possibilidades de mudaras permissões de acesso de usuários, grupos e outros. abordaremos das duas formas de modificá-las através das notações octal e simbólica. Elas são usadas para modificar cada um dos níveis de permissões. Níveis de permissão: Engº Adão Garcia Instituto de Telecomunicações 21
  • 22.
    Notação octal: Modificamos directamenteos 3 níveis de permissão. Para modificarmos as permissões através dessa forma, devemos especificar explicitamente o conjunto de permissões. Isto significa que iremos modificar de uma vez só os três níveis de permissão (dono, grupo e outros). Não temos como modificar apenas 1 nível de permissão, quando usamos esta notação. Se a intenção é apenas modificar um nível de permissão, é mais simples optarmos pela notação simbólica ou especificarmos os outros 2 níveis usando o octal que representa o mesmo conjunto de permissões atuais. Sua representação é um conjunto de oito números, onde cada um deles significa um conjunto de permissões diferente. Tabela notação octal: Engº Adão Garcia Instituto de Telecomunicações 22
  • 23.
    Tabela notação simbólica: Emadição as opções simbólicas descritas acima, temos 3 formas de trabalho: Engº Adão Garcia Instituto de Telecomunicações 23
  • 24.
    Para iniciarmos nossosexemplos vamos criar a seguinte árvore de directórios, contendo alguns arquivos e directórios: Como já tínhamos o directório "/documentos" e o arquivo "bugiganga.txt". # cd /documentos # touch organograma.odc # cd Documentos/ # touch credores.xls # touch contas_pagar.odc Agora de dentro do directório /documentos vamos dar o comando "ls -l". # ls -l -rw-r--r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt drwxr-xr-x 2 root root 4096 2010-05-04 17:31 Documentos -rw-r--r-- 1 root root 0 2010-05-04 17:30 organograma.odc Engº Adão Garcia Instituto de Telecomunicações 24
  • 25.
    Como podemos ver,o dono dos arquivos é o superusuário "root" e o grupo dono deles é o grupo "root". As permissões são de escrita(w) e leitura(r) para o dono (root), leitura(r) para o grupo (root) e leitura(r) para os outros, isso para os arquivos. No caso do diretório temos o bit de execução (x) ligado, além de todos os outros bits estarem com as permissões iguais as dos arquivos. Agora estamos preparados para estudarmos os comandos que nos permitem manipular as permissões. Os comandos "chmod", "chgrp" e "chown" serão descritos a seguir. Comando chmod Usado para modificar as permissões de acesso de um arquivo ou directório. Quando criamos um arquivo, seu dono (proprietário) é o usuário que o criou, seu o grupo é o grupo padrão do seu proprietário. Como vimos anteriormente existe uma exceção a essa regra. Caso o directório onde esse arquivo/directório esteja sendo criado possua o bit especial "setgid" activado. Nesse caso o grupo passa a ser o mesmo grupo do directório "pai". Sintaxe: chmod [opções] [permissões] [arquivo/diretório] Opções: Engº Adão Garcia Instituto de Telecomunicações 25
  • 26.
    Ex.1: Vamos dardireito de escrita para o grupo dono do arquivo bugiganga.txt. # ls -l -rw-r--r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt drwxr-xr-x 2 root root 4096 2010-05-04 17:31 Documentos -rw-r--r-- 1 root root 0 2010-05-04 17:30 organograma.odc # chmod g+w bugiganga.txt # ls -l -rw-rw-r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt drwxr-xr-x 2 root root 4096 2010-05-04 17:31 Documentos -rw-r--r-- 1 root root 0 2010-05-04 17:30 organograma.odc Ex.2: Iremos agora remover direito de escrita para o grupo dono do arquivo bugiganga.txt. # chmod g-w bugiganga.txt # ls -l -rw-r--r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt drwxr-xr-x 2 root root 4096 2010-05-04 17:31 Documentos -rw-r--r-- 1 root root 0 2010-05-04 17:30 organograma.odc Ex.3: Vamos incluir o direito de escrita para os "outros" no directório "Documentos" de forma recursiva, isso significa que arquivos/diretórios abaixo do directório Documentos irão receber direito de escrita para os "outros". # chmod -R o+w Documentos # ls -l -rw-r--r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt drwxr-xrwx 2 root root 4096 2010-05-04 17:31 Documentos -rw-r--r-- 1 root root 0 2010-05-04 17:30 organograma.odc # ls -l Documentos/ -rw-r--rw- 1 root root 0 2010-05-04 17:31 contas_pagar.odc -rw-r--rw- 1 root root 0 2010-05-04 17:31 credores.xls Engº Adão Garcia Instituto de Telecomunicações 26
  • 27.
    Ex.4: Usaremos umexemplo de notação octal. Faremos com que o arquivo organograma só tenha direito de leitura e escrita para o dono do arquivo, nesse caso o "root". # chmod 600 organograma.odc # ls -l -rw-r--r-- 1 root root 0 2010-05-04 14:33 bugiganga.txt drwxr-xrwx 2 root root 4096 2010-05-04 17:31 Documentos -rw------- 1 root root 0 2010-05-04 17:30 organograma.odc Como acabamos de ver, podemos modificar as permissões de arquivos/diretórios de diversas formas. Engº Adão Garcia Instituto de Telecomunicações 27
  • 28.
    r: leitura w: escrita x:para diretórios listar conteúdo, para arquivos permissão de escrita. Também podemos representar com números, onde: 1 = executar/listar (r) 2 = gravar (w) 4 = leitura (x) Engº Adão Garcia Instituto de Telecomunicações 28
  • 29.
    Permissões com números 0= sem permissões. 1 = listar diretórios, executar programas, não é possível ler arquivos. 4 = Não consegue listar o conteúdo dos diretórios, consegue ler arquivos caso saiba seu caminho completo. 5 (4+1) = Listar diretórios, ler e executar arquivos. 6 (4+2) = Não lista o conteúdo dos diretórios, consegue ler e editar arquivos caso saiba seu caminho completo. 7 (4+2+1) = Controle total Engº Adão Garcia Instituto de Telecomunicações 29