루트 쉘을 항상 /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또는 Even을 사용합니다.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

따라서 단일 사용자 모드에는 부정적인 영향이 없습니다.

관련 정보