Могу ли я распечатать имя пользователя, которое получает root-доступ через su -
на корневой консоли при получении root?
user1$ su -
password:
obtained root via user1
#
Раньше я рекомендовал сценарий ниже ... Я нашел способ получше! :) Просто выполните:
logname
Также вы можете использовать $SUDO_USER
, но не работает, если вы используете sudo su -
Кстати, who am i
как who -m
Этот скрипт также выполняет свою работу:
#!/bin/bash
curpid=`awk '/^PPid:/{print $2}' /proc/$BASHPID/status`
ppui=`awk '/^PPid:/{print $2}' /proc/$curpid/status`
ppui=`awk '/^PPid:/{print $2}' /proc/$ppui/status`
uid=`awk '/^Uid:/{print $2}' /proc/$ppui/status`
name=`cat /etc/passwd | grep $uid | awk -F: '{print $1}'`
echo $name
Позвони через .bash_profile
если вы используете оболочки входа или .bashrc
при использовании интерактивных оболочек без входа в систему.
who am i|awk '{print "Obtained root via "$1}'
Добавьте его в root .bashrc
казнить, когда ты su
.
Вы также можете попробовать
pstree -p -u |grep "$$"
чтобы увидеть всю цепочку процессов с именами пользователей. Это может быть полезно, если вы вложили su
с несколькими пользователями.