web-dev-qa-db-fra.com

Puisque Ubuntu désactive le compte root par défaut, pourquoi ne pas désactiver également l'accès root à Shell?

La valeur par défaut actuelle du compte racine dans /etc/passwd est root:x:0:0:root:/root:/bin/bash.

Pourquoi ne pas le définir sur root:x:0:0:root:/root:/usr/sbin/nologin?

12
loongyh

Si c'était le cas, vous ne pourrez exécuter que les commandes avec Sudo une à la fois, mais vous ne pourrez pas démarrer un shell racine. Un shell racine est pratique dans de nombreux cas, par exemple. si vous envisagez d'exécuter plusieurs commandes en tant que root à la suite.

En particulier, vous ne pouviez pas exécuter 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.
19
Alberto Santini

Outre la réponse Sudo d'Alberto Santini, il existe une autre réponse (bien meilleure). Si le shell de root est défini sur quelque chose qui n’est pas un shell, le démarrage d’un seul utilisateur ne fonctionne pas. sulogincontient des éléments de récupération pour des éléments tels que le shell non existant ou le shell complètement endommagé, mais cela ne fonctionnera pas si le shell semble être un shell valide mais n'est pas réellement un shell.

Vous pouvez toujours Sudodirectement pour obtenir un shell en spécifiant celui-ci sur Sudoname__, de sorte que la protection n'est même pas bonne.

8
Joshua