web-dev-qa-db-ja.com

ユーザーがディレクトリを削除しないようにするにはどうすればよいですか?

ディレクトリdir1がデスクトップ上のSudoによって作成されたとします。

Sudo mkdir dir1

次に、次のようにchownchmodを適用しました。

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を削除しようとした場合、できませんこれは問題ありません

enter image description here

しかし、ターミナルで削除しようとした場合、彼はできません:-

  • rm -rSudoなし):

     $ rm -r dir1
     rm: descend into write-protected directory ‘dir1’? Y
     rm: remove write-protected directory ‘dir1’? Y
     $
    
  • そしてrmdirを使えばもっと簡単に!(Sudoなし):

    $ rmdir dir1
    $ 
    

したがって、dir1Sudo?ではなくユーザーとともに削除されるのを防ぐ方法

[オプション]
私の最終的な目的は、所有者のみがディレクトリ、グループ、その他を削除/読み取り/実行できることです。

4
Pandya

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

そして、ノーチラスでは:

enter image description here

詳細については、man chattrをお読みください。

5
Radu Rădeanu

実際、ディレクトリは特別なファイルです。

ディレクトリ/home/userでは、全体(ファイルやディレクトリなど)を作成または削除する権利は、エントリの権利ではなく、/home/user自体の権利によって決定されます。

あなたの場合、/home/user/fixedなどのサブディレクトリを提供し、その権限をr-xに設定するのが最善です。その後、ユーザーはそこにファイルまたはディレクトリを作成または削除できなくなります。彼は、/home/user/fixed内の個々のファイルとディレクトリの権限に基づいて、編集、降下などを行うことができます。

2
Run CMD