다음 위치에 디렉터리가 있다고 가정해 보겠습니다.
/tmp/uploads/
이전에 다른 사용자가 만든 여러 재귀 디렉터리와 파일이 있습니다.
이제 갑자기 위의 디렉토리를 어떻게 만들 수 있습니까?루트로만 쓸 수 있습니다.?
즉, 기존 사용자가 무엇이든 갑자기 쓸 수 없게 됩니다(읽기만 가능). 그러면 계속해서 글을 쓸 수 밖에 없습니다 root
.
원래 소유권을 잃지 않는 것이 매우 중요합니다.(누가 무엇을 소유하고 있는가)안에 뭔가.
결국 이것은 보안상의 이유로 디렉토리를 잠그려고 한다는 의미이기도 합니다.
감사해요.
답변1
사용 속성:
chattr -R +i files
(루트로서) +i
폴더와 파일에 속성을 재귀적으로 추가하므로 변경이 방지됩니다. 루트도 잠기므로 i
매번 수동으로 설정을 해제해야 합니다. 소유권 등은 변경되지 않습니다.
답변2
먼저 사용자와 그룹을 루트로 변경하십시오.
chown -R root:root /tmp/uploads
그런 다음 루트만 쓸 수 있도록 권한을 변경합니다.
chmod -R 755 /tmp/uploads
편집하다:
파일 소유자만 복원해야 한다면 파일과 소유자를 하나의 파일에 저장하겠습니다(물론 더 좋은 방법도 있지만 이것이 제가 먼저 생각하는 것입니다). 다음 명령을 실행하기 전에 /tmp/old_file_owners가 존재하지 않는지 확인하십시오.
for i in $(find /tmp/uploads);do ls -ld $i|awk -vf=$i '{if (NF==9) {print $3 ":" $4 " " f}}'>>/tmp/old_file_owners; done
파일 소유자를 복원하려면 다음을 수행하십시오.
IFS=$'\n';for i in $(cat /tmp/old_file_owners);do chown $i;done
원래 파일 권한을 유지하려면 파일에 더 많은 정보를 저장해야 하지만 이전 정보를 참조로 사용하여 유사한 작업을 수행할 수 있습니다.