루트에 su를 실행하면 내 사용자 이름을 볼 수 있는 명령이 있습니까?

루트에 su를 실행하면 내 사용자 이름을 볼 수 있는 명령이 있습니까?

Redhat 상자에 대한 sudo 권한이 있습니다. 일단 sudo su -쉘에서 루트가 되어야 한다면 어떤 명령을 실행하여 내가 사용하고 있는 사용자 이름을 확인할 수 있습니까?

답변1

쉘의 상위 프로세스는 이고 su -, 해당 상위 프로세스는 입니다 sudo su -. 따라서 sudo su -상위 프로세스를 실행하는 사용자를 찾으려면 두 단계로 뒤로 검색 해야 합니다 ps.

ps -o user= $(ps -o ppid= $(ps -o ppid= $PPID))

sudo su -하지만 sudo 버전이 사용하기에 너무 오래되지 않은 경우에는 이 작업을 수행하면 안 됩니다 sudo -i. Sudo는 환경 변수를 SUDO_USERsudo를 실행하는 사용자의 이름으로 설정합니다. 환경을 훼손하기 sudo su - 때문에 볼 수 없습니다 .su -

$ sudo -i
# echo $SUDO_USER
gilles

답변2

명령을 실행하면 whoami다음과 같은 결과가 반환됩니다.

gladimdim tty2        2011-01-27 23:54 (:0)

굵은 글씨의 "gladimdim"은 원래 시스템에 로그인한 사용자입니다.

답변3

나는 그가 의미하는 바가 다음과 같다고 생각합니다.

$ who -am i

다음과 같이 동일하게 구문 분석할 수 있습니다.

$ who -am

"-a"는 현재 로그인한 모든 사용자를 나열하고 "-m"은 STDIN과 연관된 사용자를 필터링합니다(실제로는 하나여야 함). 즉, 누가 터미널에 로그인했는지 알려줍니다. 이것이 당신이 찾고 있는 것입니다.

$ who -am

관련 정보