Masalah saya: Saya punya program Python, dan pengguna meluncurkannya menggunakan sudo. Terkadang saya harus mendapatkan rumah pengguna, dan saya bisa melakukan ini hanya dengan mengetahui namanya:
import pwd
pwd.getpwnam(username)
Jadi: bagaimana saya bisa mendapatkan nama pengguna yang meluncurkan program?
Terima kasih untuk nasehatnya. Ok, saya akan mengatur
—
rubik
euiduntuk saya SUDO_UID.
sudobiarkanHOMEvariabel lingkungan tetap utuh (ini dapat diganti pada saat kompilasi atau run-time). Tetapi Anda mungkin atau mungkin tidak dapat menggunakan variabel lingkungan, tergantung pada apa yang Anda inginkan terjadi jika pengguna menentukan nilai yang berbeda untukHOME(bagaimana jika bob berjalanHOME=/home/joe sudo your_script?). Anda mungkin harus mengatur euid Anda ke pengguna panggilan (diberikan olehSUDO_UID) sebelum membuat akses sistem file apa pun (terlepas dari apa pun yang sebenarnya membutuhkan izin root di skrip Anda).