sudo: Bagaimana mengizinkan hanya satu argumen untuk suatu perintah?


8

Saya ingin menambahkan entri ke suoders saya untuk memungkinkan satu pengguna untuk menjalankan perintah dengan tepat satu argumen non-opsi.

# tail -1 /etc/sudoers
ALL     ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user: 

Bisakah saya melakukannya dengan menggunakan sudoers sytnax? Atau apakah saya perlu membuat skrip pembantu?


apakah ini merupakan argumen yang selalu seperti -abc? atau dapatkah itu bervariasi?
Mike

The [a-z]*sudah argumen saya inginkan. Jadi ini adalah argumen variabel. (Saya menggunakan / bin / echo hanya untuk pengujian.)
Elrond

Jawaban:


8

Sepengetahuan saya, Anda tidak bisa meneruskan argumen non-perintah ke sudo jika argumen itu bervariasi.

Anda dapat menentukan sesuatu seperti ini:

users ALL=(ALL) NOPASSWD: /usr/bin/tail /some/file

Ini akan memungkinkan pengguna untuk mengikuti file tertentu tetapi tidak file lain.

Jika Anda harus meneruskan variabel, saya sarankan skrip pembungkus.

Berikut adalah contoh pembungkus rsync:

https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo

Jika Anda mencari Google untuk pembungkus sudo, Anda dapat menemukan lebih banyak contoh.

Pastikan untuk membuat hard code semua jalur dan menjalankan pemeriksaan kewarasan pada input jika pengguna tidak dapat dipercaya.


2
Harus memiliki cek kewarasan pula. Tidak percaya siapapun! [/ paranoid]
Nathan C
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.