Могу ли я распечатать имя пользователя, которое получает root-доступ через su -
на корневой консоли после получения root?
user1$ su -
password:
obtained root via user1
#
Раньше я рекомендовал сценарий ниже ... Я нашел способ получше! :) Просто выполните:
logname
Также вы можете использовать $ SUDO_USER
, но не работает, если вы используете sudo su -
Между прочим, кто я
похож на 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 "Получен root через" $ 1}'
Добавьте его в файл root .bashrc
для выполнения, когда вы su
.
Вы также можете попробовать
pstree -p -u | grep "$$"
, чтобы увидеть всю цепочку процессов с именами пользователей. Это может быть полезно, если вы вложили su
с несколькими пользователями.