ローカルの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投稿を参照してください。
答え2
多くの助けを受けた後イガル、解決策を見つけました。私が望む最終結果は、fmserver
ユーザーが作成したファイルを特定の場所に配置することです。一時フォルダにfmserver
フォルダを書き込んだり移動したりすることはできません。chuck
ただし、両方のユーザーがグループのメンバーであるため、ターゲットstaff
フォルダを編集する権限が答えchmod g+w project-folder
です。