フォルダの削除やフォルダ名の変更を防ぐ方法です。しかし、まだファイルを追加できますか?

フォルダの削除やフォルダ名の変更を防ぐ方法です。しかし、まだファイルを追加できますか?

Ubuntu VPSを使用してオンラインで人々と共有ディスクを作成したいと思います。そのため、タイトルのようにフォルダを削除できず、フォルダ名を変更できないようにしたいと思います。ただし、ファイルを追加することはできます(ファイルを追加するだけで、ファイルを変更したりファイル初期化を削除できない場合はより良いでしょう)。

私はchmodとchatrの方法を試しましたが、どちらも私の要件に100%適しているようではありません。

私の英語力が足りないので、ご迷惑をおかけして申し訳ありません。

答え1

/tmp/some/pathたとえば、見てみましょう。ルート/tmp/someとして作成し、誰もが書くことができるように/tmp/some/path権限を変更します。/tmp/some/path

merlin@uc-s4m75657:~$ sudo mkdir -p /tmp/some/path
merlin@uc-s4m75657:~$ sudo chmod 0777 /tmp/some/path
merlin@uc-s4m75657:~$ ls -l /tmp/some/
итого 4
drwxrwxrwx 2 root root 4096 июл 28 11:17 path
merlin@uc-s4m75657:~$ ls -l /tmp/some/path/
итого 0
merlin@uc-s4m75657:~$ rm -rf /tmp/some/path
rm: невозможно удалить '/tmp/some/path': Отказано в доступе

(私のロケールはロシア語です。「итого」は「全体」を意味し、「Отказано в доступе」は「アクセス拒否」を意味します)

それはすべてです。確認してみましょう。すべてがルートの所有であるため、一般ユーザーは何もできません/tmp/some名前の変更または削除を含める/tmp/some/pathpath、ディレクトリエントリなので、/tmp/someこのユーザーは読み取りおよびリスト以外のアクセス権を持っていません。

ただし、ユーザーに/tmp/some/path権限が付与されているため、以下のプロジェクトを作成できます。

merlin@uc-s4m75657:~$ mkdir /tmp/some/path/1
merlin@uc-s4m75657:~$ touch /tmp/some/path/2
merlin@uc-s4m75657:~$ ls -la /tmp/some/path
итого 12
drwxrwxrwx 3 root   root   4096 июл 28 11:18 .
drwxr-xr-x 3 root   root   4096 июл 28 11:17 ..
drwxr-xr-x 2 merlin merlin 4096 июл 28 11:18 1
-rw-r--r-- 1 merlin merlin    0 июл 28 11:18 2
merlin@uc-s4m75657:~$ mv /tmp/some/path/1 /tmp/some/path/3
merlin@uc-s4m75657:~$ ls -la /tmp/some/path
итого 12
drwxrwxrwx 3 root   root   4096 июл 28 11:19 .
drwxr-xr-x 3 root   root   4096 июл 28 11:17 ..
-rw-r--r-- 1 merlin merlin    0 июл 28 11:18 2
drwxr-xr-x 2 merlin merlin 4096 июл 28 11:18 3

残念ながら、Linuxファイルシステムのオブジェクトに対して異なる作成、名前変更、および削除権限を実際に設定することはできません。実際、これはPOSIX ACLを使用しようとしてもすべてのPOSIX互換ファイルシステムの属性です。オブジェクトを作成したユーザーはその所有者になり、/tmp/some/pathディレクトリに書き込む権限がある場合はすべての操作を実行できます。既存の Unix モードと POSIX ACL では、生成、削除、名前変更は単一のフラグで制御されます。

したがって、Linuxではプロジェクトの作成を許可しますが、後続の削除を防ぐことはできません。これは、POSIX標準が完全に不都合な数少ない場所の1つであり、Windowsにはより一般的な権限システムがあります。

答え2

これ難しいLinuxの権限はあなたのためのソリューションです。これにより、フォルダの内容(ファイル、サブフォルダ)がフォルダに固定され、その所有者またはルートディレクトリのみを削除または名前変更できます。

フォルダに適用する方法は次のとおりです。/tmp/some/path

$ chmod +t /tmp/some/path

これにより、他のrwx権限が増加します。

関連情報