Masalah mengeksekusi perintah sebagai pengguna yang berbeda dengan sudo -u


12

Ketika saya mencoba mengeksekusi lssebagai pengguna abcdengan perintah berikut ini saya mendapatkan kesalahan:

xyz@host:~/temp$ sudo -u abc ls
[sudo] password for xyz:
Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host.

Tetapi jika saya lakukan su abcdan kemudian jalankan lssaya tidak punya masalah

Jawaban:


17

Anda harus mengkonfigurasi kebijakan keamanan sudo untuk memungkinkan pengguna xyz exec sesuatu sebagai pengguna abc. Baca 'man sudoers' dan gunakan perintah visudo untuk mengkonfigurasi / etc / sudoers.

Sebagai contoh mari kita izinkan pengguna xyz exec / usr / bin / whoami sebagai pengguna abc tanpa kata sandi. Tambahkan string ini ke / etc / sudoers (dengan visudo, jangan edit / etc / sudoers secara langsung):

xyz ALL = (abc) NOPASSWD: /usr/bin/whoami

Dan sekarang mengujinya:

xyz@host:~$ sudo -u abc /usr/bin/whoami
abc

apakah Anda keberatan menjelaskan mengapa harus menghindari edit / etc / sudoers secara langsung?
Adi Prasetyo

Karena ketika Anda mengedit / etc / sudoers secara langsung, Anda dapat membuat kesalahan, memecah file sudoers dan (dalam skenario terburuk) memblokir diri Anda dengan menggunakan sudo. 'Visudo' bukan hanya editor, tetapi juga memeriksa sintaksis file sudoers dan membantu menghindari kesalahan, kesalahan pengetikan, dll.
svq

4

Ini karena sudoberbeda dari su. Saat Anda su abc, Anda menjadi pengguna abcsejauh menyangkut sistem. Anda kemudian dapat melakukan apa saja yang abcdapat dilakukan.

Di sisi lain, sudodigunakan untuk memungkinkan pengguna lain untuk menjalankan beberapa perintah dengan proxy. Dengan kata lain, sudokonfigurasi Anda memungkinkan Anda melakukan beberapa perintah atas nama abc. Jika perintah yang Anda coba jalankan bukan salah satunya, Anda mendapatkan kesalahan yang Anda laporkan.


0

Seandainya semuanya terlihat baik-baik saja, tetapi Anda masih menerima Sorry user xxx cannot execute...pesan dan terus meminta sudokata sandi setiap kali.

Kamu bisa melakukan ini:

  1. Di /etc/sudoerslini delete dengan pengaturan pengguna Anda
  2. Menyimpan file
  3. Buka file, ketik (TANPA COPING) pilihan Anda untuk pengguna itu
  4. Menyimpan file
  5. Cobalah.

Ini berhasil untuk saya. Ternyata akhiran di baris itu buruk karena saya menyalin perintah yang membutuhkan eksekusi dari email.


Tentunya jika Anda terbiasa visudomengeditnya sejak awal, Anda akan diberitahu itu?
Auspex

Tidak, kamu tidak akan.
borbar

Ah, baiklah. Saya benar-benar akan berpikir ... Bagaimanapun, saya pikir Anda jauh lebih mungkin untuk mendapatkan kesalahan mengetik secara manual daripada dari salin dan tempel. Perlu diketahui bahwa line-end berbeda.
Auspex
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.