Como posso definir o arquivo para ser executável apenas para outros usuários, mas não legível / gravável, a razão para isso estou executando algo com meu nome de usuário, mas não quero fornecer a senha. Eu tentei :
chmod 777 testfile
chmod a=x
chmod ugo+x
Ainda recebo permissão negada ao executar como outro usuário.
linux
security
permissions
executable
c0mrade
fonte
fonte
Respostas:
Você precisa de permissões de leitura e execução em um script para poder executá-lo. Se você não conseguir ler o conteúdo do script, também não poderá executá-lo.
fonte
Há meia verdade nas declarações anteriores. Você pode configurar um script para que não seja legível pelo usuário, mas ainda executável. O processo é um pouco demorado, mas é possível abrir uma exceção no / etc / sudoer, para que o usuário possa executar o script como você mesmo temporariamente sem ser solicitada uma senha. Exemplo abaixo:
Algum script que eu quero compartilhar com um usuário:
Crie um script de shell que chame 'somescript.pl' e salve-o em / bin /:
ETAPA OPCIONAL Crie um link simbólico para somescript.sh em / bin /:
Verifique se o script do shell é legível / executável para o usuário (sem acesso de gravação):
Faça uma exceção no / etc / sudoer adicionando estas linhas:
PROVA NO PUDIM:
Esse método deve ser melhor do que tentar ofuscar com
Filter::Crypto
ouPAR::Filter::Crypto
ouAcme::Bleach
que pode ser revertido por um determinado usuário. O mesmo vale para compilar seu script em binário. Deixe-me saber se você encontrar algo errado com este método. Para usuários mais avançados, convém remover completamente a seção User_Alias e substituir SCRIPTUSER por '% groupname'. Dessa forma, você pode gerenciar seus usuários de script com ousermod
comandofonte
Se você permitir que outros usuários executem um programa, eles poderão saber tudo o que o programa está fazendo, se o arquivo do programa é legível ou não. Tudo o que eles precisam fazer é apontar um depurador (ou um programa semelhante ao depurador
strace
). Um executável binário pode ser executado se for executável e não legível (um script não pode, porque o intérprete precisa ser capaz de ler o script), mas isso não oferece nenhuma segurança.Se você deseja que outras pessoas possam executar seu programa como uma caixa preta, sem permitir que eles vejam exatamente o que o programa está fazendo, você precisa conceder privilégios elevados ao seu script: torne-o definido para o usuário. Somente o root pode usar ferramentas de depuração em programas setuid. Observe que escrever programas seguros de setuid não é fácil e a maioria dos idiomas não é adequada; consulte Permitir setuid em scripts de shell para obter mais explicações. Se você estiver escrevendo um programa setuid, recomendo vivamente o Perl, que possui um modo (modo de contaminação) explicitamente destinado a tornar possíveis scripts seguros de setuid.
fonte
Você pode definir permissões de arquivo com o comando chmod. O usuário root e o proprietário do arquivo podem definir permissões de arquivo. O chmod possui dois modos, simbólico e numérico.
Primeiro, você decide se define permissões para o usuário (u), o grupo (g), outros (o) ou todos os três (a). Em seguida, adicione uma permissão (+), remova-a (-) ou limpe as permissões anteriores e adicione uma nova (=). Em seguida, você decide se define a permissão de leitura (r), permissão de gravação (w) ou executa a permissão (x). Por último, você dirá ao chmod quais permissões de arquivo você deseja alterar.
Aqui estão alguns exemplos.
Limpe todas as permissões, mas adicione permissão de leitura para todos:
Após o comando, as permissões do arquivo seriam -r - r - r--
Adicione permissões de execução para o grupo:
Agora, as permissões do arquivo seriam -r - r-xr--
Adicione permissões de gravação e execução para o proprietário do arquivo. Observe como você pode definir mais de uma permissão ao mesmo tempo:
Depois disso, as permissões do arquivo serão -rwxr-xr--
Remova a permissão de execução do proprietário e do grupo do arquivo. Observe, novamente, como você pode definir os dois ao mesmo tempo:
Agora, as permissões são -rw-r - r--
Esta é uma referência rápida para definir permissões de arquivo no modo simbólico:
fonte
chmod
. Isso não responde à pergunta.