답변:
루트 사용자 (UID 0) 모든 유닉스 나 유닉스 계열 운영체제에 존재합니다. Unix 운영 체제의 모든 프로세스는 시스템 프로세스, 데몬, 서비스 또는 사용자 시작 응용 프로그램과 독립적으로 유효한 사용자 / UID로 실행해야합니다. 모든 기본 시스템 프로세스는 UID 0 (루트)에서 실행되며 모든 시스템 관련 파일은 해당 사용자가 소유합니다. 보안상의 이유로 일부 프로세스는 수퍼 유저 root 보다 적은 권한으로 다른 "사용자"로 실행되고 있습니다. 이러한 사용자는 웹 서버, 데이터베이스, 창 서버 등과 같은 서비스를 시작하기위한 목적으로 만 사용됩니다. 즉, Unix (또는 macOS)에 구성된 모든 사용자가 "실제"사용자는 아닙니다. 실제로 대부분의 시스템 사용자는 대화식으로 로그인 할 수 없습니다.
예를 들어 웹 서버 (nginx, apache, ...)는 UID 0 (= root ) 에서 실행되는 스크립트에 의해 시작됩니다 . 나중에 웹 서버 프로세스는 특정 UID에 대한 권한을 떨어 뜨립니다 (이 경우에는 사용자 www 일 수 있음 ). www 는 실제 사용자가 아니며 대화식으로 시스템에 로그인하는 데 사용할 수 없습니다.
(시스템) 사용자를 "비활성화"하는 두 가지 방법이 있습니다.
macOS AFAIK에서 유효하지 않은 사용자는 빈 비밀번호와 로컬 OpenDirectory 서버에 설정된 특정 속성을 갖습니다.
일반적으로 "유효한 사용자입니까?"와 같은 요청의 경우 macOS의 OpenDirectory 서비스는 요청 된 사용자를 간단하게 검사하여 true (사용자는 로그인 가능) 또는 false (사용자는 로그인 할 수 없음)를 반환합니다.
Apples 버그는 사용자의 유효성 을 검사하는 것이 아니라 활성화 로 설정 하는 것 같습니다 . 이미 활성화 된 계정에서는 효과가 없었지만 비활성화 된 계정은 유효한 활성화 된 계정이되었습니다. 비활성화 된 사용자에게는 비밀번호가 없으므로 빈 비밀번호는 superuser / root 로 로그인하는 유효한 옵션으로 허용됩니다 .
root
사용자가 활성화 된 경우 /bin/bash
셸로 설정됩니다. sudo /usr/bin/dscl . -create /Users/root UserShell /usr/bin/false
추가 보안을 위해 변경하는 데 사용하십시오 .
rout
얻을 것이다 경우 올바른이 가능했다 (하지만 가능하지 않습니다)?
파일 소유권은 사용자가 로그인 할 필요가 없습니다. 운영 체제를 실행하는 파일은 일반적으로 루트가 소유하며 일부 인증 형식이 필요한 설치 프로세스에 의해 배치됩니다. 또한 운영 체제는 루트 이외의 프로세스를 실행하는 다른 사용자를 사용합니다. 이러한 사용자는 일반적으로 셸을로 설정하고 /bin/false
로그인 할 수 없으며 자신이 소유 한 파일을 생성 할 수 있습니다.
시스템 및 해당 쉘의 사용자를 나열하려면 다음을 수행하십시오.
dscl . list /Users UserShell
시스템에서 루트 또는 사용자가 소유하지 않은 파일을 찾으려면 다음을 수행하십시오.
sudo find -x / ! \( -user root -o -user "$(id -un)" \) -exec ls -ld {} +
/usr/bin/false
사용자) : _mbsetupuser /bin/bash
, _uucp /usr/sbin/uucico
, root /bin/bash
,와 Rax /bin/bash
.
dscl . list /Users UserShell
제공root /bin/bash
(내가 가지고 있지만 그것에 대해 대화 형 로그인 설정 없음)?