Todos os processos começam a ser executados como o mesmo usuário e grupo (s) que o processo que os chama, a menos que sejam chamados através de um setuid ou executável setgid, ou seja, um que tenha rws
ou r-s
ou -ws
ou --s
em suas permissões. Os bits de permissão diferentes do s
bit são irrelevantes. O proprietário do executável só importa se o script é setuid (ou seja, tem o s
bit definido na coluna user), e o grupo proprietário importa apenas se o script for setgid (ou seja, tem o s
bit definido no grupo coluna.
A execução de um executável nativo requer permissão de execução e nada mais. A execução de um script (um programa que começa com #!
) requer a permissão de execução (para iniciar a execução, antes de o mecanismo #!
assumir) e a permissão de leitura (para o interpretador ler o script). Se você invocar o interpretador explicitamente, o script não precisa ser executável: no que diz respeito ao sistema, é apenas outro arquivo de dados.