GNU/Linux >> Belajar Linux >  >> Linux

Cara Menjalankan Perintah Tertentu Tanpa Kata Sandi Sudo Di Linux

Saya menggunakan skrip di sistem Ubuntu saya yang digunakan di AWS. Tujuan utama skrip ini adalah untuk memeriksa apakah layanan tertentu berjalan pada interval reguler (tepatnya setiap satu menit) dan memulai layanan itu secara otomatis jika dihentikan karena alasan apa pun. Tetapi masalahnya adalah saya memerlukan hak sudo untuk memulai layanan. Seperti yang mungkin sudah Anda ketahui, kami harus memberikan kata sandi ketika kami menjalankan sesuatu sebagai pengguna sudo. Tapi aku tidak ingin melakukan itu. Yang sebenarnya ingin saya lakukan adalah menjalankan layanan sebagai Sudo tanpa kata sandi. Jika Anda pernah berada dalam situasi seperti ini, saya tahu sedikit solusi. Hari ini, dalam panduan singkat ini, saya akan mengajari Anda cara menjalankan perintah tertentu tanpa kata sandi sudo di Linux dan sistem operasi mirip Unix.

Lihat contoh berikut.

$ sudo mkdir /ostechnix
[sudo] password for sk:

Seperti yang Anda lihat pada tangkapan layar di atas, saya perlu memberikan kata sandi sudo saat membuat direktori bernama ostechnix di folder root (/). Setiap kali kami mencoba menjalankan perintah dengan hak sudo, kami harus memasukkan kata sandi. Namun, dalam skenario saya, saya tidak ingin memberikan kata sandi Sudo. Inilah yang saya lakukan untuk menjalankan perintah sudo tanpa kata sandi di kotak Linux saya.

Penafian: Ini hanya untuk tujuan pendidikan. Anda harus sangat berhati-hati saat menerapkan metode ini. Metode ini produktif dan destruktif. Katakan misalnya, jika Anda mengizinkan pengguna untuk mengeksekusi 'rm' perintah tanpa kata sandi Sudo, mereka dapat secara tidak sengaja atau sengaja menghapus barang-barang penting. Anda telah diperingatkan!

Jalankan perintah tertentu tanpa kata sandi sudo di Linux

Untuk alasan apa pun, jika Anda ingin mengizinkan pengguna menjalankan perintah tertentu tanpa memberikan kata sandi sudo, Anda perlu menambahkan perintah itu di sudoers berkas.

Saya ingin pengguna bernama sk untuk mengeksekusi mkdir perintah tanpa memberikan kata sandi Sudo. Mari kita lihat bagaimana melakukannya.

Edit file sudoers:

$ sudo visudo

Tambahkan baris berikut di akhir file.

sk ALL=NOPASSWD:/bin/mkdir

Di sini, sk adalah nama pengguna. Sesuai baris di atas, pengguna sk dapat menjalankan 'mkdir' perintah dari terminal mana pun, tanpa kata sandi sudo.

Anda dapat menambahkan perintah tambahan (misalnya chmod ) dengan nilai yang dipisahkan koma seperti yang ditunjukkan di bawah ini.

sk ALL=NOPASSWD:/bin/mkdir,/bin/chmod

Simpan dan tutup file. Logout (atau reboot) sistem Anda. Sekarang, masuk sebagai 'sk' pengguna biasa dan coba jalankan perintah tersebut dengan sudo dan lihat apa yang terjadi.

$ sudo mkdir /dir1

Lihat? Meskipun saya menjalankan 'mkdir' perintah dengan hak sudo, tidak ada kata sandi Prompt. Mulai sekarang, pengguna sk tidak perlu memasukkan kata sandi sudo saat menjalankan 'mkdir' perintah.

Saat menjalankan semua perintah lain kecuali perintah yang ditambahkan dalam file sudoers, Anda akan diminta untuk memasukkan kata sandi sudo.

Mari kita jalankan perintah lain dengan sudo.

$ sudo apt update

Lihat? Perintah ini meminta saya untuk memasukkan kata sandi sudo.

Jika Anda tidak ingin perintah ini meminta Anda untuk menanyakan kata sandi sudo, edit file sudoers:

$ sudo visudo

Tambahkan 'apt' perintah dalam file visudo seperti di bawah ini:

sk ALL=NOPASSWD: /bin/mkdir,/usr/bin/apt

Apakah Anda memperhatikan bahwa jalur file yang dapat dieksekusi biner apt berbeda dari mkdir? Ya, Anda harus memberikan jalur file yang dapat dieksekusi yang benar. Untuk menemukan jalur file yang dapat dieksekusi dari perintah apa pun, misalnya 'apt' , gunakan 'whereis' perintah seperti di bawah ini.

$ whereis apt
apt: /usr/bin/apt /usr/lib/apt /etc/apt /usr/share/man/man8/apt.8.gz

Seperti yang Anda lihat, file yang dapat dieksekusi untuk perintah apt adalah /usr/bin/apt , maka saya menambahkannya di file sudoers.

Seperti yang telah saya sebutkan, Anda dapat menambahkan sejumlah perintah dengan nilai yang dipisahkan koma. Simpan dan tutup file sudoers Anda setelah Anda selesai. Keluar dan masuk kembali ke sistem Anda.

Sekarang, periksa apakah Anda dapat menjalankan perintah tanpa menggunakan kata sandi sudo:

$ sudo apt update

Lihat? Perintah apt tidak meminta saya kata sandi meskipun saya menjalankannya dengan sudo.

Berikut adalah contoh lain. Jika Anda ingin menjalankan layanan tertentu, misalnya apache2, tambahkan seperti yang ditunjukkan di bawah ini.

sk ALL=NOPASSWD:/bin/mkdir,/usr/bin/apt,/bin systemctl restart apache2

Sekarang, pengguna dapat menjalankan 'sudo systemctl restart apache2' perintah tanpa kata sandi sudo.

Unduhan yang Disarankan - Lembar Cheat Gratis:"Lembar Cheat Baris Perintah Linux"

Bisakah saya mengautentikasi ulang ke perintah tertentu dalam kasus di atas? Tentu saja ya! Hapus saja perintah yang ditambahkan. Logout dan login kembali.

Atau, Anda dapat menambahkan 'PASSWD:' direktif di depan perintah. Perhatikan contoh berikut.

Tambahkan/modifikasi baris berikut seperti yang ditunjukkan di bawah ini.

sk ALL=NOPASSWD:/bin/mkdir,/bin/chmod,PASSWD:/usr/bin/apt

Dalam hal ini, pengguna sk dapat menjalankan 'mkdir' dan 'chmod' perintah tanpa memasukkan kata sandi sudo. Namun, dia harus memberikan kata sandi sudo saat menjalankan 'apt' perintah.

Bacaan yang disarankan:

  • Cara Memberikan Dan Menghapus Hak Istimewa Sudo Kepada Pengguna di Ubuntu
  • Cara Mengubah File Log Sudo Default Di Linux
  • Cara Mengembalikan Hak Istimewa Sudo Kepada Pengguna
  • Cara Menemukan Semua Pengguna Sudo Di Sistem Linux Anda
  • Cara memaksa pengguna untuk menggunakan kata sandi root alih-alih kata sandi mereka sendiri saat menggunakan sudo

Linux
  1. Cara Menampilkan Tanda Bintang Saat Mengetik Kata Sandi Sudo di Linux

  2. Cara Menjalankan SCP Tanpa Interupsi Prompt Kata Sandi di Linux

  3. Bagaimana cara menjalankan skrip di latar belakang (linux openwrt)?

  1. Jalankan container di Linux tanpa Sudo di Podman

  2. Bagaimana menjalankan perintah bash Linux dalam skrip PERL?

  3. Bagaimana Cara Menjalankan Program Tertentu Sebagai Root Tanpa Prompt Kata Sandi?

  1. Cara Menjaga Sesi Timeout Kata Sandi 'Sudo' Lebih Lama di Linux

  2. Ssh – Perlu Tty Untuk Menjalankan Sudo Jika Saya Bisa Sudo Tanpa Kata Sandi?

  3. Kemungkinan:sudo tanpa kata sandi