As permissões especiais em Linux são permissões avançadas que podem ser definidas em ficheiros ou diretórios e fornecem capacidades ou restrições adicionais.
Permitem gerir os privilégios e a segurança do sistema de forma mais precisa do que os direitos de acesso normais (ler, escrever, executar). Além disso, os direitos de acesso especiais em Linux fornecem capacidades ou restrições especiais para um utilizador, grupo ou ficheiros. Estes incluem os seguintes direitos de acesso:
Direito de execução (execute
): executar arquivos executáveis ou usar um comando para realizar determinadas ações.Ler
: ver o conteúdo de um ficheiro ou diretório.Escrever
: Modificar o conteúdo de um ficheiro ou criar, modificar ou apagar ficheiros num diretório.Num sistema Linux, existem vários direitos de acesso a ficheiros e diretórios que determinam as acções que podem ser permitidas ou negadas a um determinado utilizador ou grupo de utilizadores. Seguem-se os principais direitos de acesso especiais para ficheiros em Linux:
"setuid
"(suid
): quando a permissão"setuid
" é definida num ficheiro executável, o processo é executado com os privilégios do proprietário do ficheiro em vez do utilizador que o executa. Isto fornece uma redefinição temporária de privilégios para certas tarefas."setgid
"(sgid
): quando a permissão"setgid
" é definida num ficheiro executável, o processo é iniciado com os privilégios do grupo do proprietário do ficheiro, e não do grupo do utilizador que o inicia. Isto permite a partilha de ficheiros e recursos entre membros do mesmo grupo."sticky bit
": a definição de um"sticky bit
" num diretório permite que apenas o proprietário do ficheiro apague ou mova ficheiros dentro do diretório, mesmo que outros utilizadores tenham privilégios de escrita no diretório. Isto é útil para a utilização geral de um diretório como /tmp para evitar que outros utilizadores apaguem ou modifiquem ficheiros.Normalmente, estas permissões especiais são especificadas juntamente com as permissões padrão (rwx) e são indicadas por valores simbólicos ou numéricos. Por exemplo, setuid
é indicado por um"s
" em vez de um"x
" para o proprietário de um ficheiro executável.
Se quiser definir ou alterar permissões especiais de ficheiros em Linux, pode utilizar o comando chmod com os argumentos apropriados. Por exemplo, paradefinir "setuid
" num ficheiro executável, pode utilizar o comando"chmod u+s filename
".
Os direitos de acesso especiais (SUID, SGID e Sticky bit) podem ser definidos em ficheiros ou diretórios utilizando o comando chmod
no Linux.
Para definir SUID:
chmod +s file_name
Para definir SGID numa diretoria:
chmod +s directory_name
Para instalar Sticky bit num diretório:
chmod +t derectory_name
Nota: Recomenda-se que a instalação de SUIDs em ficheiros seja restrita, uma vez que pode ser uma potencial ameaça à segurança do sistema. Use direitos de acesso especiais com cautela e apenas em situações em que isso seja bem justificado e não crie vulnerabilidades.
Você pode usar o comando `ls-l`
para ver os direitos especiais de acesso que foram definidos. As permissões, incluindo as permissões especiais, serão exibidas como valores alfabéticos ou numéricos após as permissões do arquivo ou diretório.