Sua pergunta ainda é .
-
Se você quiser "impedir que um aplicativo instalado seja usado por outros usuários ”(além de você e
root
), apenas proteja 700 (ou 500), como diz a resposta de Jarmund. Isso não vai pararroot
, mas você diz: "Se o usuário root [o quebrar], isso não importa." Não estou claro sobre sua posição em relação a "outros usuários". Você diz: "Eu quero impedir que outros usuários ... de usar um aplicativo que eu instalei. ”Isso significa- Você não quer que ninguém mais consiga executar o programa. Tudo bem se isso for imposto por uma senha (que ninguém além de você saberia).
- Você deseja selecionar outros usuários para poder executar o programa. Você está autorizado a autorizar os usuários selecionados informando a senha.
- Você deseja selecionar outros usuários para poder executar o programa. Você deseja especificamente autorizar os usuários selecionados dizendo-lhes uma senha.
?
Se é a primeira bala, provavelmente é mais fácil apenas
chmod
do executável e conviver com o fato de queroot
será capaz para ignorar essa proteção. -
Se esse for o segundo marcador, verifique se seu sistema tem ACLs. Em caso afirmativo, configure uma lista de controle de acesso que permite que apenas os usuários escolhidos executem o arquivo. Claro que isso não vai parar
root
. -
Se esse for o terceiro marcador, você deseja usar uma senha (ou se negar acesso a
root
é realmente importante para você) - criptografia é o caminho a percorrer. Criptografe seu executável com uma senha excluir o programa não criptografado do sistema, e diga a senha para seus amigos.Por exemplo, se o seu programa é chamado
myprog
, você poderia fazeropenssl aes-256-cbc -e -in myprog -out mycode
que lhe pedirá uma senha de criptografia (duas vezes) e depois escreva uma cópia criptografada do seu programa para
mycode
. (Você pode deixar de fora o-e
(criptografar); é o padrão.) Você poderia então escrever um script como este:#!/bin/sh clear_prog=$(mktemp) chmod 700 "$clear_prog" openssl aes-256-cbc -d -in /path/to/mycode -out "$clear_prog" "$clear_prog" "$@" rm "$clear_prog"
(usando
-d
para descriptografar.) Ainda há um risco de queroot
poderia fazer uma cópia do seu programa quando alguém decifrá-lo.