DEV Community

Cover image for Primeiros passos e permissões no Linux
Maria Dias
Maria Dias

Posted on • Updated on

Primeiros passos e permissões no Linux

Essas são as notas referentes à semana 1 do Mutirão DevOps, iniciativa da LinuxTips. Todos os links de onde tirei as informações aqui apresentadas estão no final da página em "Referências". Somente para conhecimento, estou o sistema Ubuntu 18.04 (LTS) e terminal bash (padrão). :)

Para abrir o terminal, podemos utilizar o atalho: ctrl + alt + t.

Então, primeira questão que surge: como saber qual o shell utilizado?
Para isso, basta digitar o comando abaixo no terminal:

$ echo $SHELL
/bin/bash
Enter fullscreen mode Exit fullscreen mode

Há outras opções, por exemplo o zsh. Estou utilizando o que já vem por padrão de instalação do Ubuntu 18.04. 😄

Para iniciar os estudos, vou criar um diretório a partir do diretórios home chamada aula_linux:

cometa@maria-pc:~$ mkdir aula_linux
cometa@maria-pc:~$ cd aula_linux
cometa@maria-pc:~/aula_linux$ ls
cometa@maria-pc:~/aula_linux$ ls -l
total 0
cometa@maria-pc:~/aula_linux$ ls -lha
total 8,0K
drwxrwxr-x  2 cometa cometa 4,0K mai 22 16:31 .
drwxr-xr-x 65 cometa cometa 4,0K mai 22 16:31 ..
cometa@maria-pc:~/aula_linux$ pwd
/home/cometa/aula_linux
cometa@maria-pc:~/aula_linux$ cd ..
cometa@maria-pc:~$ pwd
/home/cometa
cometa@maria-pc:~$ cd -
/home/cometa/aula_linux
cometa@maria-pc:~/aula_linux$ pwd
/home/cometa/aula_linux
Enter fullscreen mode Exit fullscreen mode

Agora criarei um arquivo qualquer chamado teste no diretório home e copiá-lo via terminal para o diretório aula_linux:

cometa@maria-pc:~$ touch teste
cometa@maria-pc:~$ cd aula_linux
cometa@maria-pc:~/aula_linux$ ls
cometa@maria-pc:~/aula_linux$ cp ../teste .
cometa@maria-pc:~/aula_linux$ ls
teste
cometa@maria-pc:~/aula_linux$
Enter fullscreen mode Exit fullscreen mode

Um pouco sobre permissões

Vídeo referência: Tudo sobre permissões avançadas e ACL no Linux

Para ver as permissões do conteúdos do diretório atual, fazemos:

$ ls -l
total 4
-rw-r--r-- 1 root   users     0 mai 22 19:31 strigus
drwxrwxrwx 3 cometa cometa 4096 mai 22 21:28 teste1
Enter fullscreen mode Exit fullscreen mode

Observando o formato de retorno, podemos observar -rw-r--r-- e drwxrwxrwx. O que isso significa?

O 1º caractere define o tipo de arquivo. Os tipos podem ser:
(-) = arquivo comum
(d) = diretório
(l) = link simbólico
(b) = dispositivo de bloco
(c) = dispositivo de caractere
(s) = socket

No exemplo do retorno acima, temos os tipos (-) arquivo comum e (d) diretório.

Os próximos caracteres a partir do tipo nos diz as permissões, contados a cada 3 caracteres seguindo a ordem:

  • rw-: permissão para o dono (U)
  • r--: permissão para o grupo dono (G)
  • r--: permissão para outros (O)

Também existe a opção de todos e é representado pela letra (a) (de all).

Cada letra dessa tem um significado e um valor correspondente, sendo eles:
r -> read (4): Permissão de leitura
w -> write (2): Permissão de escrita
x -> execute (1): Permissão de execução

Portanto, se temos uma permissão -rw-r--r-- temos:
rw- = 4 + 2 + 0
r-- = 4 + 0 + 0
r-- = 4 + 0 + 0
Portanto, temos um valor final -rw-r--r-- = 644

CHMOD: alterando permissões

Podemos também alterar a permissão do arquivo fazendo

$ sudo chmod 644 arquivo
$ ls -lha
total 8,0K
drwxrwxr-x  2 cometa cometa 4,0K mai 22 19:31 .
drwxr-xr-x 66 cometa cometa 4,0K mai 22 19:31 ..
-rw-r--r--  1 root   users     0 mai 22 19:31 arquivo
Enter fullscreen mode Exit fullscreen mode

CHOWN: alterando o dono

Para alterar quem é o grupo dono utilizamos o chown. Por exemplo:

$ chown cometa:users arquivo_exemplo
Enter fullscreen mode Exit fullscreen mode

Se deu tudo certo, não haverá retorno algum. Caso tenha retornado erro de permissão, é necessário utilizar o comando "sudo":

$ sudo chown cometa:users arquivo
Enter fullscreen mode Exit fullscreen mode

Para confirmar se deu tudo certo, basta fazer $ls -lha e observar um retorno do tipo:

$ ls -lha
total 8,0K
drwxrwxr-x  2 cometa cometa 4,0K mai 22 19:31 .
drwxr-xr-x 66 cometa cometa 4,0K mai 22 19:31 ..
-rw-rw-rwx  1 cometa users     0 mai 22 19:31 arquivo

Enter fullscreen mode Exit fullscreen mode

Voltando para a permissão de root:

$ chown root arquivo
chown: changing ownership of 'arquivo': Operation not permitted
$ sudo chown root arquivo
[sudo] password for cometa: 
$ ls -lha
total 8,0K
drwxrwxr-x  2 cometa cometa 4,0K mai 22 19:31 .
drwxr-xr-x 66 cometa cometa 4,0K mai 22 19:31 ..
-rw-rw-rwx  1 root   users     0 mai 22 19:31 arquivo
Enter fullscreen mode Exit fullscreen mode

Alterando permissões de forma recursiva:

$ mkdir -p teste1/teste2/teste3
$ chmod -R 777  teste1/
$ ls -lhaR
.:
total 12K
drwxrwxr-x  3 cometa cometa 4,0K mai 22 21:28
drwxr-xr-x 66 cometa cometa 4,0K mai 22 19:31 
-rw-r--r--  1 root   users     0 mai 22 19:31 arquivo
drwxrwxrwx  3 cometa cometa 4,0K mai 22 21:28

./teste1:
total 12K
drwxrwxrwx 3 cometa cometa 4,0K mai 22 21:28
drwxrwxr-x 3 cometa cometa 4,0K mai 22 21:28 
drwxrwxrwx 3 cometa cometa 4,0K mai 22 21:28

./teste1/teste2:
total 12K
drwxrwxrwx 3 cometa cometa 4,0K mai 22 21:28
drwxrwxrwx 3 cometa cometa 4,0K mai 22 21:28
drwxrwxrwx 2 cometa cometa 4,0K mai 22 21:28 

./teste1/teste2/teste3:
total 8,0K
drwxrwxrwx 2 cometa cometa 4,0K mai 22 21:28
drwxrwxrwx 3 cometa cometa 4,0K mai 22 21:28
Enter fullscreen mode Exit fullscreen mode

Permissões especiais: stick bit, sgid, suid

suid (4)

Para utilizar o shutdown, somente o usuário root tem permissão. Para alterar a permissão e permitir que qualquer usuário execute o binário do shutdown, pode-se fazer:

$ chmod 4777 /sbin/shutdown
Enter fullscreen mode Exit fullscreen mode

sgid (2)

É o mesmo que o suid mas para grupo.

stick bit (1)

É representado pelo valor (t) nas permissões.

chgrp

É utilizado para alterar o grupo dono.
Exemplo:

$ chgrp users arquivo
Enter fullscreen mode Exit fullscreen mode

setfacl

$ setfacl -m user:girpops:rwx strigus
Enter fullscreen mode Exit fullscreen mode
$ setfacl -m group:girus:rwx strigus
Enter fullscreen mode Exit fullscreen mode

getfacl

Para visualizar a acl:

$ getfacl strigus
Enter fullscreen mode Exit fullscreen mode

Referências

  1. LINUXtips - Tudo sobre permissões avançadas e ACL no Linux
  2. Guia Foca

Discussion (0)