Выход из root и пользователя одной командой

Я знаю о «неиспользовании sudo su -» и т. Д. Но давайте будем честными, почти все мы делаем это.

Итак, вот в чем проблема. У нас не может быть разрешен вход с правами суперпользователя, поэтому мы должны войти в систему как ssh, а затем зайти под root.
Вот дерево процессов:

    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

Я хотел бы выйти из root, затем от моего пользователя с помощью одной команды. Есть ли способ сделать это?

BTW выход && exit не работает, потому что он выходит из оболочки и не обрабатывает остальную часть команды

josh@ubuntu:~$ sudo su -
root@ubuntu:~# exit && exit
logout
josh@ubuntu:~$
9
задан 2 September 2016 в 21:37

3 ответа

Просто сделайте

exec sudo -i

Теперь, корневая оболочка заменяет по умолчанию, и когда Вы выходите, Вы выходите из "обоих" (неправильно сформулированный, начиная с первой остановки оболочки, существующей с exec).

Взгляд:

[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:~] % 

я использую его много, чтобы иметь ssh - терминал редактора: используйте exec ssh whatever и когда Вы выйдете, терминальные завершения.

0
ответ дан 3 September 2016 в 07:37
  • 1
    @MarkKirby I' m жаль, немного утомленный сегодня и да, я был слишком резким. Извините за это. – negusp 2 December 2016 в 14:27

Технически, никто не ответил на Ваш вопрос. Я ценю, что они думают, что их путь лучше (вероятно), но вот другой подход (в случае, если Вы имеете к su - некоторое время и имеете ту же проблему);

  1. [Регистрация в систему]
  2. $ sudo su -;exit
  3. # echo "do things"
  4. # exit

, Когда Вы выходите от корня, оригинальный пользователь также выйдет из системы, так как это продолжается, это - последняя команда.

За Ваше здоровье!

0
ответ дан 3 September 2016 в 07:37
  • 1
    @PatrickNegus I don' t видят, где это скопировать/вставить существующего ответа, уверенного, команды являются тем же, но это, кажется, OP' s владеют ответом. Я соглашаюсь, что эти-1 могли бы быть немного резкими. George, можно ответить на дубликаты, если Вам нравится, но они будут закрыты быстро и won' t получают много голосов, но существует, не выносят обвинительное заключение ответу на них, в Ваших собственных словах. – Mark Kirby 2 December 2016 в 12:20

когда Вы станете пользователем root, просто введите::

sudo -s && exit

, когда Вы выйдете от корня, Вы окружаете, автоматически закроется. можно экспортировать эту команду для создания этого постоянным.

echo "alias mysudo='sudo -s; exit'" >> ~/.bashrc && source ~/.bashrc
0
ответ дан 3 September 2016 в 07:37
  • 1
    @George Делают быстрое редактирование к Вашему ответу и I' ll upvote это. Извините за это. – negusp 2 December 2016 в 14:30

Другие вопросы по тегам:

Похожие вопросы: