우분투 VPS를 사용하여 온라인으로 사람들과 공유 디스크를 만들고 싶습니다. 그래서 제목처럼 폴더를 삭제할 수 없고 폴더 이름을 수정할 수 없도록 만들고 싶습니다. 그러나 여전히 파일을 추가할 수 있습니다(파일을 추가할 수만 있고 파일을 수정하거나 파일 초기화를 삭제할 수 없다면 더 좋을 것입니다).
나는 chmod 및 chattr 방법을 시도했지만 둘 다 내 요구 사항에 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/path
path
, 디렉토리 항목 이므로 /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 표준이 완전히 형편없는 몇 안 되는 곳 중 하나이며 Windows에는 보다 일반적인 권한 시스템이 있습니다.
답변2
이것어려운Linux의 권한은 귀하를 위한 솔루션입니다. 이렇게 하면 폴더 내용(파일, 하위 폴더)이 폴더에 고정되고 해당 소유자 또는 루트 디렉터리만 삭제하거나 이름을 바꿀 수 있습니다.
폴더에 적용하는 방법은 다음과 같습니다./tmp/some/path
$ chmod +t /tmp/some/path
이렇게 하면 다른 rwx 권한이 증가합니다.