Jalankan skrip sebagai pengguna yang berbeda dari root [ditutup]

11

Dari pengguna root, bagaimana saya bisa memberikan izin kepada pengguna lain untuk mengeksekusi file /root/script.sh?

Idenya adalah menjalankan skrip seperti sudo -u user1 /root/script.sh

bulkmoustache
sumber
1
Pertanyaannya tidak sepenuhnya jelas: "Anda root dan ingin menjalankan skrip sebagai user1" atau "Anda pengguna1 dan ingin menjalankan skrip sebagai root"? Jika yang pertama adalah masalahnya, apa masalah dengan sudoperintah yang Anda tulis?
michas
Lihatsu(1)
vonbrand

Jawaban:

11

Saya harus mengatakan saya tidak pernah suka sudo(terutama konfigurasinya). Tua polos su:

su -c 'command' - user

Dieksekusi dari root, itu tidak akan meminta kata sandi.

orion
sumber
0

Pengguna harus memiliki

  1. mengeksekusi izin untuk seluruh jalur direktori ( /roothanya di sini )

  2. mengeksekusi izin untuk file tersebut

  3. baca izin untuk file tersebut

Mungkin ide yang bagus untuk /roottidak tersentuh dan membuat (atau menggunakan) direktori yang berbeda untuk tujuan ini (misalnya /usr/local/bin). Anda dapat membuat user1satu-satunya pengguna yang diizinkan untuk mengeksekusi skrip dengan menjadikannya pemilik file atau meninggalkan rootsebagai pemilik dan grup, mengatur izin akses sederhana ( chmod) ke 770dan menambahkan user1dengan ACL ( setfacl).

Hauke ​​Laging
sumber
0

Jika skrip Anda terletak di direktori root, maka

$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar  5 20:14 /root

user1 hanya bisa di-root.

/etc/sudoersEntri Anda akan terlihat seperti

Cmnd_Alias SCRIPT=/root/script.sh

# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT

Anda biasanya mengedit file dengan visudo

Maka Anda juga tidak perlu melakukan perintah -u rootAnda sudo.

The %berarti kelompok pengguna. Ketika Anda meninggalkannya maka hanya pengguna yang diizinkan untuk menjalankan perintah. Jika Anda ingin sekelompok pengguna untuk menjalankannya, biarkan seperti itu.


sumber