web-dev-qa-db-fra.com

Se connecter en tant qu'utilisateur non root dans le terminal

C'est une question à laquelle je m'attendrais à obtenir rapidement une réponse de Google. Cependant, Google me manque. Supposons que je suis connecté à une session de terminal et que je souhaite travailler temporairement en tant qu'utilisateur non root dont je connais le mot de passe sans quitter ma session. Lorsque je suis connecté en tant que cet utilisateur, je veux que le répertoire personnel, etc., de cet utilisateur soit configuré correctement jusqu'à ce que je me déconnecte. Comment je fais ça?

J'ai essayé

su -- username

puis en tapant le mot de passe, cela ne produisit aucune erreur, mais je ne vis aucune modification visible de la commande. Une invite indiquait toujours myname @ myhost. Le répertoire personnel était également celui de myname et non le nouveau login auquel j'ai essayé de me connecter.

Comme je le vois maintenant, je ne connais pas vraiment Linux/Ubuntu, toute information est la bienvenue.

17
Andrew Savinykh

À quel utilisateur souhaitez-vous changer?

Le problème est que vous essayez de "su" dans un utilisateur auquel aucun shell n'a été attribué. La plupart des utilisateurs tels que mysql, Pulse, etc., créés par le système ou par certains paquetages lorsque vous installez un logiciel, n'ont pas de shell attribué.

Vous pouvez vérifier si un shell a été attribué à un utilisateur en consultant le fichier /etc/passwd; il suffit de regarder la fin de la ligne de chaque utilisateur. Si elle indique /bin/false, cela signifie qu'aucun shell n'a été attribué, s'il a quelque chose comme /bin/bash. ou n'importe quel autre Shell, vous devriez alors pouvoir "exécuter" cet utilisateur.

Quand je dis "Shell assigné", cela signifie fondamentalement qu'il a "accès Shell"

toujours si l’utilisateur n’a pas accès à Shell, vous pouvez toujours exécuter des commandes en tant que cet utilisateur avec

 Sudo -u user command
17
Sam

si vous avez accès à Sudo, je vous recommanderais

Sudo su username -

Il fait fondamentalement la même chose, mais vous oblige seulement à connaître votre mot de passe et non les autres utilisateurs.

cependant, si vous avez le mot de passe des autres utilisateurs:

su username - devrait fonctionner correctement.

remarquez le 1 - et que c'est à la fin.

6
coteyr