SUID - Lpi 101 - 104.5 Controlar permissões e propriedades de arquivos. [RESOLVIDO]

1. SUID - Lpi 101 - 104.5 Controlar permissões e propriedades de arquivos. [RESOLVIDO]

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 21/05/2017 - 12:34h

Olá, revisando o assunto da LPI 101 encontrei algo que está me perturbando um pouco.
Estou usando como referência o livro "Certificação LPI-1" 4ª edição do Luciano Antonio Siqueira e o "Training Guide on Linux System Administration, LPI Level 1" da FOSSFA disponível neste link;
https://www.linuxcertification.co.za/sites/default/files/lpi-1-training-manual-0-3.pdf
(domínio ZA é da africa do sul, pode clicar)

Irei citar um trecho do livro do Luciano...pg 100
"Arquivos executáveis que possuam a permissão suid serão executados com as mesmas permissões do dono do arquivo e não com as permissões de quem os executou."
E um trecho do manual da FOSSFA...pg 129
"An executable can be assigned a special permission which will always make it run as the owner of this file. This permission is called SUID meaning 'set user ID'. It has a symbolic value s or a numerical value 4000."

Com base nisso entendo que ao colocar a permissão 4755 em um arquivo, o mesmo será executado com os privilégios do proprietário. Então fui colocar a prova.
Criei um arquivo root.txt com a permissão 664 e pertencendo ao root.
-rw-rw-r-- 1 root    root      57 May 21 12:04 root.txt 

Criei um script com a permissão 4755
-rwsr-xr-x 1 root    root      47 May 21 10:46 script.sh 

Com as seguintes funções
#!/bin/bash
echo $USER
echo "ola" >> root.txt


Ao executar o script com meu usuário comum, o script deveria ser executado com os privilégios do proprietário (root) e conseguir escrever no arquivo root.txt. Mas não funciona =/.
root@X550LN:/media/patrick/HDD/Cursos/LPIC 1/lab# chmod 4755 script.sh 
root@X550LN:/media/patrick/HDD/Cursos/LPIC 1/lab# ls -lha
total 32K
drwxrwxr-x 2 patrick patrick 20K May 21 10:46 .
drwxrwxr-x 9 patrick patrick 4.0K May 21 10:21 ..
-rw-rw-r-- 1 root root 57 May 21 12:04 root.txt
-rwsr-xr-x 1 root root 47 May 21 10:46 script.sh
root@X550LN:/media/patrick/HDD/Cursos/LPIC 1/lab# exit
patrick@X550LN:/media/patrick/HDD/Cursos/LPIC 1/lab$ ./script.sh
patrick
./script.sh: line 3: root.txt: Permission denied
patrick@X550LN:/media/patrick/HDD/Cursos/LPIC 1/lab$


Essa é a minha dúvida, não deveria funcionar? Quase como um sudo ou runas (windows)?

Fiz outros testes como dar a permissão 4755 pro binário /bin/cat e obtive exito ao ler arquivos que a principio só possuem permissão de leitura para o root com um usuário comum. Ai pensei, será que funciona apenas com binários e não com scripts? Fiz um teste colocando a permissão 4755 no systemctl, entretanto dessa vez não consegui executar os recursos do systemctl com um usuário comum como ocorreu com o binário cat.

patrick@debian:~$ which systemctl 
/bin/systemctl
patrick@debian:~$ ls -lha /bin/systemctl
-rwsr-xr-x 1 root root 527K Mar 12 2016 /bin/systemctl
patrick@debian:~$ systemctl stop ssh
Failed to stop ssh.service: Operation not permitted
Failed to get load state of ssh.service: Operation not permitted
patrick@debian:~$



  


2. Re: SUID - Lpi 101 - 104.5 Controlar permissões e propriedades de arquivos.

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/05/2017 - 13:51h

Boa tarde.

O comando systemctl não é um binário. execute o comando a seguir e comprove.

file $(which systemctl) 



3. Re: SUID - Lpi 101 - 104.5 Controlar permissões e propriedades de arquivos. [RESOLVIDO]

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 21/05/2017 - 17:45h

Obrigado pela dica. Então, e aew? Tem alguma ideia?


Em alguns materiais mencionam por exemplo a necessidade do comando passwd ter esse tipo de privilégio de execução por causa do arquivo /etc/shadow (o livro do Luciano fala do arquivo /etc/passwd que eu acredito que deva ser um erro do autor). Como o arquivo /etc/shadow só pode ser editado pelo Root, então o comando passwd precisa ser executado com o SUID. Então analisando o arquivo /usr/bin/passwd com o comando file, vejo que é do mesmo tipo que o arquivo /bin/systemctl, uma biblioteca compartilhada. Sabe me dizer o motivo de funcionar com o passwd e não com o systemctl e com o exemplo do Script que montei?




4. Re: SUID - Lpi 101 - 104.5 Controlar permissões e propriedades de arquivos. [RESOLVIDO]





Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts