web-dev-qa-db-fra.com

Quitter root et utilisateur avec une seule commande

Je sais que "n'utilise pas Sudo su -", etc. Mais soyons honnêtes, nous le faisons presque tous.

Alors, voici le problème. Nous ne pouvons pas avoir les connexions root activées, nous devons donc entrer SSH en tant que notre utilisateur puis su root.
Voici l’arbre de processus:

    1  7897  7826  7826 ?           -1 S     1000   0:00 sshd: josh@pts/0
 7897  7898  7898  7898 pts/0     8182 Ss    1000   0:00  \_ -bash
 7898  7990  7990  7898 pts/0     8182 S        0   0:00      \_ Sudo su -
 7990  7991  7990  7898 pts/0     8182 S        0   0:00          \_ su -
 7991  7992  7992  7898 pts/0     8182 S        0   0:00              \_  -su
 7992  8182  8182  7898 pts/0     8182 R+       0   0:00                  \_ ps axjf

Je voudrais sortir de la racine, puis de mon utilisateur avec une commande. Y a-t-il un moyen de faire cela?

BTW exit && exit ne fonctionne pas car il quitte le shell et ne traite pas le reste de la commande

josh@ubuntu:~$ Sudo su -
root@ubuntu:~# exit && exit
logout
josh@ubuntu:~$
9
Joshua Zitting

Techniquement, personne n'a répondu à votre question. Je reconnais qu'ils pensent que leur chemin est meilleur (probablement), mais voici une autre approche (au cas où vous auriez à su - un peu de temps et que vous auriez le même problème);

  1. [Connectez-vous à un système]
  2. $ Sudo su -;exit
  3. # echo "do things"
  4. # exit

Lorsque vous quittez la racine, l'utilisateur d'origine se déconnecte également puisqu'il poursuit sa dernière commande.

À votre santé!

9
Alexander E. Smith

Il suffit de faire

exec Sudo -i

Maintenant, le shell racine remplace celui par défaut et lorsque vous quittez, vous quittez "les deux" (libellé incorrectement, car le premier shell cesse d'exister avec le execname__).

Regardez:

[romano:~] % ssh pern
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-28-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

[romano@pern:~] % exec Sudo -i
[Sudo] password for romano: 
root@pern:~# whoami
root
root@pern:~# pstree -a -s -l -p -u $$
init,1
  └─sshd,1140 -D
      └─sshd,17450 
          └─sshd,17570,romano  
              └─Sudo,17571,root -i
                  └─bash,17665
                      └─pstree,17678 -a -s -l -p -u 17665
root@pern:~# exit
logout
Connection to pern.XXX.XXX.XXX closed.
[romano:~] % 

Je l’utilise beaucoup pour avoir un sshname __- ed terminal: utilisez exec ssh whatever et quand vous quittez, le terminal se ferme.

14
Rmano

quand vous devenez utilisateur root, tapez simplement ::

Sudo -s && exit

lorsque vous quitterez la racine, Shell se fermera automatiquement. vous pouvez exporter cette commande pour la rendre permanente.

echo "alias mysudo='Sudo -s; exit'" >> ~/.bashrc && source ~/.bashrc
1
javesh bhardwaj