Devo sempre definir o shell root como/usr/bin/false?

Devo sempre definir o shell root como/usr/bin/false?

Para evitar o abuso da máquina da conta root (no meu macOS, usuário único), devo sempre definir o rootshell para /usr/bin/false(ou/sbin/nologin)?

Por exemplo, devo sempre:

sudo /usr/bin/dscl . -create /Users/root UserShell /usr/bin/false 

ou existem razões comuns para não fazer isso (além doóbvio e evitável)?

Responder1

Não, você não deveria, porque então se vocêprecisarpara usar a rootconta (como às vezes acontece, mesmo em Macs) para solução de problemas ou recuperação, você não pode.

Vocêdeve, no entanto, defina a senha root:

$ sudo passwd root

Responder2

Se você definir o shell root conforme descrito, não poderá fazer login ou su -fazer root. Você pode, no entanto, ainda usar sudoou até mesmo su(sem o sinal de menos).

Desabilitar o login root geralmente é uma boa medida de segurança. Você deve, no entanto, certificar-se de que pode acessar a máquina de alguma outra forma em caso de falha do sistema. Quando o sistema se comporta de maneira estranha, o login root ainda pode funcionar quando as contas normais não funcionam (isto é, por exemplo, por que na maioria dos sistemas Unix o diretório inicial raiz não está no diretório inicial normal do usuário, mas na unidade do sistema).

Você provavelmente ainda pode inicializar no modo de usuário único, mas não tenho 100% de certeza sobre isso com as versões atuais do MacOS, você deve verificar. Se isso ainda for possível, mesmo com um shell sem login, esta é a sua maneira de evitar problemas e você pode desabilitar o login root com segurança.

Caso contrário, torna-se uma questão de qual morte você deseja morrer. Decida por si mesmo o que é mais provável - alguém abusando de sua conta root ou seu sistema funcionando mal a ponto de você precisar dessa conta root.

Responder3

Operações do dia-a-dia

Você não precisa da rootconta habilitada para realizar operações diárias no macOS. E mesmo sem uma conta root habilitada e seu shell configurado para /usr/bin/falsevocê ainda poderá usar sudo(e para rootshells sudo -s) sem problemas.

modo de usuário único

O modo de usuário único usa /private/etc/passwd para autenticação de login, não Open Directory:

pse@Mithos:~$ grep ^root: /etc/passwd 
root:*:0:0:System Administrator:/var/root:/bin/sh

mas

pse@Mithos:~$ sudo dscl . -read /Users/root UserShell
UserShell: /usr/bin/false

Portanto, não haverá consequências negativas no modo de usuário único.

informação relacionada