직장의 응용 프로그램에서 사용하는 매우 중요한 파일이 있는데, 파일이 삭제되지 않도록해야합니다. 어떻게해야합니까?
직장의 응용 프로그램에서 사용하는 매우 중요한 파일이 있는데, 파일이 삭제되지 않도록해야합니다. 어떻게해야합니까?
답변:
예, 파일의 속성을 읽기 전용으로 변경할 수 있습니다.
명령은 다음과 같습니다.
chattr +i filename
그리고 그것을 비활성화하려면 :
chattr -i filename
보낸 사람 man chattr
:
i
속성이 있는 파일은 수정할 수 없습니다. 파일을 삭제하거나 이름을 바꿀 수 없으며이 파일에 대한 링크를 만들 수 없으며 파일에 데이터를 쓸 수 없습니다. 수퍼 유저 또는CAP_LINUX_IMMUTABLE
기능을 소유 한 프로세스 만이 속성을 설정하거나 지울 수 있습니다.
chflags schg
CD에 굽습니다. CD를 CD-ROM 드라이브에 넣고 거기에서 액세스하십시오.
예:
# dd if=/dev/zero of=readonly.img bs=1024 count=1024
# mkfs.ext2 readonly.img
# mkdir readonlyfolder
# mount readonly.img readonlyfolder/
# echo "can't delete this" > readonlyfolder/permanent.txt
# umount readonlyfolder
# mount -o ro readonly.img readonlyfolder
# cat readonlyfolder/permanent.txt
can't delete this
# rm readonlyfolder/permanent.txt
rm: cannot remove `readonlyfolder/permanent.txt': Read-only file system
mount -o remount,rw readonlyfolder/ && rm readonlyfolder/permanent.txt
squashfs
이거나 사용할 수 있습니다 cramfs
. 파일 시스템을 빌드하려면 특별한 도구가 필요합니다.
리눅스는 소위있다 바인드 마운트 오히려 강력하고 유용한 기능입니다 옵션을 알고 :
% cd $TMP && mkdir usebindmountluke && cd usebindmountluke
% echo usebindmountluke > preciousfile
% sudo mount -B preciousfile preciousfile
% sudo mount -oremount,ro preciousfile
% echo sowhat > preciousfile
zsh: read-only file system: preciousfile
% rm preciousfile
rm: cannot remove ‘preciousfile’: Read-only file system
— 여기서 수행되는 작업은 바인드 마운트 파일 자체에 대한 것이며 (예, Linux에서 수행 할 수 있음) R / O 모드에서 다시 마운트됩니다. 물론 이것은 디렉토리에서도 가능합니다.
파일에 대한 여러 개의 하드 링크도 만들어야합니다. 일반 사용자가 액세스 할 수없는 다양한 위치에 있어야합니다.
이런 방식으로 채팅 보호 기능을 무시하더라도 데이터는 그대로 유지되므로 응용 프로그램이 찾고있는 위치에서 데이터를 쉽게 복원 할 수 있습니다.
Kevin의 답변에 대한 의견 에서 Jerry는 다음과 같이 언급합니다.
물론 파일이 정기적으로 백업되고 있기 때문에 루트 사용자 권한으로 상자에서 작업하는 사용자에 대한 또 다른 보호 계층을 원했습니다. –
이 연습은 정말 나쁜 아이디어이기 때문에 변경할 수 없다고 가정합니다.
읽기 전용 장치 사용에 대한 모든 제안은 같은 문제가 있습니다. 필요할 때 합법적으로 변경할 수있는 PITA입니다. SD 카드와 같은 잠금 가능한 드라이브의 경우 변경을 위해 잠금을 해제 할 때 갑자기 취약한 문제가 발생합니다.
대신에 다른 머신을 NFS 서버로 설정하고 중요한 파일이있는 디렉토리를 사용자가 루트가있는 머신에 공유하는 것이 좋습니다. 신뢰할 수없는 사용자가있는 시스템이 수정할 수 없도록 마운트를 읽기 전용으로 공유하십시오. 합법적으로 변경해야 할 경우 NFS 서버에 연결하여 변경할 수 있습니다.
우리는 이것을 웹 서버에 사용하므로 웹 서버를 성공적으로 악용하면 서버가 다시 제공하거나 구성을 변경할 파일을 삽입하거나 변경할 수 없습니다.
이것은 마운트 지점과 관련된 모든 마운트 포인트와 동일한 방식으로 스톨을 무시할 수 있습니다.
설계 상 읽기 전용 인 ISO 9660 이미지를 작성하지 않는 이유는 무엇입니까?
ISO 이미지를 마운트하면 CD-ROM처럼 보이지만 하드 드라이브의 성능에 따라 마운트 된 이미지의 파일은 실제 CD-ROM의 파일처럼 삭제되지 않습니다.
민감한 파일을 CD에 굽고 CD-ROM에서 실행한다는 아이디어는 흥미 롭습니다. 파일에서 불변 비트를 설정하는 것만으로는 충분하지 않다고 가정합니다.
성능을 포함하여 실제 CD에서 CD를 실행하면 부정적인 문제가 발생할 수 있습니다 (CD-ROM 드라이브는 하드 드라이브 나 SSD보다 훨씬 느립니다). CD-ROM이 잘 알려진 개인에 의해 제거되어 액세스해야하는 다른 디스크로 교체 될 가능성이 있습니다. 악의적 인 당사자가 디스크를 꺼내서 전자 레인지 (또는 휴지통)에 던져서 파일을 "삭제"할 가능성이 있습니다. 한 파일에 대한 전용 하드웨어 CD-ROM 드라이브와 다른 요인이 있어야하는 불편 함이 있습니다.
그러나 OP는 주요한 의도는 악의적 인 행위가 아닌 실수로 인한 삭제를 방지하고 사고가 발생할 경우 해당 파일을 백업하고 복구 할 수 있다는 점을 분명히 밝혔지만 파일이 실수로 삭제되었습니다.
탑재 된 ISO 이미지에서 파일을 실행하면 요구 사항을 충족하는 것 같습니다.
shred
그 시점에서 그것을 할 것 입니다. 그러나 머신에 대한 물리적 액세스를 거부하지 않는 한 ISO 파일을 마운트 해제하고 덮어 쓰는 것보다 드라이브에서 물리적 CD를 꺼내서 쓰레기 수거통에 넣는 것이 더 쉬운 것처럼 보입니다. 그리고 OP는 중요한 파일이 정기적으로 백업되므로 악의적 인 장난이 아닌 우발적 인 손상에 대한 추가 조치 일뿐이라고 발표했습니다.
chattr +i
도움이 될 수 있지만 파일을 읽기 전용으로 설정하고 (으로 재정의 할 수도 있음chattr -i
) SELInux 등으로 파일을 보호 할 수도 있습니다.