次の行があります/etc/fstab
(//freenas/share/
Samba共有であり、Samba共有ユーザーはコンテンツを変更するためのACL権限を持っています)。
//freenas/share /run/media/myname/freenas/share cifs _netdev,credentials=/home/myname/.smbcredentials,iocharset=utf8,perm,uid=myname,gid=myname,setuids 0 0
ディレクトリ/run/media/myname/freenas/share/test_dir/
とファイルを作成し、/run/media/myname/freenas/share/test_dir/test_file
ディレクトリとファイルを読み取り専用にしました。
chmod a-w test_dir
chmod a-w test_dir/test_file
ファイルを編集しようとすると、nano test_dir/test_file
変更を保存できません。ファイル()を削除しようとすると、rm test_dir/test_file
読み取り専用ファイルを削除するかどうかを尋ねるメッセージが表示され、を入力してyes
Enterキーを押すとファイルが削除されます。
保護されたディレクトリ('rm -rf test_dir /')を削除しようとすると機能しません。rm: cannot remove 'test_dir/test_file': Permission denied
ディレクトリが空の場合も同様ですrm: cannot remove 'test_dir/': Permission denied
。
ある時点でtouch: cannot touch 'test_dir/test_file': Permission denied
新しいファイルを作成しようとした後も同様でした。ただし、この動作を再現することはできません。これで、自分が持っている権限とディレクトリに既に存在するファイルに関係なく、新しいファイルを作成できます。
編集:サーバーでユーザーがa
共有を変更できるようにACLを構成しました。クライアントコンピュータ(つまり、私が説明したすべてを試したコンピュータ)で、私は名前のローカルユーザーとしてログインしmyname
(Samba共有をマウントするために使用した)、次のように~/.smbcredentials
設定しましたpassword=1234
。1234
私はパスワードユーザーa
)とuser=a
.fstab
行に次のパラメータを追加することでposix権限を適用できると思いました。perm,uid=myname,gid=myname,setuids
クライアントコンピュータでローカルに権限を編集し、ローカルに適用するためです。
親ディレクトリが読み取り専用の場合にファイルを削除できないようにコンテンツを構成するにはどうすればよいですか?