다음 커널 메시지는 무엇을 의미합니까?

다음 커널 메시지는 무엇을 의미합니까?

/var/log/messages에 다음 내용은 무엇입니까?

  Feb 19 22:51:20  kernel: [  187.819487] non-matching-uid symlink following attempted in sticky world-writable directory by sh (fsuid 1001 != 0)

cron 작업이 실행되려고 할 때 발생합니다.

답변1

중요한 파일(/etc/passwd, /etc/shadow 등)에 대한 심볼릭 링크를 지정하면 권한 있는 프로세스가 파일을 덮어쓰도록 속일 수 있습니다. 예를 들어, 루트가 /tmp에 파일을 생성하는 프로그램을 실행한다는 것을 알고 있다면 파일 이름(보통 /tmp/fooXXX, 여기서 foo는 프로그램 이름이고 XXX는 프로세스 ID)을 추측하여 이를 수행할 수 있습니다. /etc/shadow를 가리키고 있습니다. /tmp를 채울 수 있는 후보가 있습니다. 나중에 루트가 /tmp에 있는 파일을 열고 /etc/shadow를 자르고 덮어쓰면 갑자기 아무도 시스템에 로그인할 수 없게 됩니다. 관련 공격은 임시 파일 존재 여부 확인과 파일 생성 사이의 경쟁 조건을 악용합니다.

mktemp() 및 mkstemp()를 주의 깊게 사용하는 것을 포함하여 이 문제를 피할 수 있는 방법이 있지만 모든 프로그래머와 사용자가 이 위험을 인식하는 것은 아닙니다. 그래서 최근에 리눅스 커널 패치가 제안되었고, 분명히 여러분이 사용하고 있는 커널에 적용된 것 같습니다. 이 패치는 악성 링크를 심을 수 있는 일반적인 시나리오 중 하나인 고정 비트 세트가 있는 전역적으로 쓰기 가능한 디렉터리(일반적으로 Unix 시스템에서 /tmp가 구성되는 방식)에서 다음 기호 링크의 사용을 방지합니다. 시도된 시스템 호출은 심볼릭 링크를 따르지 않지만 EACCES와 함께 실패하고 커널은 표시되는 메시지를 기록합니다.

Linux 커널 메일링 리스트에 대한 일부 관련 토론이 있습니다.

관련 정보