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.