Linux-루트에서도 파일이 삭제되는 것을 방지 / 보호하는 방법이 있습니까? 프로그램에서 사용하는 매우 중요한 파일이

직장의 응용 프로그램에서 사용하는 매우 중요한 파일이 있는데, 파일이 삭제되지 않도록해야합니다. 어떻게해야합니까?



답변

예, 파일의 속성을 읽기 전용으로 변경할 수 있습니다.

명령은 다음과 같습니다.

chattr +i filename

그리고 그것을 비활성화하려면 :

chattr -i filename

보낸 사람 man chattr:

i속성이 있는 파일은 수정할 수 없습니다. 파일을 삭제하거나 이름을 바꿀 수 없으며이 파일에 대한 링크를 만들 수 없으며 파일에 데이터를 쓸 수 없습니다. 수퍼 유저 또는 CAP_LINUX_IMMUTABLE기능을 소유 한 프로세스 만이 속성을 설정하거나 지울 수 있습니다.


답변

CD에 굽습니다. CD를 CD-ROM 드라이브에 넣고 거기에서 액세스하십시오.


답변

  1. 파일 시스템 이미지를 작성하십시오.
  2. 이미지를 마운트하십시오.
  3. 파일을 마운트 된 이미지로 복사하십시오.
  4. 이미지를 마운트 해제하고 읽기 전용으로 다시 마운트하십시오.
  5. 이제 삭제할 수 없습니다.

예:

# 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


답변

리눅스는 소위있다 바인드 마운트 오히려 강력하고 유용한 기능입니다 옵션을 알고 :

%  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 모드에서 다시 마운트됩니다. 물론 이것은 디렉토리에서도 가능합니다.


답변

파일에 대한 여러 개의 하드 링크도 만들어야합니다. 일반 사용자가 액세스 할 수없는 다양한 위치에 있어야합니다.

이런 방식으로 채팅 보호 기능을 무시하더라도 데이터는 그대로 유지되므로 응용 프로그램이 찾고있는 위치에서 데이터를 쉽게 복원 할 수 있습니다.


답변

다른 사람들이 귀하의 질문에 답변했습니다. @Sven이 의견에서 언급했듯이 질문에 대한 일반적인 해결책은 “파일을 잃어 버리지 않도록 어떻게합니까?” 파일의 백업을 만드는 것입니다. 파일의 사본을 만들어 여러 곳에 저장하십시오. 또한 파일이 매우 중요하고 회사에 백업 서비스를 사용하여 중요한 데이터를 백업하기위한 정책이있는 경우이 파일을 서비스에 포함시킬 수 있습니다.


답변

Linux에서 불변 플래그는 파일 시스템의 일부 유형에서 지원 (같은 기본 것들의 대부분입니다 ext4, xfs, btrfs…)

지원되지 않는 파일 시스템에서 다른 옵션은 파일을 읽기 전용 모드로 바인드 마운트하는 것입니다. 두 단계로 수행해야합니다.

mount --bind file file
mount -o remount,bind,ro file

하지만 부팅 할 때마다 (예 :을 통해) 수행해야 /etc/fstab합니다.