Wiem o „nie korzystaniu sudo su -
” itp. Ale bądźmy szczerzy, prawie wszyscy to robimy.
Oto problem. Nie możemy mieć włączonych loginów roota, więc musimy zalogować się jako ssh jako użytkownik, a następnie su do rootowania.
Oto drzewo procesów:
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
Chciałbym wyjść z roota, a następnie od mojego użytkownika za pomocą jednego polecenia. Czy jest na to sposób?
Wyjście BTW i wyjście && nie działa, ponieważ wychodzi z powłoki i nie przetwarza reszty polecenia
josh@ubuntu:~$ sudo su -
root@ubuntu:~# exit && exit
logout
josh@ubuntu:~$
sudo su
, jest to bezcelowe i po prostu uruchamia dodatkowy proces.sudo -i
Zamiast tego użyj , jeśli musisz.sudo -i
do uzyskania powłoki roota. Jeśli chodzi o ssh, możesz skonfigurować ssh, aby zezwalał na logowanie do roota, osobiście korzystam z opcji „bez hasła” dla roota i obu kluczy ssh er kerberos. Dzięki temu konto root jest zablokowane dla haseł.exit
wyjściesu
, drugie wylogowanie. Czy to nie to, co chciałeś zrobić?Odpowiedzi:
Technicznie nikt nie odpowiedział na twoje pytanie. Rozumiem, że uważają, że ich droga jest lepsza (prawdopodobnie jest), ale oto inne podejście (na wypadek, gdybyś miał
su -
trochę czasu i miał ten sam problem);$ sudo su -;exit
# echo "do things"
# exit
Kiedy wyjdziesz z roota, oryginalny użytkownik również się wyloguje, ponieważ kontynuuje swoje ostatnie polecenie.
Twoje zdrowie!
źródło
Po prostu zrób
Teraz powłoka root zastępuje domyślną, a kiedy wychodzisz, wychodzisz z „oba” (niepoprawnie sformułowane, ponieważ pierwsza powłoka przestaje istnieć z
exec
).Popatrz:
ssh
Często go używam, aby mieć terminal z terminalem: użyj,exec ssh whatever
a kiedy wyjdziesz, terminal zostanie zamknięty.źródło
kiedy stajesz się użytkownikiem root, po prostu wpisz:
kiedy wyjdziesz z roota, powłoka zostanie automatycznie zamknięta. możesz wyeksportować to polecenie, aby było trwałe.
źródło