ディレクトリdir1
がデスクトップ上のSudo
によって作成されたとします。
Sudo mkdir dir1
次に、次のようにchown
とchmod
を適用しました。
Sudo chown root:root dir1
Sudo chmod go-rwx dir1
dir1
は、所有者root
でのみアクセス可能になりました。
$ ls -ld dir1
drwx------ 2 root root 4096 Jul 29 19:21 dir1
ユーザー($USER
= pandya
)が、GUI nautilus(Sudo
なし)でdir1
を削除しようとした場合、できませんこれは問題ありません。
しかし、ターミナルで削除しようとした場合、彼はできません:-
rm -r
(Sudo
なし):
$ rm -r dir1
rm: descend into write-protected directory ‘dir1’? Y
rm: remove write-protected directory ‘dir1’? Y
$
そしてrmdir
を使えばもっと簡単に!(Sudoなし):
$ rmdir dir1
$
したがって、dir1
がSudo
?ではなくユーザーとともに削除されるのを防ぐ方法
[オプション]
私の最終的な目的は、所有者のみがディレクトリ、グループ、その他を削除/読み取り/実行できることです。
Class Stacker in his answer と言ったことは正しいが、問題は解決しなかった。親ディレクトリ(あなたの場合は/home/pandya
)に対するすべての権限を所有するユーザーがディレクトリを削除しないようにするには、chattr
コマンドを使用する必要があります。
以下に例を示します。
$ Sudo mkdir dir1
$ Sudo chattr +i dir1
$ rmdir dir1
rmdir: failed to remove ‘dir1’: Operation not permitted
$ rm -r dir1
rm: remove write-protected directory ‘dir1’? y
rm: cannot remove ‘dir1’: Operation not permitted
$ chattr -i dir1
chattr: Permission denied while setting flags on dir1
そして、ノーチラスでは:
詳細については、man chattr
をお読みください。
実際、ディレクトリは特別なファイルです。
ディレクトリ/home/user
では、全体(ファイルやディレクトリなど)を作成または削除する権利は、エントリの権利ではなく、/home/user
自体の権利によって決定されます。
あなたの場合、/home/user/fixed
などのサブディレクトリを提供し、その権限をr-x
に設定するのが最善です。その後、ユーザーはそこにファイルまたはディレクトリを作成または削除できなくなります。彼は、/home/user/fixed
内の個々のファイルとディレクトリの権限に基づいて、編集、降下などを行うことができます。