ユーザーが持っている可能性のある既存のアクセス許可を失うことなく、ディレクトリ上の特定のユーザーに再帰的に書き込みアクセス許可を付与したいと思います。このようなものを使用して、ユーザーに書き込み権限を与えることができると思います。
setfacl -R -m u:user:w dir/*
ただし、これに関する問題は、ユーザーがすでに持っている可能性のある既存のアクセス許可がすべて削除されることです。たとえば、ユーザーがsetfaclコマンドを実行する前に実行権限を持っていた場合、実行権限は書き込み権限に置き換えられます。
既存のアクセス許可を保持したまま、ユーザーに書き込みアクセス許可を与えるにはどうすればよいですか?
必要なのは「相対アクセス許可」と呼ばれる機能です。これは、基本的にchmod
で使用される従来の「+/-」構文を使用して 一部のsetfacl実装が提供する です。
ただし、少なくともRHEL7およびUbuntu 16.04 LTSでは、setfacl
はそのような機能を提供しませんnot。たとえば、setfacl -m user:root:+r /root/
のようなものは、setfacl: Option -m: Invalid argument near character 11
を示すエラーを返します。
setfacl
実装にこの機能がない場合は、次の2つの可能性があります。
getfacl
を使用してallすべてのACLをファイルに出力し、必要なアクセス許可に一致するようにそのようなファイルを編集してから、setfacl --restore
を使用してロード/適用します新しい権限。