, печатающий пользователя подоболочки, получающего root через su -

Могу ли я распечатать имя пользователя, которое получает root-доступ через su - на корневой консоли после получения root?

user1$ su -
password:

obtained root via user1
#
2
задан 27 March 2016 в 02:04
2 ответа

Раньше я рекомендовал сценарий ниже ... Я нашел способ получше! :) Просто выполните:

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 , если используете интерактивные оболочки без входа в систему.

2
ответ дан 3 December 2019 в 10:38

who am i | awk '{print "Получен root через" $ 1}'

Добавьте его в файл root .bashrc для выполнения, когда вы su .

Вы также можете попробовать

pstree -p -u | grep "$$"

, чтобы увидеть всю цепочку процессов с именами пользователей. Это может быть полезно, если вы вложили su с несколькими пользователями.

1
ответ дан 3 December 2019 в 10:38

Теги

Похожие вопросы