Leia, grave e execute!
Neste artigo abordarei as permissões no Linux, ou seja, como atribuir/retirar uma permissão, mudar o dono/grupo de um arquivo. Enfim, entender como este mecanismo funciona.
Parte 8: Atribuições especiais: Stick Bit, SGUID e SUID
Existem três permissões que dizemos ser especiais, sendo elas stick bit, SUID e SGUID.
Elas realmente possuem funções um pouco mais complexas, porém de fundamental importância. Saber se há um tipo destas em um arquivo, saber se implementar tal permissão ajudará será de fundamental importância em sua jornada Linux, então tentarei passar de um jeito bem simples para vocês.
# ls -ld /tmp
drwxrwxrwt 13 root root 320 2008-08-31 15:58 /tmp
Reparem que na permissão para outros (o) existe um (t) entre o (rwx), e sua finalidade é dizer que todos podem gravar, executar e ler, porém não podem apagar arquivos dos outros usuário, por isso o "botar ordem", ela não deixa que eu, usuário maran, vá la no /tmp e apague arquivos do usuário fabio.
A finalidade do SGUID é fazer com que, quando um arquivo/diretório for criado, herde a permissão do grupo do diretório.
Ou seja, um exemplo, eu quero que todos arquivos e diretórios que forem criados dentro de /home/maran/adm herdem a permissão do diretório adm.
Um exemplo disso é o diretório /var/log/news:
# ls -ld /var/log/news
drwxr-sr-x 2 news news 100 2008-08-31 12:52 /var/log/news
Um exemplo prático do uso desta permissão:
Digamos que um usuário seja responsável apenas por manter seu firewall rodando, ou seja, iniciar, parar, reiniciar o serviço e você não pode passar senha de root, o que você faz? Joga um SUID neste firewall. :)
Segue uma tabela de como atribuir.
Modo Octal:
Por letra:
Exemplos:
# chmod 1555 /home/maran/publico
# chmod o=rwxt /home/maran/publico
# chmod o+t /home/maran/publico
:)
Elas realmente possuem funções um pouco mais complexas, porém de fundamental importância. Saber se há um tipo destas em um arquivo, saber se implementar tal permissão ajudará será de fundamental importância em sua jornada Linux, então tentarei passar de um jeito bem simples para vocês.
Stick Bit
Esta é a permissão que coloca ordem em tudo, é representada pela letra (t) e sempre se encontrará no bloco outros (o). Mas como assim organizar tudo? Vamos a um exemplo, dê um:# ls -ld /tmp
drwxrwxrwt 13 root root 320 2008-08-31 15:58 /tmp
Reparem que na permissão para outros (o) existe um (t) entre o (rwx), e sua finalidade é dizer que todos podem gravar, executar e ler, porém não podem apagar arquivos dos outros usuário, por isso o "botar ordem", ela não deixa que eu, usuário maran, vá la no /tmp e apague arquivos do usuário fabio.
SGUID (Set Group ID)
Esta é uma permissão que sempre se encontrará no campo groups (g), e é representada pela letra (s), então já sabemos que esta permissão tratará de grupos de usuários.A finalidade do SGUID é fazer com que, quando um arquivo/diretório for criado, herde a permissão do grupo do diretório.
Ou seja, um exemplo, eu quero que todos arquivos e diretórios que forem criados dentro de /home/maran/adm herdem a permissão do diretório adm.
Um exemplo disso é o diretório /var/log/news:
# ls -ld /var/log/news
drwxr-sr-x 2 news news 100 2008-08-31 12:52 /var/log/news
SUID (Set User ID)
Esta permissão sempre trabalhará no campo do proprietário do arquivo (u) e esta é uma permissão que só trabalha com arquivos executáveis, ela serve para o propósito de um usuário comum poder executar aplicativos ou comandos de root ou do dono do arquivo. Esta permissão é caracterizada pela letra (s).Um exemplo prático do uso desta permissão:
Digamos que um usuário seja responsável apenas por manter seu firewall rodando, ou seja, iniciar, parar, reiniciar o serviço e você não pode passar senha de root, o que você faz? Joga um SUID neste firewall. :)
Segue uma tabela de como atribuir.
Modo Octal:
- Stick Bit = 1
- SGUID = 2
- SUID = 4
Por letra:
- Stick Bit = t
- SGUID = s
- SUID =
Exemplos:
# chmod 1555 /home/maran/publico
# chmod o=rwxt /home/maran/publico
# chmod o+t /home/maran/publico
:)
Abraço.