GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara membiarkan pengguna menjalankan perintah yang berisi tanda kutip di sudoers?

Solusi sederhananya adalah dengan memasukkan perintah Anda ke dalam skrip dan kemudian memberi pengguna Anda akses ke skrip tersebut melalui sudo.

user ALL = (root) NOPASSWD: /path/to/yourscript

Lalu

#/bin/bash
chroot /chroots/box /bin/bash -c 'cd /repos/system && git pull'

Pastikan bahwa pengguna Anda tidak memiliki akses tulis ke skrip Anda.


sunting:Peringatan, tampaknya sudo tidak menangani spasi dengan aman dalam perintah, jadi tidak aman menggunakan sudo dengan cara ini. https://unix.stackexchange.com/a/279142/39281

Alih-alih menggunakan tanda kutip di file sudoers, Anda dapat keluar dari spasi menggunakan garis miring terbalik:

user ALL = (root) NOPASSWD: chroot /chroots/box /bin/bash -c cd\ /repos/system\ &&\ git\ pull

Anda masih dapat menggunakannya sebagai berikut, karena shell pengguna tetap menangani argumen yang dikutip:

chroot /chroots/box /bin/bash -c 'cd /repos/system && git pull'

Secara pribadi saya suka jawaban lain, untuk memasukkannya ke dalam skrip, tetapi ini menjawab pertanyaan sebenarnya.


Linux
  1. Cara Menggunakan Perintah id di Linux:5 Contoh Berguna

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

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

  1. Bagaimana cara menjalankan perintah sebagai pengguna tertentu dalam skrip init?

  2. Bagaimana cara mengeksekusi kode di shell Django dengan skrip python eksternal?

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

  1. Bagaimana Cara Menjalankan Perintah Sebelum Login Pengguna Di Linux?

  2. Cara mengeksekusi perintah ssh dari jarak jauh perintah sudo tanpa kata sandi

  3. Bagaimana cara mencatat setiap perintah yang dijalankan oleh pengguna?