
루트 계정(내 macOS, 단일 사용자) 컴퓨터의 남용을 방지하려면 항상 셸 root
을 /usr/bin/false
(또는/sbin/nologin
)?
예를 들어 항상 다음과 같이 해야 합니다.
sudo /usr/bin/dscl . -create /Users/root UserShell /usr/bin/false
아니면 그렇게 하지 않는 일반적인 이유가 있습니까?명백하고 피할 수 있는 것)?
답변1
아니요, 그렇게 하면 안 됩니다. 왜냐하면 만약 그렇다면필요문제 해결이나 복구를 위해 계정을 사용하는 root
것은 불가능합니다(Mac에서도 가끔 발생함).
너~해야 한다그러나 루트 비밀번호를 설정하십시오.
$ sudo passwd root
답변2
설명된 대로 루트 쉘을 설정하면 루트에 로그인하거나 su -
루트에 로그인할 수 없습니다. 그러나 당신은 여전히 (마이너스 없이) sudo
또는 심지어를 사용합니다.su
루트 로그인을 비활성화하는 것은 일반적으로 좋은 보안 조치입니다. 그러나 시스템 오류가 발생할 경우 다른 방법으로 시스템에 액세스할 수 있는지 확인해야 합니다. 시스템이 이상하게 동작하면 일반 계정이 작동하지 않는데도 루트 로그인이 계속 작동할 수 있습니다(예를 들어 대부분의 Unix 시스템에서 루트 홈 디렉토리가 일반 사용자 홈 디렉토리가 아닌 시스템 드라이브에 있는 이유).
여전히 단일 사용자 모드로 부팅할 수 있지만 현재 MacOS 버전에서는 이에 대해 100% 확신할 수 없으므로 확인해야 합니다. 로그인하지 않는 쉘을 사용하더라도 이것이 가능하다면 문제를 피할 수 있는 방법이며 안전하게 루트 로그인을 비활성화할 수 있습니다.
그렇지 않다면 어떤 죽음으로 죽고 싶은가 하는 문제가 된다. 누군가가 귀하의 루트 계정을 남용하거나 루트 계정이 필요할 정도로 시스템이 오작동하는 등 가능성이 더 높은 것이 무엇인지 스스로 결정하십시오.
답변3
일상적인 운영
root
macOS에서 일상적인 작업을 수행하기 위해 활성화된 계정이 필요하지 않습니다 . 활성화된 루트 계정과 해당 쉘이 없어도 문제 없이 /usr/bin/false
계속 사용할 수 있습니다 sudo
( root
쉘 의 경우).sudo -s
단일 사용자 모드
단일 사용자 모드는 로그인 인증을 위해 Open Directory가 아닌 /private/etc/passwd를 사용합니다.
pse@Mithos:~$ grep ^root: /etc/passwd
root:*:0:0:System Administrator:/var/root:/bin/sh
하지만
pse@Mithos:~$ sudo dscl . -read /Users/root UserShell
UserShell: /usr/bin/false
따라서 단일 사용자 모드에서는 부정적인 결과가 발생하지 않습니다.