Bir komutla hem kökten hem de kullanıcıdan çıkma


9

"Kullanmama sudo su -" vb. Hakkında biliyorum . Ama dürüst olalım, neredeyse hepimiz yapıyoruz.

İşte sorun. Kök oturumlarını etkinleştiremeyiz, bu nedenle kullanıcı olarak root yapmak için ssh kullanmalıyız.
İşte işlem ağacı:

    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

Kökten, sonra da tek komutla kullanıcımdan çıkmak istiyorum. Bunu yapmanın bir yolu var mı?

BTW exit && exit, kabuktan çıktığı ve komutun geri kalanını işlemediği için çalışmaz

josh@ubuntu:~$ sudo su -
root@ubuntu:~# exit && exit
logout
josh@ubuntu:~$

5
"Hemen hemen hepimiz yapıyoruz ..." Bundan şüpheliyim. Ben birkaç makine korumak ve tüm şifreleri var ve hiç debian tabanlı sistemlerde "sudo su" kullanmıyorum. Ve çoğumuzun bunu kullanmamasını bekliyorum.
Rinzwind

1
Kullanmayın sudo su, anlamsızdır ve sadece ekstra bir süreç başlatır. Kullanım sudo -i, bunun yerine, varsa.
terdon

sudo -iBir kök kabuk elde etmek için kullanıyorum . SSH'ye gelince, ssh'yi root girişlerine izin verecek şekilde yapılandırabilirsiniz, kişisel olarak root ve "ssh key er kerberos" için "password olmadan" seçeneklerini kullanıyorum. Bu, kök hesabı parolalara kilitli tutar.
Panther

Neyin işe yaramadığını tam olarak anlamıyorum. İlk exitçıkışlar su, ikincisi çıkış yapar. Yapmak istediğin bu değil mi?
Pilot6

1
@ Pilot6 bu kodu test ettiniz mi ?? Ben sadece yaptım ve çalışmıyor .. bu sadece yapmak istediğim şey .. Ama işe yaramaz ..
Joshua Zitting

Yanıtlar:


9

Teknik olarak, kimse sorunuzu cevaplamadı. Yollarının daha iyi (muhtemelen) olduğunu düşündüklerini takdir ediyorum, ama işte başka bir yaklaşım ( su -biraz zamana sahip olmanız ve aynı sorunla karşılaşmanız durumunda);

  1. [Sisteme giriş yap]
  2. $ sudo su -;exit
  3. # echo "do things"
  4. # exit

Kökten çıktığınızda, orijinal kullanıcı son komutu olduğu için oturumu da kapatır.

Şerefe!


14

Sadece yap

exec sudo -i

Şimdi kök kabuk varsayılan olanı değiştiriyor ve çıktığınızda, "her ikisi de" çıkıyorsunuz (ilk kabuk durağı ile varolduğundan beri yanlış ifade edilmiş exec).

Bak:

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

Bir ssh-ed terminali için çok kullanıyorum: kullanın exec ssh whateverve çıktığınızda terminal kapanır.


2
GÜZEL YAPILMIŞ!!! Teşekkür ederim! Artık iki kez çıkış yazmak zorunda değilsiniz!
Joshua Zitting

Akıllıca yapılır! mükemmel
Anwar

1

root kullanıcısı olduğunuzda şunu yazın:

sudo -s && exit

kökten çıktığınızda kabuk otomatik olarak kapanacaktır. kalıcı hale getirmek için bu komutu dışa aktarabilirsiniz.

echo "alias mysudo='sudo -s; exit'" >> ~/.bashrc && source ~/.bashrc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.