J'ai des problèmes avec la commande su. Je connais mon mot de passe et je le tape correctement, mais su
indique un échec d'authentification.
J'ai donc vérifié sur Internet, puis je suis passé en mode de récupération et j'ai changé le mot de passe de mon nom d'utilisateur pour le saisir auparavant.
Même maintenant, entrer le même mot de passe sur su
m'indique un échec d'authentification.
S'il vous plaît suggérer ce que je fais mal ??
su
demande le mot de passe root. Ubuntu ne définissant pas de mot de passe root par défaut, vous ne pouvez pas l'utiliser pour devenir root.
Pour devenir root, utilisez plutôt Sudo -i
avec votre mot de passe personnel.
su
demande le mot de passe du compte auquel vous essayez de vous connecter. Son utilisation (simplifiée):
su username
Lorsque vous omettez username
name__, le nom d'utilisateur par défaut est root
name__. Puisque le mot de passe root est désactivé par défaut sur Ubuntu, aucun mot de passe ne sera valide. Le moyen privilégié d’exécuter des commandes racine n’est pas à travers un shell su, mais avec Sudo comme dans:
Sudo mount /dev/sdb1 /mnt
Le compte root
dans Ubuntu est désactivé par défaut. C’est pour dire qu’il n’a pas de mot de passe (ce qui le différencie avec un vide mot de passe) et aucune tentative d'authentification avec le mot de passe root ne réussira. Par conséquent, su
ou su -
ne fonctionnera pas.
À la place, utilisez Sudo
pour exécuter une commande en tant que root:
Sudo command...
Si vous voulez un shell racine comme vous obtenez avec su
, exécutez:
Sudo -s
Si vous voulez un shell racine similaire à celui obtenu avec su -
, exécutez:
Sudo -i
lorsque vous devez vous connecter en tant qu’un de vos utilisateurs non-connectés, dites git
(n’a pas de pwd)
su - git
Password:
su: Authentication failure
SOLUTION - utilisez cette syntaxe pour vous connecter en tant qu'utilisateur ID git
name__
Sudo su - git
su
demande le mot de passe root.
Vous pouvez définir un mot de passe root pendant que vous êtes root (en donnant Sudo su
, à condition que vous vous trouviez sur le fichier sudoers
), en donnant la commande passwd
et en définissant un nouveau mot de passe.
Ce n'est pas le recommander pour diverses raisons, cependant.
Dans mon cas, c'était parce que l'entrée pour cet utilisateur était manquante dans /etc/shadow
.
J'avais copié sur un autre serveur de test toutes les entrées de /etc/passwd
avec un ID supérieur à 1000 ainsi que de /etc/group
, mais j'avais oublié /etc/shadow
. Donc, chaque fois que je faisais su
avec l’un de ces utilisateurs, j’obtiendrais cette erreur. Après avoir ajouté l'entrée manquante dans /etc/shadow
, l'erreur cesserait d'apparaître.
Par exemple /etc/shadow
:
myusername:*:16992:0:99999:7:::
Je suis tombé sur un système d'exploitation, Minibian, où le bit setuid était absent de /bin/su
, ce qui était à l'origine de cette erreur, même si le mot de passe du compte root était activé.
Sous Linux, le seul moyen de devenir root consiste à exécuter un fichier setuid-root. Lorsque vous exécutez Sudo
ou su
, leur bit setuid est défini, de sorte que l'utilisateur effectif du processus devient root, puis effectue l'authentiaction déjà en tant que root! Si cela échoue, ils sortent.
Quoi qu'il en soit, voici les symptômes et le correctif:
$ su
Password:
su: authentication failure
$ Sudo su
# ls -l /bin/su
-rwxr-xr-x 1 root root 31092 Jun 5 2012 /bin/su
# chmod u+s /bin/su
# ls -l /bin/su
-rwsr-xr-x 1 root root 31092 Jun 5 2012 /bin/su
Notez la différence: rwx
before, rws
after.