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_USER
sudo를 실행하는 사용자의 이름으로 설정합니다. 환경을 훼손하기 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