Ubuntu にはwww-dataとlabourという 2 人のユーザーがいて、どちらもグループchiaraに属しています。両方のユーザーができる
>chown :chiara some_file
>chgrp chiara some_file
私は使用するpythontest.py
スクリプトを持っています
import os
os.system('whoami') # displays 'www-data' in both cases
res = os.system('chown :chiara some_file')
print res # 0 when called from shell, 256 when called from php script
このスクリプトをいずれかのユーザーとして呼び出すと、正しく機能します。
ただし、Apacheのphpスクリプトからこのスクリプトを呼び出すと
shell_exec('test.py')
表示されたユーザーが「www-data」であるにもかかわらず、機能しません。「chmod」を「chgrp」に変更しても、この問題は解決しません。また、使用os.chown
しても機能しません。私には一般的な許可の問題のようです...
EDIT:Pythonでsubprocess.Popenを使用すると、エラーメッセージを取得できました
changing group of '/absolute/path/to/some_file': Operation not permitted
編集 2: 私はこの質問に降伏することを考えています...私の特定のアプリケーションでは、ディレクトリの「chmod 777」で十分です(それは機能します!)。ただし、何が悪かったのかを理解したいだけです。