Je pense que je comprends mal quelque chose ici. J'ai créé un fichier de test python simple pour voir comment les autorisations affectent l'utilisation des fichiers python. Je l’ai fait pour pouvoir répondre 64bit ubuntu 12.04 python ne peut pas exécuter un fichier python existant
J'ai créé un fichier test.py avec le contenu
print 'I am working'
ls -al test.py
-rw-r--r-- 1 joey joey 25 Dec 24 11:11 test.py
python test.py
I am working
chmod +x test.py
?chmod 400 test.py
ls -al test.py
-r-------- 1 joey joey 25 Dec 24 11:11 test.py
python test.py
I am working
Donc, apparemment, python n'a besoin que de l'autorisation de lecture pour exécuter mon fichier?
chmod 200 test.py
ls -al test.py
--w------- 1 joey joey 25 Dec 24 11:11 test.py
python test.py
python: can't open file 'testo.py': [Errno 13] Permission denied
Les autorisations d'écriture sont insuffisantes (et pour l'enregistrement, seules les autorisations exécutables sont également insuffisantes).
Oui, Python requiert uniquement la lecture du contenu du fichier. Rappelez-vous que Python est un langage interprété (comme PHP, Ruby, etc.) et traite simplement le contenu de ce fichier, plutôt que de l'exécuter. python
est l'exécutable ici!
Pour des informations de base appropriées; Notez que vous pouvez exécuter des scripts de deux manières:
L'appel de l'interprète avec le fichier en tant qu'entrée/argument ne nécessite aucune autorisation de lecture, par exemple:
python myscript.py
Exécutez le script par son Shebang ne nécessite le jeu de bits exécutable.
./myscript.py
Le Shebang (première ligne du fichier) ressemble alors à
#!/usr/bin/env python
"python n'a besoin que de permission de lecture" pour lire le contenu de votre fichier et traiter le code.
votre utilisateur peut exécuter python. alors python peut lire le fichier (sur 400). Si vous souhaitez exécuter un fichier directement tel que "./testo.py", vous devez disposer des autorisations d'exécution de votre fichier.