Saya perlu menjalankan skrip, saat sesi dibuka, sebagai pengguna yang membuka sesi.
Saya telah menambahkan di /etc/pam.d/common-session :
session optional pam_exec.so log=/tmp/test_pam_foo.log /usr/local/bin/test_pam_foo.sh
Saya juga mencoba mengaktifkan opsi pam_exec seteuid
Skrip dasar /usr/local/bin/test_pam_foo.sh :
#!/bin/sh
id -u >> /tmp/test_pam_foo
id -ru >> /tmp/test_pam_foo
Sayangnya, saya selalu mendapatkan sebagai id efektif dan id asli.
Apakah saya melewatkan sesuatu?
Sebagai alternatif, saya tahu keberadaan pam_script, jangan bingung dengan pam-script.
Pam_script itu berjalan secara default sebagai pengguna saat ini dan memiliki opsi runas
untuk memaksa dijalankan sebagai root. Tetapi saya ingin memberikan hak istimewa penggunaan pam libs yang sudah dikemas dalam distribusi saya (Ubuntu 12.04).
Jawaban yang Diterima:
Nah, Anda dapat memiliki /usr/local/bin/test_pam_foo.sh
ubah pengguna karena ada di PAM_USER
variabel lingkungan.
Waspadalah terhadap catatan di pam_exec
halaman manual tentang pengguna yang berpotensi mengontrol lingkungan (tergantung pada layanan apa yang menggunakannya (seperti su
)). Jadi menggunakan skrip mungkin bukan ide yang baik di sana (bahkan jika Anda memperbaiki $PATH
dan variabel bermasalah lainnya, akan ada beberapa yang tidak dapat Anda lakukan, seperti SHELLOPTS atau BASH_ENV untuk skrip bash).
Sebaiknya gunakan pembungkus untuk mengubah pengguna sebelum memanggil skrip Anda.