Saya telah menghadapi masalah yang sama dan saya tidak diizinkan menjalankan apa pun selain sudo su - devuser
di server dev, jadi inilah yang saya kemukakan:
- Dalam. Profil profil beralih kembali ke rumah pengguna sebelumnya jika ditemukan:
prev_user_home=$(~/bin/home.sh)
if [ -n $prev_user_home ] ; then
cd $prev_user_home
fi
- Sebuah skrip untuk menentukan pengguna sebelumnya. Script ditempatkan di direktori bin devuser:
#!/bin/bash
#brings you back home after sudo su
function get_owner {
pid=$1
echo $(ps ouid -p $pid h | tr -d ' ')
}
pid=$$
my_uid=$(get_owner $pid)
uid=$my_uid
i=0
while [[ $uid == $my_uid && $i -lt 20 ]] ; do
pid=$(ps -o ppid= $pid)
uid=$(get_owner $pid)
i=$((i+1))
done
user_home=$(getent passwd $uid | cut -d ':' -f '6')
if [[ -d $user_home && $uid != 0 ]] ; then
echo $user_home
fi
Ini naik pohon proses dan memeriksa apakah proses yang memiliki pengguna berubah.