Python モジュールを使用してディレクトリを作成しています。一部の種類のディレクトリでは、特定の制限付きアクセス許可を設定する必要があります。モジュールはスクリプトを通じて使用されます。スクリプトは、ユーザーまたはサーバー (root として) によって実行できます。
ディレクトリを作成し、その権限を変更して、十分な権限がないために OSError 例外をキャッチしようとする状況を回避したいと考えています。混乱が発生した後にそれを片付けようとする代わりに、最初から問題を防ぐ方が、アプリケーションにとってはるかに堅牢になります。実際に使用する前に、スクリプトを実行しているユーザーがグループ権限を持っているかどうかを判断する方法があることを願っています。
「通常の」ユーザーの場合、次のようなことができます。
OS のインポート 輸入グループ mygroups = [os.getgroups() 内の x の grp.getgrgid(x).gr_name]
次に、必要なグループが mygroups に含まれていない場合は、正常に終了できます。
しかし、これは root ユーザーには機能しません。root ユーザーには権限がありますが、問題のグループのメンバーではない可能性があります。root 以外の例外があるかどうかはよくわからないので、単純に root ユーザー ID だけを対象とする例外を書くのは躊躇します。
Python 2.x で、現在のユーザーが特定のグループ権限を持っているかどうか (ディレクトリのアクセス権限と所有権を変更するため) を実際に使用しようとする (OSError をスローする) ことなく確認する堅牢な方法はありますか?