GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa menjalankan serangkaian perintah dalam subkulit bash sebagai pengguna lain menggunakan sudo?

Jalankan shell di dalam sudo :sudo bash -c 'whoami; whoami'

Anda dapat menggunakan karakter apa pun kecuali ' sendiri di dalam tanda kutip tunggal. Jika Anda benar-benar ingin memiliki satu kutipan dalam perintah itu, gunakan '\'' (yang secara teknis adalah:end single-quote literal, literal ' karakter, mulai literal kutipan tunggal; tetapi secara efektif ini adalah cara untuk menyuntikkan satu kutipan ke dalam string literal yang dikutip tunggal).


Anda dapat meneruskan perintah sebagai input standar ke sudo'ed bash dengan dokumen di sini:

sudo bash <<"EOF"
whoami
id
EOF

Dengan cara ini tidak perlu mengutak-atik kutipan yang benar, terutama jika Anda memiliki banyak level, misalnya:

sudo bash <<"EOF"
whoami
echo $USER ~
sudo -u apache bash <<"DOF"
whoami
echo $USER ~
DOF
EOF

Menghasilkan:

root
root /root
apache
apache /usr/share/httpd

(Perhatikan bahwa Anda tidak dapat mengindentasi terminator bagian dalam — harus sendirian di barisnya. Jika Anda ingin menggunakan indentasi dalam dokumen di sini, Anda dapat menggunakan <<- bukannya << , tetapi Anda harus membuat indentasi dengan tab, bukan spasi.)


misalnya coba ini, saya mengujinya:

sudo bash -c "cd /;ls;ls|grep o"

Dalam contoh ini, pertama-tama Anda mengubah dir menjadi /root, selanjutnya daftar direktori root dan terakhir untuk filter direktori root hanya direktori yang memiliki nama dengan huruf 'o'.

Tapi cara yang lebih baik adalah menulis skrip yang melakukan semua yang Anda butuhkan dan memberikan kode keluar untuk semua tindakan kompleks. Kemudian Anda dapat sudo skrip sebagai ganti grup perintah tunggal seperti contoh di atas.


Linux
  1. Bagaimana Memetakan Satu Perintah Vim Untuk Menjalankan Perintah Bash Berdasarkan Os?

  2. Bagaimana cara menjalankan perintah bash dengan hak sudo di Jawa?

  3. Cara mengatur waktu sekelompok perintah di Bash

  1. Bagaimana saya bisa menambahkan pengguna biasa ke file sudoers?

  2. Bagaimana cara menjalankan skrip bash?

  3. Bagaimana saya bisa mengubah semua file milik satu pengguna ke pengguna lain?

  1. Bagaimana cara melihat riwayat perintah pengguna lain di Linux?

  2. Jalankan skrip bash secara otomatis di bawah hak istimewa pengguna lain

  3. Cara ssh sebagai pengguna lain