GNU/Linux >> Tutoriels Linux >  >> Linux

Un cas d'utilisation valide pour une autorisation de fichier "exécuter uniquement" ?

Je lisais sur chmod et ses modes octaux. J'ai vu que 1 est exécuté uniquement. Qu'est-ce qu'un cas d'utilisation valide pour une autorisation d'exécution uniquement ? Pour exécuter un fichier, il faut généralement une autorisation de lecture et d'exécution.

$ echo 'echo foo' > say_foo
$ chmod 100 ./say_foo
$ ./say_foo
bash: ./say_foo: Permission denied
$ chmod 500 ./say_foo
$ ./say_foo
foo

Réponse acceptée :

Scripts shell nécessitent l'autorisation de lecture pour être exécutés, mais les fichiers binaires ne pas :

$ cat hello.cpp
#include<iostream>

int main() {
    std::cout << "Hello, world!" << std::endl;
    return 0;
}
$ g++ -o hello hello.cpp
$ chmod 100 hello
$ ./hello
Hello, world!
$ file hello
hello: executable, regular file, no read permission

Afficher le contenu d'un fichier et l'exécuter sont deux choses différentes. Avec les scripts shell, ces choses sont liées car elles sont "exécutées" en les "lisant" dans un nouveau shell (ou l'actuel), si vous pardonnez la simplification. C'est pourquoi vous devez être capable de les lire. Les binaires n'utilisent pas ce mécanisme.

Pour les répertoires, la permission d'exécution est un peu différente; cela signifie que vous pouvez faire des choses sur les fichiers dans ce répertoire (par exemple, les lire ou les exécuter). Supposons que vous disposiez d'un ensemble d'outils dans /tools que vous voulez que les gens puissent utiliser, mais seulement s'ils les connaissent. chmod 711 /tools . Ensuite, des choses exécutables dans /tools peut être exécuté explicitement (par exemple, /tools/mytool ), mais ls /tools/ sera refusé. De même, les documents pourraient être stockés dans /private-docs qui pourra être lu si et seulement si les noms des fichiers sont connus.


Linux
  1. Comment utiliser Inotifywait pour surveiller un répertoire pour la création de fichiers d'une extension spécifique ?

  2. Linux - Autorisation de fichier Exécuter uniquement ?

  3. Comment trouver les valeurs valides pour le terme à utiliser dans Tmux ?

  4. Utiliser _roff pour souligner des mots ?

  5. Tableau des autorisations pour les types d'utilisateurs d'un fichier/répertoire et d'un système de fichiers

Comment utiliser CherryTree pour la prise de notes

Comment utiliser la commande SCP pour le transfert de fichiers

Comment utiliser Bluetooth sur Ubuntu pour le transfert de fichiers

Comment utiliser gzip sous Linux ?

Pourquoi rsync n'utilise-t-il pas delta-transfer pour les fichiers locaux ?

Est-ce une bonne idée d'utiliser git pour contrôler la version du fichier de configuration ?