4

Mac OS Xで実行しようとしているコードは次のとおりです。

import getpass #Needed for fetching username
import shutil #Needed for moving Files
import os
var_username = getpass.getuser() #gets username and returns as variable
source_file = r"/Users/%s//Downloads/LogNLock/com.lognlock.loginhook.plist" %(var_username) #the destination of the source file
destination = r"/Library/LaunchAgents" #the target destination for the file to go
shutil.copy(source_file, destination) #moves the source file to the destination folder

そして、私はグーグルで検索しましたが、なぜそれが機能しないのかわかりません。背景情報: たとえば、ファイルをデスクトップからドキュメントに移動するときに機能しますが、どうにかして root ユーザー権限が必要だと思います。現在、管理者アカウントにいます。

4

1 に答える 1

13

ファイルをコピーしようとしているフォルダーのアクセス許可は、スクリプトを実行しているユーザーとしてこの操作を実行するのに十分なほど開いていません。これは実際にはPythonの問題ではありません。ユーザーにそのフォルダーへの書き込み権限を付与するか、rootとしてスクリプトを実行する必要があります。

スクリプトをrootとして実行するには:

sudo python your_python_script.py

それを機能させるには、管理者ユーザーである必要があると思います。「sudo」は、「スーパーユーザーとしてこれを行う」という意味のコマンドです。

フォルダの権限を変更するには、次のことを試してください。

sudo chmod a+rw /path/to/folder/that/you/want/to/write/to

繰り返しますが、これはスーパーユーザーとして実行します。chmodは、ファイルまたはディレクトリのアクセス許可を変更するコマンドです。'a + rw'は、'すべてのユーザーに読み取り/書き込み権限を与えると解釈されます。これは悪い考えかもしれません...しかし、あなたはこれをあなたのマシン上でローカルに実行しているように思えます。

于 2012-06-20T22:51:10.540 に答える