7

ポストリンカーによって作成されたバイナリ ファイル (xFiles.bin.addr_patched) を使用する python スクリプトを実行しようとしています。ただし、このエラーが発生しています。

File "abc.py", line 74, in ParseCmd
shutil.copy(gOptions.inputX, gWorkingXFile)
File "/usr/lib/python2.6/shutil.py", line 89, in copy
copymode(src, dst)
File "/usr/lib/python2.6/shutil.py", line 66, in copymode
os.chmod(dst, mode)

OSError: [Errno 1] Operation not permitted: 'myPath/xFiles.bin.addr_patched'

このxFiles.binのパーミッションをls-lで確認したところ、

-rwxrwxrwx 1 nobody  nogroup 

このファイルが他のアプリケーションによって作成されたため、エラーが発生したと思われます。実行中のpythonスクリプトにはアクセスできません。私はubuntuの初心者なので、修正方法がよくわかりません。これを修正する方法について何か提案はありますか?

解決済み:

回答の1つとして提案された:chownユーザー名:グループ名ファイル名はこの問題を修正します

4

4 に答える 4

12

試すことができます(コマンドラインからですが、Pythonには構文があると確信しています):

sudo chown your_username:your_groupname filename

注: グループは通常、ユーザー名です。ただし、これらの権限に問題があるように感じます。全員の読み取り書き込み実行がオフになっているようです。このファイルはどのように作成されましたか? どのようにしてユーザーによって作成されましたnobodyか?

于 2012-06-07T18:39:23.347 に答える
3

パーミッションを変更する Python コード:

from getpwnam import pwd
from getgrnam import grp
import os

uid = getpwnam("YOUR_USERNAME")[2]
gid = grp.getgrnam("YOUR_GROUPNAME")[2]
os.chown("myPath/xFiles.bin.addr_patched", uid, gid)

でスクリプトを実行するsudoと完了です。

于 2012-06-07T18:49:20.900 に答える
1

myPath代わりに、フォルダーのアクセス許可を確認する必要があると思います。書き込みができないようですので、問題です。ls -l myPath/..の権限を確認してみてくださいmyPath。それが問題である場合は、フォルダのアクセス許可を で変更しますchmod

PS また、Linux ファイル権限に関する Google のトップ結果も参照してください。

于 2012-06-07T18:44:49.133 に答える