Les valeurs par défaut actuelles du compte root dans /etc/passwd
est root:x:0:0:root:/root:/bin/bash
.
Pourquoi ne pas le régler sur root:x:0:0:root:/root:/usr/sbin/nologin
?
Les valeurs par défaut actuelles du compte root dans /etc/passwd
est root:x:0:0:root:/root:/bin/bash
.
Pourquoi ne pas le régler sur root:x:0:0:root:/root:/usr/sbin/nologin
?
Réponses:
Si tel était le cas, vous ne pourriez exécuter des commandes qu'avec sudo
une à la fois, mais vous ne pourriez pas démarrer un shell racine. Un shell root est pratique dans de nombreux cas, par exemple si vous prévoyez d'exécuter plusieurs commandes en tant que root dans une rangée.
Plus précisément, vous ne pouviez pas courir sudo -i
, comme l'a noté AlexP. De man sudo
:
-i, --login Run the shell specified by the target user's password database entry as a login shell.
sudo /bin/bash
marche pas pour ça?
sudo -s
je pense (un shell root, mais pas un shell de connexion root ). C'est un bon point cependant - et en fait, sudo -s
cela semble fonctionner même lorsque la coque de la racine est/usr/sbin/nologin
-i
, -s
, /bin/bash
et ainsi de suite tout en permettant une liste blanche des commandes, consultez la documentation du fichier sudoers. C'est si fin qu'il est par exemple possible d'autoriser les utilisateurs à s'exécuter en /etc/init.d/someservice restart
tant que root sans leur permettre de s'exécuter /etc/init.d/someservice stop
. Mais la valeur par défaut d'ubuntu est de ne définir aucun mot de passe root
et de permettre aux utilisateurs administratifs de tout faire avec sudo. La justification est probablement a) plus d'un utilisateur administrateur et b) L'utilisateur administrateur n'a pas besoin de se souvenir d'un deuxième mot de passe pour le compte root.
Outre la réponse sudo d'Alberto Santini, il y a une autre (bien meilleure) réponse. Si le shell de root est défini sur quelque chose qui n'est pas un shell, le démarrage d'un utilisateur unique ne fonctionne pas. Il y a une récupération sulogin
pour des choses comme un shell non existant ou un shell complètement cassé, mais cela ne fonctionnera pas si le shell semble être un shell valide mais n'est pas réellement un shell.
Vous pouvez toujours sudo
obtenir directement un shell en spécifiant le shell pour sudo
qu'il ne soit même pas une bonne protection.
sudo -i
?