ユーザーグループ間でNFSフォルダーを共有しています。クライアントのデフォルトのumaskは0700です。これは、新しく作成されたファイルが他のユーザーによって読み取り/書き込み可能にならないため、問題になります。
だから、私は ACLを使用してumask 0770を強制する 共有フォルダーで、これはサーバーでは問題なく機能しますが、クライアントでは機能しません。
server#getfacl /export/proyectos getfacl:Eliminando"/"inicial en nombres de ruta absolutos #file:export/proyectos #owner:root #group:root user :: rwx group :: rwx other :: rx default:user :: rwx default:group :: rwx default:mask :: rwx default:other :: rx server#getfacl/export/proyectos/innovacion getfacl:Eliminando"/"inicial en nombres de ruta absolutos #file:export/proyectos/innovacion #owner:root #group:proyecto-innovacion #flags:ss- user :: rwx group :: rwx mask :: rwx other :: --- default:user :: rwx default:group :: rwx default:mask :: rwx default:other :: ---
ご覧のとおり、デフォルト(および2番目のディレクトリに固有)のmask
ACLが適用されています。
共有全体をクライアントにマウントします。
172.16.54.56:/ proyectos typenfsの/ export/proyectos(rw、noatime、rsize = 131072、wsize = 131072、acregmin = 10、acl、nfsvers = 3、addr = 172.16.54.56)
しかし、mask
およびdefault:mask
ACLはなくなりました。
client $ getfacl/proyectos / getfacl:Eliminando"/"inicial en nombres de ruta absolutos #file:proyectos/ #owner:root #group:root user :: rwx group :: rwx other :: rx default:user :: rwx default :group :: rwx default:other :: rx client $ getfacl /proyectos/innovacion getfacl:Eliminando"/"inicial en nombres de ruta absolutos #ファイル:proyectos/innovacion #所有者:root #グループ:proyecto-innovacion #フラグ:ss- user :: rwx group :: rwx other :: --- default:user :: rwx default:group :: rwx default:other :: ---
default:mask
およびmask
ACLが不足しており、私が設定したのはACLだけです。したがって、umaskを適用するために提案されたソリューションは私には機能しません。なぜこれが起こっているのですか?
getfacl
やls
のようなユーティリティがACLが適用されていることを示している場合でも、ACLマスクはNFSでは期待どおりに機能しないようです。ファイル/ディレクトリ操作のサブセットの中には、マスクが適用されたかのように機能するものとそうでないものがあります。
このため、これらのファイルにその場でアクセスできたとしても、SFTPまたはSambaを介してフォルダーを提供すると、奇妙な結果になるか、アクセス許可がまったくなくなります。
現在、このACLを使用しています。これにより、すべてのファイルに正しいアクセス許可が付与されます。予想されることとは反対に、実行ビットは、ユーザーがそうする場合にのみ、デフォルトでは新しいファイルに適用されません。
ACL:
setfacl -d --set u::rwx,g::rwx,o::--- /export/proyectos
編集:ただし、これはcpまたはnautilusによってコピーされたファイルでは期待どおりに機能しません。 ACLが存在する場合でも、ユーザーumaskを適用するため、これは機能しません。