1 votes

Pourquoi puis-je exécuter sans permissions de lecture?

Pourquoi puis-je exécuter des programmes sans les lire?

$ echo 'echo "foo"' > test && chmod 100 test && ./test
foo

3voto

Joe the Person Points 5090

Je pense que votre commande de test et votre cas mentionnés ne fonctionneront que sous root (superutilisateur), d'après mes tests avec exactement la même commande sur ma boîte Ubuntu Trusty.

Ceci est un compte non privilégié :

[teward /home/teward/tmp/]% echo 'echo "foo"' > test && chmod 100 test && ./test
zsh: permission denied: ./test

Ceci est en tant que root :

[god /home/teward/tmp/]# echo 'echo "foo"' > test && chmod 100 test && ./test
foo

(En ce qui concerne god sur mon invite root : j'ai root et mon utilisateur utilise zsh comme shell de connexion. Mon PS1 pour ZSH remplace 'root' par 'god' pour l'utilisateur root sur mon système, mais c'est toujours 'root'. Le niveau de privilège est indiqué par le caractère à droite du crochet de fermeture - le # indique root, et % indique l'utilisateur standard, c'est ainsi que vous savez le niveau de privilège)

Je pense que ceci est dû au fait que 'root' est considéré comme un dieu et peut quasiment tout faire. Vérifiez bien l'utilisateur que vous utilisez.

1voto

Matt Points 566

Parce que votre shell doit lire le fichier pour savoir quoi exécuter. Si vous supprimez l'accès en lecture, il ne peut pas le lire et ne sait donc pas ce que vous voulez exécuter.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X