슈퍼유저가 침해할 수 없는 액세스 권한은 무엇입니까?

슈퍼유저가 침해할 수 없는 액세스 권한은 무엇입니까?

정말로. 브르. 조지가 말했다그의 강의 중 하나(러시아어) 슈퍼유저가 위반할 수 없는 특정 액세스 권한이 있습니다. 즉, 슈퍼유저가 어떤 작업을 수행하는 것을 금지하는 액세스 권한이 있습니다.

인터넷에서 이 정보를 찾을 수 없고 그것이 무엇인지 궁금합니다. 이는 아마도 시스템의 핵심 실행과 관련된 내용이겠죠? 어쩌면 그는 일부 시스템 프로세스를 중지할 수 없습니까? 아니면 리얼 모드에서 프로세스를 실행할 수 없나요?

이 질문은 SELinux와는 아무런 관련이 없습니다(George가 질문 초반에 이에 대해 이야기했습니다).

답변1

루트 액세스가 거부되었습니다.:

root직접 네트워크 액세스가 거부될 수 있습니다. 이는 smith다음 으로 로그인해야 하므로 인터넷에 연결된 호스트에 유용합니다 sudo.

루트가 할 수 없는 일이 있습니다:

이것은 특권이 부족해서가 아닙니다. 루트가 어떻게 아무것도 할 수 없는지 알 수 없지만 일부 기술적인 문제는 "금지된" 것으로 간주될 수 있습니다.

저는 루트인데 왜 이 파일을 생성/삭제할 수 없는데 일반 사용자는 할 수 있나요?

NFS/Samba 공유에 있고 특정( access=) 권한이 부여되지 않았습니다. 일반 사용자에게는 관습법이 적용되지 않습니다. (아래 로컬 루트와 원격 루트 비교 참조)

저는 루트인데 왜 이 프로세스를 종료할 수 없나요?

보류 중인 I/O가 있고 물리적 드라이브/원격 LUN의 연결이 끊어졌습니다. 재부팅을 통해서만 프로세스를 종료할 수 있습니다.

저는 루트입니다. Archemar의 비밀번호를 어떻게 알 수 있나요?

이전 비밀번호를 몰라도 Archemar의 비밀번호를 변경할 수 있지만 su - archemar, 비밀번호가 단방향 해시를 사용하여 저장되기 때문에 읽을 수 없습니다(키로거 누락).

로컬 루트와 원격 루트

  • 워크스테이션/PC에서 루트 액세스 권한을 얻고 회사/대학/대학/공급자 NFS 공유를 사용할 수 있습니다.
  • 다음에는 NFS를 내보내는 컴퓨터에 루트가 아닌 사용자로만 로그인할 수 있습니다.

지금

cp /bin/bash /nfs/home/me/bash
chown root /nfs/home/me/bash
chmod u+s /nfs/home/me/bash

NFS 서버에 로그인하고 실행하여 ./bash회사/대학 서버에 대한 루트 권한을 얻으세요.

답변2

일반적인 경우에는 이는 사실이 아닙니다. 수퍼유저는 시스템에서 제공하는 모든 기능에 대한 특권/권한을 갖습니다(1). 이 규칙은 SELinux를 믹스에 추가하면 무너집니다. SELinux를 사용하면 특정 작업을 금지하도록 루트 권한을 제한할 수도 있습니다. 그러나 금지되는 특정 작업은 로컬 시스템의 SELinux 구성에 따라 크게 달라지므로 SELinux를 사용하는 경우에도 이 질문에 일반적인 의미로 대답할 수는 없습니다.

(1) - 시스템이 주어진 기능을 제공하지 않는 경우(예: 실시간 커널 기능 없음), "루트는 이 기능에 액세스할 수 없습니다"라는 진술은 잘못된 가정(즉, 주어진 기능은 시스템의 모든 사람이 사용할 수 있습니다)

답변3

한편으로는 이런저런 일들도 있습니다사용자 없음할 수 있는 일 등

  • 하드 링크된 디렉토리(파일 시스템 제한으로 인해)
  • 구운 CD-ROM에 쓰기(물리적 문제)

그러나 이는 누구에게도 부여될 수 없고 가능하지 않기 때문에 특권이 아닙니다.

그러면 전체 시스템 또는 시스템의 일부가 켜지거나 꺼지는 것이 제한될 수 있습니다.
예를 들어, OS X에는 Apple 서명 코드만 실행되도록 허용하는 옵션이 있습니다.

나는 그것이 실제 권한이라고 생각하지 않습니다. 왜냐하면 슈퍼유저가 그것을 가질 수 없다면 어떤 사용자도 그것을 가질 수 없기 때문입니다. 전역적으로만 비활성화할 수 있습니다.

편집하다:
실행 가능한 비트가 없는 파일에 대한 아이디어도 이 범주에 속합니다. 말 그대로 누구도 그렇게 할 수 없고 누구도 해당 권한을 부여받을 수 없기 때문입니다.
루트 또는 루트 그룹이 아닌 다른 사용자 또는 그룹에 파일 실행 권한을 부여하더라도 루트는 계속 파일을 실행할 수 있습니다(OS X 10.10, 10.11 및 Ubuntu 15.04 서버에서 테스트됨).

이러한 상황 외에는 루트가 할 수 없는 일이 거의 없습니다.
그런데 이라는 것이 있습니다.커널 모드(사용자 모드와 반대)

내가 아는 한, 정상적인 시스템에서는 커널, 커널 확장 및 드라이버만 커널 모드에서 실행되고 다른 모든 것(루트로 로그인한 셸 포함)은 사용자 모드에서 실행됩니다.
따라서 "루트가 되는 것만으로는 충분하지 않습니다"라고 말할 수 있습니다. 그러나 대부분의 시스템에서 루트 사용자는 커널 모듈을 로드할 수 있으며, 커널 모듈은 커널 모드에서 실행되므로 루트가 커널 모드에서 코드를 실행할 수 있는 방법을 효과적으로 제공합니다.

그러나 iOS와 같은 일부 시스템에서는 적어도 보안 허점을 악용하지 않고는 (임의로) 불가능합니다. 이는 주로 코드 서명 시행과 같은 보안 강화로 인해 발생합니다.
예를 들어,AES 암호화 키iDevices의 프로세서에 내장되어 있어 커널 모드에서만 액세스할 수 있습니다. 커널 모듈할 수 있다이에 액세스하려면 커널이 이를 허용하도록 하려면 이러한 커널 모듈의 코드도 Apple의 서명을 받아야 합니다.

OS에서 일부 작업.
에서 인용AskDifferent에 대한 훌륭한 답변입니다.:

이는 루트에서 시작할 때에도 제한 사항입니다.

  • , , 또는 내장된 응용 프로그램 및 유틸리티 의 내용 /System은 수정할 수 없습니다 . 설치 프로그램과 소프트웨어 업데이트만 이러한 영역을 수정할 수 있으며, 이는 Apple 서명 패키지를 설치할 때만 가능합니다./bin/sbin/usr/usr/local

답변4

한 가지 예는 불변 파일을 수정하는 것입니다. 루트에 대해서도 파일이 불변이 되도록 i파일 속성을 설정할 수 있습니다 . chattr예를 들어:

# whoami
root
# touch god
# chattr +i god
# rm god
rm: cannot remove ‘god’: Operation not permitted
# touch god
touch: cannot touch ‘god’: Permission denied

파일은 ls -l출력에 일반 쓰기 가능한 파일로 나타납니다.

# ls -l god
-rw-r--r-- 1 root root 0 Oct 26 19:27 god

이 속성을 보려면 다음을 i사용해야 합니다 lsattr.

# lsattr god
----i----------- god

이것chattr 맨페이지이 속성에 대한 설명은 다음과 같습니다 i.

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

그러나 루트는 불변성을 쉽게 취소할 수 있습니다.

# chattr -i god
# rm -v god
removed ‘god’

관련 정보