pengembangan-web-mp.com

Bagaimana saya bisa mengizinkan satu pengguna untuk su ke yang lain tanpa mengizinkan akses root?

Saya ingin mengizinkan pengguna tertentu untuk masuk ke akun pengguna lain tanpa harus mengetahui kata sandi akun itu, tetapi tidak mengizinkan akses ke akun pengguna lain (mis. Root).
Misalnya, saya ingin mengizinkan Tom DBA untuk su ke pengguna Oracle, tetapi tidak untuk pengguna atau root Tomcat.

Saya membayangkan ini bisa dilakukan dengan file/etc/sudoers - apakah mungkin? Jika ya, bagaimana caranya?

56
gharper

Ya, ini mungkin.

Di / etc/sudoers item yang langsung mengikuti equals adalah pengguna yang perintahnya akan dieksekusi sebagai.

tom  ALL=(Oracle) /bin/chown tom *

Pengguna (tom) dapat mengetik Sudo -u Oracle/bin/chown tom/home/Oracle/oraclefile

45
Brent

Tambahkan ke/etc/sudoers Anda seperti

tom ALL=(Oracle) ALL

Maka pengguna tom harus dapat menggunakan Sudo untuk menjalankan sesuatu sebagai pengguna Oracle dengan opsi -u, tanpa membiarkan tom

Yaitu. mendapatkan Shell sebagai pengguna Oracle (well, mengingat Sudo Anda cukup baru untuk memiliki opsi -i).

Sudo -u Oracle -i
42

Untuk HANYA memberikan kemampuan dalam pertanyaan, tambahkan berikut ini ke/etc/sudoers:

tom            ALL=(Oracle)    /bin/bash

Maka tom bisa:

Sudo -u Oracle bash -i
9
karimofthecrop

Sebagai contoh, saya ingin mengizinkan Tom the DBA untuk su ke pengguna Oracle, tetapi tidak untuk pengguna atau root Tomcat.

Saya perlu melakukan ini pada sistem baru-baru ini dan mengalami kesulitan menemukan catatan saya pada pengaturan alternatif yang saya gunakan bertahun-tahun lalu yang juga memungkinkan sintaks su <user>. Dalam situasi saya, saya perlu mengizinkan beberapa pengguna untuk su untuk pengguna tertentu.

Buat grup menggunakan addgroup <groupName> yang dapat dilakukan pengguna lain su hingga tanpa kata sandi. Kemudian tambahkan grup itu ke setiap pengguna yang Anda ingin dapat su ke pengguna itu tanpa kata sandi: usermod -a -G <groupName> <userName> (atau usermod -a -G Oracle tom). Perubahan grup mungkin tidak berpengaruh hingga login berikutnya.

Catatan: Dalam kasus Anda, Anda sudah memiliki grup karena Oracle grup akan dibuat ketika Anda membuat pengguna Oracle dengan adduser Oracle.

Sekarang edit /etc/pam.d/su dan di bawah ini:

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so

baris aturan ..add auth sehingga bagian ini terlihat seperti ini:

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so
auth       [success=ignore default=1] pam_succeed_if.so user = <groupName>
auth       sufficient   pam_succeed_if.so use_uid user ingroup <groupName>

Ganti <groupName> dengan Oracle dalam kasus ini. Ini akan memungkinkan setiap pengguna yang merupakan bagian dari <groupName> hingga su <groupName>

Sekarang tom bisa su Oracle dan jika Anda perlu memberi pengguna lain akses yang sama, tambahkan mereka ke grup Oracle.

pertanyaan serupa di sini

0
jtlindsey