루트 쉘을 항상 /usr/bin/false로 설정해야 합니까?

루트 쉘을 항상 /usr/bin/false로 설정해야 합니까?

루트 계정(내 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

일상적인 운영

rootmacOS에서 일상적인 작업을 수행하기 위해 활성화된 계정이 필요하지 않습니다 . 활성화된 루트 계정과 해당 쉘이 없어도 문제 없이 /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

따라서 단일 사용자 모드에서는 부정적인 결과가 발생하지 않습니다.

관련 정보