possui três bits e cada bit representa uma permissão. Ficou confuso? Vamos ver uma representação para entender melhor:
000 000 000 as permissões de cada entidade são representadas por cada grupo de três zeros e são lidas sempre da esquerda para a direita.
Quando listamos arquivos com o comando ls -l, conseguimos visualizar as
mesmas permissões de outra maneira: rwx rwx rwx.
63
6.3. Atribuindo permissões
Casa do Código
Os tipos de notações
Agora que já vimos o que são os bits de atributo e de proteção, veremos como
converter entre notações binária, simbólica e octal.
Juntando os bits de atributo e de proteção temos um total de 12 bits, sendo 3 de
atributos e 9 de proteção. Veja a representação binária e simbólica: 000 000 000
000 ou sst rwx rwx rwx.
A notação octal converte cada grupo de três bits em um caractere que vai de 0 a
7.
Grupos:
Dono |
Grupo
| Outros
Simbólica:
rwx
r-x
r--
Binária:
111
101
100
Octal:
7
5
4
Voltando para o chmod, vamos à prática. Primeiro, com o comando ls -l,
vamos listar as informações sobre permissão do arquivo agenda:
daniel@casadocodigo:~$ ls -l agenda
-rw-rw-r-- 1 daniel daniel 136 Oct 2 00:49 agenda
daniel@casadocodigo:~$
Podemos notar que o arquivo possui permissão de leitura e escrita para o dono
e grupo, e permissão de apenas leitura para outros. Fazendo uso do chmod vamos
alterar as permissões deste arquivo:
daniel@casadocodigo:~$ chmod u=rw,g=rw,o=rw agenda
daniel@casadocodigo:~$ ls -l agenda
-rw-rw-rw- 1 daniel daniel 136 Oct 2 00:49 agenda
daniel@casadocodigo:~$
O que fizemos foi manter as permissões para dono e grupo e setar uma nova
permissão para outros. Agora o nosso arquivo possui a permissão de leitura e escrita para outros.
Lembre-se que o u representa o usuário dono, o g representa o grupo e o o re-
presenta outros. A mesma permissão poderia ter sido executada na forma octal:
daniel@casadocodigo:~$ chmod 666 agenda
daniel@casadocodigo:~$ ls -l agenda
-rw-rw-rw- 1 daniel daniel 136 Oct 2 00:49 agenda
daniel@casadocodigo:~$
64
Casa do Código
Capítulo 6. Administração de usuários
Teste o chmod usando a opção -v e veja a informação que ele retorna:
daniel@casadocodigo:~$ chmod -v 664 agenda
mode of àgendà changed from 0666 (rw-rw-rw-) to 0664 (rw-rw-r--)
daniel@casadocodigo:~$
Retornamos a permissão anterior usando o formato octal. A opção -v do
chmod nos mostra duas notaçõesm, de modo que fica fácil comparar e entender o
que estamos fazendo.
Analise a tabela de conversão entre as notações para os bits de proteção. Usare-
mos a notação octal daqui pra frente por ser mais concisa:
Figura 6.4: Notações para os bits de proteção
6.4
Criando grupos
Agora que já entendemos um pouco sobre usuários, grupos e permissões, vamos
praticar e conhecer mais alguns comandos.
Sabemos que um usuário deve pertencer a um grupo e pode ser adicionado a ou-
tros grupos. Para criar um novo grupo, usamos o comando addgroup criaremos
um grupo chamado suporte:
daniel@casadocodigo:~$ sudo addgroup suporte
Adding group `suportè (GID 1005) ...
Done.
daniel@casadocodigo:~$
65
6.5. Criando usuários
Casa do Código
Note que, ao criar o grupo automaticamente, ele recebe o seu número GID.
6.5
Criando usuários
Para criar usuários, existe o comando adduser, que pode também adicionar usuá-
rios em grupos e até criar novos grupos.
adduser paulo irá adicionar o usuário paulo solicitando as informações adi-
cionais como: nome, senha, grupo, pasta home...:
daniel@casadocodigo:~$ sudo adduser paulo
Adding user `paulò ...
Adding new group `paulò (1007) ...
Adding new user `paulò (1003) with group `paulò ...
Creating home directory `/home/paulò ...
Copying files from `/etc/skel` ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for paulo
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
Note todas as opções solicitadas ao criar um novo usuário. Após preencher ou
confirmar somente as que achar necessário, o usuário paulo será criado no sistema: daniel@casadocodigo:~$ id paulo
uid=1003(paulo) gid=1007(paulo) groups=1007(paulo)
daniel@casadocodigo:~$ ls /home/
daniel paulo
daniel@casadocodigo:~$
Utilize o comando id sempre que quiser obter informações sobre um usuário
do sistema. Ele irá retornar UID, GID e os grupos aos quais o usuário pertence.
Agora que já criamos um novo grupo e um novo usuário, vamos adicionar o
usuário paulo ao grupo suporte. Para isso, utilize o comando addgroup que,
66
Casa do Código
Capítulo 6. Administração de usuários
além de criar um novo grupo como vimos anteriormente, também pode adicionar
usuários a outros grupos:
daniel@casadocodigo:~$ sudo addgroup paulo suporte
Adding user `paulò to group `suportè ...
Adding user paulo to group suporte
Done.
daniel@casadocodigo:~$
O retorno do comando já nos informa que o usuário paulo foi adicionado ao