これらの権限の問題を解決するには?

これらの権限の問題を解決するには?

ローカルのMacにターミナルで使用できるコマンドラインユーティリティを提供するサービスがあります(サービスはFileMaker Serverであり、ユーティリティはですが、これは関係がfmsadminないと思います)。サーバープログラムをインストールすると、サーバープログラムを操作するfmserverユーザーが作成され、すべてがfmsadminそのユーザーの下にあるように見えます。サーバーまたはユーティリティで生成されたファイルはfmsadminこのグループの所有ですが、そのグループのメンバーではないように見えるので、wheelなぜそのグループがあるのか​​わかりません。fmserver

私が作成したいスクリプトは、fmsadminツールを使用して提供されたファイルの1つを一時フォルダにバックアップします。それは私が作業する必要があるすべてです。しかし、現在ログインしているユーザーが制御している別の場所にファイルを移動したいと思います。

もう1つ質問22.fmsadminファイルを目的の場所に書き込めず、自分のアカウントにファイルを移動する権限がないため、ファイルを目的の場所に移動できません。 Finderは手動でこれを行うことができますが、自分のアカウントのパスワードを入力する必要があります。

現在私の(Python)スクリプトはfmsadminファイルを/tmp/。したがって、バックアップコマンドを実行するとファイルがに配置されます。それぞれの結果/tmp/Databases/Subfolder/database.fmp12は次のとおりです。ls

drwxrwxr-x  3 fmserver  wheel  96     Nov 17 16:01 Databases/
drwxrwxr-x  3 fmserver  wheel  96     Nov 17 16:01 Subfolder/
-rw-rw-r--  1 fmserver  wheel  954368 Nov 17 16:10 database.fmp12

database.fmp12ファイルを次に移動したい/Users/chuck/project-name/

drwxr-xr-x    8 chuck  staff   256 Nov 17 16:09 project-name/

(Python)スクリプトでこれをどのように自動化できますか?現在の場所にファイルを移動しようとしたり、目的の場所にバックアップを保存しようとすると、権限エラーが発生します。私の目標は、私のシステムでこの問題を解決するだけでなく、他のユーザーのシステムでスクリプトが機能することです。

ベストアンサー1

あなたができることはいくつかあります。おそらく最も簡単な方法はグループchuckに追加することです。wheelうまくいかない理由はありますか?

または、所有者を/tmp/Databases/そのstaffグループに変更して設定することもできます。ディレクトリの setgid ビット、つまり:

sudo chown :staff '/tmp/Databases/'
sudo chmod g+s '/tmp/Databases/'

その後、そのディレクトリに作成された新しいファイルはすべてに属している必要がありますstaff。どちらの場合も、ユーザーが正しいumaskを持っていることを確認したいと思います。fmserver投稿した内容によるとそうです。この記事をチェックしてください:

launchctl以下を使用してOS Xでumaskを設定できるようです。

launchctl config fmserver umask 002

アクセス制御リストを使用する高度なオプションもあります。詳細については、次のAskDifferent投稿を参照してください。

おすすめ記事