Saya ingin membuat skrip bash yang harus dijalankan dengan sudo tetapi harus memperhitungkan nama pengguna non-sudo yang mengeksekusinya. Jadi, jika pengguna bob
menjalankan sudo ./myscript.sh
saya ingin myscript.sh
tahu bob
adalah orang yang menjalankannya.
Mari kita lihat ke dalam myscript.sh
:
USER=$(whoami)
# Do something that takes into account the username.
Bagaimana saya bisa tahu nama pengguna yang menelurkan proses? Lebih khusus, apa yang harus saya gunakan daripada whoami
untuk mendapatkan bob
dan tidak root
?
#!/usr/bin/env bash
di skrip bash saya.
sh
atau sesuatu yang lain.
USER=$(whoami)
. Perhatikan bahwaUSER
sudah ada sebagai variabel internal shell. Juga, jika skrip bash, jangan jalankan dengan menggunakansh
, yang hanya memiliki subset fitur yang kompatibel dengan POSIX.