저는 Linux에 대한 경험이 많지 않아서 크고 큰 실수를 저질렀습니다. 다음 명령을 실행했습니다.
chown -R [ftpusername]:[ftpusername] /
나는 원래 이것을 실행하고 싶었습니다.
chown -R [ftpusername]:[ftpusername] ./
문제가 보이나요?
모든 파일의 소유자를 다음으로 변경하여 실수를 바로잡으려고 했습니다 root
.
chown -R root:root /
이제 내 사이트에 액세스하려고 할 때 권한 오류가 발생하지만 가장 큰 관심사는 여기에 보안 허점이 생기지 않는지 확인하고 싶다는 것입니다.
질문:
- 모든 것의 소유권을 바꾸는 것이
root
옳은 일인가요? chown
실행으로 인해 일부 폴더 및 파일 권한이 변경된 것 같습니다 . 이게 정상인가요? 이로 인해 보안 취약점이 발생합니까?
답변1
뿌리 뽑기 위해 모든 것의 소유권을 바꾸는 것이 옳은 일입니까?
아니요. 그러나 이것이 시스템을 정상으로 되돌리는 가장 빠른 방법이라고 생각합니다.
- 사용자가 특정 디렉터리/파일을 소유해야 하는 프로세스가 많이 있습니다. 예로는 로그, 캐시, 특정 프로세스(예: MySQL, LightDM 등)의 작업/홈 디렉터리가 있습니다. 특히 로그 파일은 많은 문제를 일으킬 수 있습니다.
- 일부 응용 프로그램은
setuid
/setgid
이므로 소유자/그룹을 구체적으로 지정해야 합니다. 등이 그 예이다/usr/bin/at
./usr/bin/crontab
chown을 실행하면 일부 폴더 및 파일 권한이 변경된 것 같습니다. 이게 정상인가요?
패턴이 바뀐 것 같아요. 그렇다면 그것은 확실히 정상이 아니다.
이로 인해 보안 취약점이 발생합니까?
방금 전반적으로 간단히 시스템을 다시 설치하는 것이 좋습니다. 아니면 전체 디스크 백업이 있기를 바랍니다./usr/bin/crontab
have 로 설정했으므로 root
이제 편집기를 여는 setuid 애플리케이션이 생겼습니다. 이것에 비하면 구멍이 있는지 의심스럽습니다. 물론 이것은 노골적인 취약점이었으므로 이제 더 교활한 일이 가능할 수도 있습니다.
확실히,chown(3)
실행 중인 프로세스에 적절한 권한이 없으면 setuid 및 setgid 비트를 지워야 합니다. 그리고man 2 chown
리눅스의 경우:
권한이 없는 사용자가 실행 파일의 소유자나 그룹을 변경하면 모드 비트
S_ISUID
와S_ISGID
모드 비트가 지워집니다. POSIX는 루트로 실행될 때도 이러한 현상이 발생해야 하는지 여부를 지정하지 않습니다chown()
. Linux 동작은 커널 버전에 따라 다릅니다. 그룹이 아닌 실행 파일(즉,S_IXGRP
이 비트가 설정되지 않은 파일)인 경우 이S_ISGID
비트는 강제 잠금을 나타내며chown()
.
따라서 개발자와 표준 위원회는 안전 장치를 제공한 것으로 보입니다.
답변2
자매 시스템이나 백업이 있나요? 즉, 소유권을 복제할 수 있는 시스템이 마련되어 있습니까?
그렇다면 소유권을 복사하고 자매 시스템에 없는 파일을 찾은 다음 해당 파일의 소유권을 수동으로 설정하십시오.