디렉토리를 읽기 전용으로 만들지 않고 디렉토리가 삭제되는 것을 방지할 수 있습니까?

디렉토리를 읽기 전용으로 만들지 않고 디렉토리가 삭제되는 것을 방지할 수 있습니까?

특정 디렉토리에 대한 편집 권한을 갖고 싶지만 rm실수로 권한을 얻고 싶지는 않습니다. rm -rf *이전에 실수로 잘못된 디렉토리에 들어간 적이 있어서 이를 안전하게 증명하고 싶었습니다 .

읽기 전용으로 만들 수 있다는 것을 알고 있지만 여전히 편집할 수 있어야 하며 전체 디렉토리를 쉽게 삭제해서는 안 됩니다.

답변1

가장 좋은 해결책은 아마도 고정 비트를 설정하고 폴더가 다른 사용자가 소유하고 있지만(루트가 좋은 선택일 수 있음) 사용자가 편집할 수 있는지 확인하는 것입니다.

https://www.cbtnuggets.com/blog/technology/system-admin/linux-file-permissions-understanding-setuid-setgid-and-the-sticky-bit

답변2

당신은 변경할 수 있습니다파일 속성방지(삭제)하려는 rm파일의 s(플래그)입니다 . 예를 들어 , 생성 하고 실험하기 testfile위해 실제 파일을 복사하고 싶을 수도 있습니다 .testfile

$ cp realfile testfile 
$ ls -l testfile
-rw-r--r-- 1 pi pi 14 Oct 17 07:10 testfile
$

설정추가 속성존재하다 testfile. 이 모드를 사용하면 데이터를 추가(추가)할 수 있지만 testfile삭제( rm)는 불가능하고 파일의 기존 데이터는 변경되지 않습니다.

$ sudo chattr =a testfile 
$ ls -l testfile
-rw-r--r-- 1 pi pi 14 Oct 17 07:10 testfile 

#   note testfile permissions unchanged
#   try to delete (rm)...

$ rm testfile
rm: cannot remove 'testfile': Operation not permitted 
$ sudo rm testfile 
rm: cannot remove 'testfile': Operation not permitted 

에디터에서 열어보면 testfile변경(추가, 삭제)은 가능하지만 testfile파일명으로 저장할 수는 없다는 것을 알 수 있습니다. 그러나 우리는 편집기를추가 모드, 원하는 대로 추가하고 해당 testfile이름으로 저장합니다.

nano편집기를 예로 들어 열고 몇 testfile줄의 텍스트를 추가합니다.

  • 시작을 사용 ctrl-X하여 종료한 다음 "Y"를 사용하여 파일 저장을 확인합니다.

  • 메시지가 표시되면 File Name to Write: testfile키보드에서 옵션을 입력합니다(키보드에 따라 , 또는 가 될 수 있지만 명확한 지침은 man nano를 참조하세요).M_actrl-aesc-a

  • 올바른 키보드 순서를 입력하면 프롬프트가 FROM: File Name to Write: testfileTO: 로 변경됩니다 File Name to Append to: testfile. 이 키를 누르면 enter추가 작업이 성공적으로 완료됩니다.

  • cat testfile- 또는 다른 방법 으로 성공적으로 첨부되었는지 확인하세요 .

  • 도착하다추가 속성 삭제

$ sudo chattr -a testfile 
$ rm testfile
$
# testfile is deleted as its immunity is gone :) 
#
# of course the file can also be "fully edited" upon removal of the append attribute;
# just make your edits & then restore the append attribute, or use the -i attribute

man chattr옵션과 세부정보는 리소스를 참조하세요 .

관련 정보