Pertanyaan Keluar dari kedua root dan pengguna dengan satu perintah


Saya tahu tentang "tidak menggunakan sudo su -"dll. Tapi mari kita jujur, hampir semua dari kita melakukannya.

Jadi, inilah masalahnya. Kita tidak bisa mengaktifkan login root, jadi kita harus ssh sebagai user kita lalu melakukan root.
  Di sini adalah pohon proses:

    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

Saya ingin keluar dari root, lalu dari pengguna saya dengan satu perintah. Apakah ada cara untuk melakukan ini?

Keluar BTW & & keluar tidak berfungsi karena keluar dari shell dan tidak memproses sisa perintah

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

9
2017-09-11 17:40


asal


"Hampir semua dari kita melakukannya .." Aku meragukan itu. Saya memelihara beberapa mesin dan memiliki semua kata sandi dan saya tidak pernah menggunakan "sudo su" pada sistem berbasis debian. Dan saya berharap sebagian besar dari kita tidak menggunakannya. - Rinzwind
Jangan gunakan sudo su, tidak ada gunanya dan hanya meluncurkan proses tambahan. Menggunakan sudo -i, jika Anda harus, sebagai gantinya. - terdon♦
saya menggunakan sudo -i untuk mendapatkan cangkang root. Untuk ssh, Anda dapat mengkonfigurasi ssh untuk memungkinkan login root, secara pribadi saya menggunakan opsi "tanpa-kata sandi" untuk root dan kunci ssh er kerberos. Ini membuat akun root terkunci ke kata sandi. - Panther
Saya tidak cukup mendapatkan apa yang tidak berhasil. Pertama exit keluar su, logout yang kedua. Bukankah itu yang ingin kamu lakukan? - Pilot6
@ Pilot6 sudahkah Anda menguji kode itu ?? Saya baru saja melakukannya dan itu tidak berhasil .. itu HANYA apa yang ingin saya lakukan .. Tapi itu tidak berhasil .. - Joshua Zitting


Jawaban:


Secara teknis, tidak ada yang menjawab pertanyaan Anda. Saya menghargai bahwa mereka berpikir cara mereka lebih baik (mungkin), tetapi inilah pendekatan lain (jika Anda harus melakukannya) su - beberapa waktu dan memiliki masalah yang sama);

  1. [Masuk ke sistem]
  2. $ sudo su -;exit
  3. # echo "do things"
  4. # exit

Ketika Anda keluar dari root, pengguna asli juga akan logout karena melanjutkan perintah terakhirnya.

Tepuk tangan!


9
2017-11-16 21:39





Kerjakan saja

exec sudo -i

Sekarang shell root menggantikan yang default, dan ketika Anda keluar, Anda keluar dari "keduanya" (salah kata, karena shell pertama berhenti ada dengan exec).

Melihat:

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

Saya banyak menggunakannya untuk memiliki sshterminal -ed: gunakan exec ssh whatever dan ketika Anda keluar, terminal ditutup.


14
2017-09-11 17:59



NICELY DONE !!! Terima kasih! Saya tidak lagi harus mengetik exit dua kali !! - Joshua Zitting
Berhasil dilakukan! luar biasa - Anwar


ketika Anda menjadi pengguna root cukup ketik ::

sudo -s && exit

ketika Anda akan keluar dari root shell Anda akan secara otomatis menutup. Anda dapat mengekspor perintah ini untuk membuatnya permanen.

echo "alias mysudo='sudo -s; exit'" >> ~/.bashrc && source ~/.bashrc

1
2017-09-24 14:10