Linux Flock 명령을 사용하여 다른 루트 프로세스가 파일을 삭제하는 것을 방지하려면 어떻게합니까?

StackOverflow https://stackoverflow.com/questions/1040828

문제

루트 프로세스 중 하나가 특정 파일을 삭제하는 것을 방지하고 싶습니다. 그래서 나는 플록 명령을 발견했지만 내 필요에 맞는 것 같지만 구문을 얻지 못했습니다.

공유 잠금 장치 만 표시하면 작동하지 않습니다.

flock -s "./file.xml"

타임 아웃 매개 변수를 추가해도 여전히 작동하지 않습니다.

flock -s -w5 "./file.xml"

그런 식으로 보이는 것 같습니다 flock [-sxun][-w #] fd# 방법. (이게 뭔가요 fd# 매개 변수?)

그래서 나는 시도했다 :

flock [-sxon][-w #] file [-c] command

사용 flock -s -w5 "./file.xml" -c "tail -3 ./file.xml" 그리고 그것은 ./file.xml의 Tail Command가 실행되었습니다.

그러나 알고 싶습니다. 명령 후 잠금이 종료됩니까? 내 주요 질문은 다른 루트 프로세스가 Linux에서 파일을 삭제하는 것을 어떻게 방지 할 수 있습니까?

도움이 되었습니까?

해결책

아니요, 플록은 아무도 아무것도하지 못하게합니다. UNIX 잠금 장치는 권고이며, 이는 다른 프로세스가 플록을 호출하는 것을 방지한다는 것을 의미합니다 (또는 공유 잠금 잠금 장치의 경우 다른 프로세스를 사용하여 다른 프로세스를 사용하지 않음).

루트 나 다른 사람이 파일을 읽거나 쓰거나 삭제하는 것을 멈추지 않습니다.

어쨌든 필수 잠금 장치 인 경우에도 파일이 디렉토리 항목이 아닌 파일이 잠겨 있으므로 파일이 삭제되는 것을 중지하지 않습니다.

다른 팁

sudo chattr +i ./file.xml

Markr은 올바른 것입니다. chattr'ing 파일은 삭제되지 않습니다.

-(~)-------------------------------------------------------------------------------------------------------(08:40 Mon Mar 29)
risk@DockMaster [2135] --> sudo chattr +i junk.txt
[sudo] password for risk: 
-(~)-------------------------------------------------------------------------------------------------------(08:40 Mon Mar 29)
risk@DockMaster [2136] --> sudo rm ./junk.txt 
rm: cannot remove `./junk.txt': Operation not permitted
zsh: exit 1     sudo rm ./junk.txt
-(~)-------------------------------------------------------------------------------------------------------(08:40 Mon Mar 29)
risk@DockMaster [2137] --> sudo rm -f ./junk.txt
rm: cannot remove `./junk.txt': Operation not permitted
zsh: exit 1     sudo rm -f ./junk.txt
-(~)-------------------------------------------------------------------------------------------------------(08:40 Mon Mar 29)
risk@DockMaster [2138] --> 

무리는이 작업에 적합한 도구가 아닙니다. 파일을 삭제하는 프로그램이있는 경우 해당 프로그램을 루트로 실행해서는 안됩니다. 다른 사용자로 실행해야합니다. UNIX는 파일 권한을 매우 잘 지원하지만 Root는 GOD 계정입니다. 루트는 모든 것을 할 수 있으며 루트에 대한 권한은 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top