web-dev-qa-db-ja.com

NFSv3 + ACL:クライアントでマスクがなくなりました

ユーザーグループ間で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番目のディレクトリに固有)のmaskACLが適用されています。

共有全体をクライアントにマウントします。

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:maskACLはなくなりました。

 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を適用するために提案されたソリューションは私には機能しません。なぜこれが起こっているのですか?

getfacllsのようなユーティリティがACLが適用されていることを示している場合でも、ACLマスクはNFSでは期待どおりに機能しないようです。ファイル/ディレクトリ操作のサブセットの中には、マスクが適用されたかのように機能するものとそうでないものがあります。

このため、これらのファイルにその場でアクセスできたとしても、SFTPまたはSambaを介してフォルダーを提供すると、奇妙な結果になるか、アクセス許可がまったくなくなります。

現在、このACLを使用しています。これにより、すべてのファイルに正しいアクセス許可が付与されます。予想されることとは反対に、実行ビットは、ユーザーがそうする場合にのみ、デフォルトでは新しいファイルに適用されません。

ACL:

setfacl -d --set u::rwx,g::rwx,o::--- /export/proyectos

編集:ただし、これはcpまたはnautilusによってコピーされたファイルでは期待どおりに機能しません。 ACLが存在する場合でも、ユーザーumaskを適用するため、これは機能しません。