
특정 디렉토리에 대한 편집 권한을 갖고 싶지만 rm
실수로 권한을 얻고 싶지는 않습니다. rm -rf *
이전에 실수로 잘못된 디렉토리에 들어간 적이 있어서 이를 안전하게 증명하고 싶었습니다 .
읽기 전용으로 만들 수 있다는 것을 알고 있지만 여전히 편집할 수 있어야 하며 전체 디렉토리를 쉽게 삭제해서는 안 됩니다.
답변1
가장 좋은 해결책은 아마도 고정 비트를 설정하고 폴더가 다른 사용자가 소유하고 있지만(루트가 좋은 선택일 수 있음) 사용자가 편집할 수 있는지 확인하는 것입니다.
답변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_a
ctrl-a
esc-a
올바른 키보드 순서를 입력하면 프롬프트가 FROM:
File Name to Write: testfile
TO: 로 변경됩니다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
옵션과 세부정보는 리소스를 참조하세요 .