GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Cara Menghindari Permintaan Kata Sandi Untuk Sudo Untuk Skrip Crontab?

Saya ingin pengguna baru dapat menjalankan sudo tanpa permintaan kata sandi, karena pengguna ini memiliki crontab sebuah .sh yang menggunakan sudo untuk beberapa perintah.

Saya membuat pengguna baru di server ubuntu saya 16.04 x64

adduser my-user sudo
gpasswd -a my-user sudo

Kemudian gunakan visuo saya menambahkan baris ini, berdasarkan pertanyaan ini

my-user ALL=(ALL) NOPASSWD : ALL

Kemudian reboot

Setelah reboot saya login menggunakan my-user dan mencoba melakukan sudo clear, tetapi menanyakan kata sandi sudo kepada saya.

CATATAN :Saya telah menambahkan crontab menggunakan crontab -e my-user jadi saya kira skrip saya dieksekusi sebagai my-user . Faktanya, skrip crontabbed mogok memberi tahu saya di log tentang sudo permintaan kata sandi. Saya benar-benar perlu menjalankan skrip dengan cara ini untuk dapat membuat file dengan my-suer sebagai pemilik.

Tolong beri tahu saya jika beberapa langkah/baris tidak diperlukan dan bagaimana membuat my-user able untuk mengeksekusi sudo tanpa permintaan kata sandi.

Terima kasih

PS:Saya melihat pertanyaan ini, tetapi saya tidak dapat membuatnya berfungsi sehingga saya memerlukan penjelasan yang lebih tepat, karena situasi saya berbeda:saya menjalankan skrip crontab dan saya membutuhkannya jangan meminta kata sandi Sudo

Jawaban yang Diterima:

Terkadang menjalankan proses dari crontab root dapat menyebabkan masalah dengan kepemilikan file awal dan rwx mode; itu mungkin tidak disimpan dengan benar.

Bagaimanapun:

1) untuk membuat pengguna baru, sederhanakan:

 $ sudo deluser my-user  # if "my-user" is a regular user
 $ adduser my-user
 $ sudo gpasswd -a my-user sudo

2) untuk memasukkan entri baru dengan NOPASSWD tag di sudoers atau dalam file (mis. /etc/sudoers.d/60_my-user_rules ), buat tanda titik dua pada tag, yaitu NOPASSWD:
Saya belum pernah melihatnya dengan spasi dan aturan tahun yang diselingi menjadi:

 my-user my-host = NOPASSWD: /full/path/to/cmd [parameter1 [| parameter2 [| ...]]]

Menambahkan (ALL) sebelum NOPASSWD: adalah opsional karena aturan default ke (ALL:ALL) omong-omong. Namun Anda mungkin ingin tidak hanya menjalankan cmd/skrip Anda dengan hak akses root tetapi juga menjalankannya sebagai pengguna tertentu (spec-user ) atau sebagai anggota grup tertentu (spec-group ) atau keduanya. Dalam hal ini, aturannya menjadi:

 my-user my-host = ([spec-user][:spec-group]) NOPASSWD: /full/path/to/cmd [parameter1 [| parameter2 [| ...]]]

Ini sebenarnya akan membatasi disposisi Sudo tanpa kata sandi untuk satu pengguna, satu host, dan satu perintah. Anda dapat mengeraskan aturan ini dengan menentukan parameter opsional untuk perintah itu. Dalam hal ini aturan hanya akan berlaku untuk itu/parameter yang tepat itu.
Untuk skrip, Anda dapat lebih memperkuat aturan ini dengan memastikan bahwa aturan hanya berlaku jika skrip tidak diubah dengan cara apa pun . Ini adalah cara untuk menghindari pembajakan skrip. Ini dilakukan melalui cmd-aliasing dan menentukan SHA-sums di /etc/sudoers.d/60_my-user_rules .

HTH. Silakan laporkan jika Anda mengalami masalah dengan jawaban itu.

Terkait:Lengkapi cadangan iPhone tanpa iTunes?
Ubuntu
  1. Cara Mengubah Batas Waktu Kata Sandi Sudo

  2. Cara Mengatur Ulang Kata Sandi untuk Sudo di Debian

  3. Cara mengatur jalur untuk perintah sudo

  1. Cara Membuat Sudo Mengingat Kata Sandi Lebih Lama

  2. Bagaimana Cara Menghapus Persyaratan Kata Sandi Ubuntu ??

  3. Bagaimana cara membuat sudo meminta kata sandi root?

  1. Cara Mengubah Kata Sandi Sudo atau Root di Ubuntu

  2. Cara Menemukan/Mengubah Kata Sandi Root Default Ubuntu

  3. Cara Mengatur Ulang Kata Sandi Sudo