모든 사람들이 sudo를 사용한다면, ps -ax | grep sudo
현재 누가 사용하고 있는지 sudo
또는 env1-controller
달리기 who
를 통해 누군가가 실제로 그것을 사용하고 있는지 알 수 있습니다.
내 컴퓨터에서 내 컴퓨터의 예를 들어 ps -ax | grep sudo
다음과 같이 출력됩니다 .
24324 pts/0 S 0:00 sudo su <user>
첫 번째 항목은 PID이고, 두 번째 항목은 TTY, 세 번째 및 마지막 명령입니다. 사용하는 경우 who
현재 로그인 한 사용자 및 사용중인 TTY 목록이 표시됩니다. 다음과 같이 보일 수 있습니다 :
<user> pts/0 Nov 23 10:24 (<IP>)
<user> pts/2 Nov 23 10:25 (<IP>)
따라서이 조합을 통해 sudo
사용자가 사용하는 모든 것에 연결되어 있음을 알 수 있습니다 pts/0
. 이것이 수동 확인 방법입니다.
내 생각 엔 그 정보를 결합하는 것이 가능하지만 내 bash 기술은 그 방법에 대한 답변을 게시하기에 충분하지 않습니다.
질문의 최초 작성자가 사용한 최종 솔루션은 다음과 같습니다.
실제로 grep을 사용하여 정확한 TTY 번호를 추출한 ps -aux | grep -v grep | grep "sudo su - whoami" | grep -E -o 'pts/[0-9]+' | grep -E -o '[0-9]+'
다음 ls -l /dev/pts/${id}
TTY를 소유 한 사람을 결정하는 데 사용 했습니다.
이것이하는 일은 :
ps -aux
추가 정보를 포함하여 실행중인 모든 프로세스 목록을 얻는 데 사용 하십시오.
grep
grep
grep을 출력에서 제외하기 위해 포함되지 않은 모든 행
grep
포함하는 모든 프로세스에 대한 행 sudo
.
grep
pts/<number>
그 줄 의 텍스트 .
grep
숫자 만.
ls
해당 TTY의 소유자를 확인하는 데 사용하십시오 .
해당 정보를 사용하여이 작업을 시도 할 수 있습니다 (누가 사용하려는 경우).
who | grep $(ps -ax | grep -v grep | grep "sudo su - whoami" | grep -E -o 'pts/[0-9]+')
그러나 출력에 $()
여러 줄이 있기 때문에 단일 결과가있는 한 작동 합니다. 보시다시피 기본 스크립트가 작동하는 데 추가 정보가 필요하지 않으므로 u
에서를 건너 뜁니다 ps
.
sudo
당신은 라인을 따라 뭔가를 사용하여 고려할 수ps -ax | grep sudo
현재 사용하고있는 볼sudo
또는env1-controller
실행하고who
당신이 실제로 그것을 실행하는 사람에 대한 아이디어를 얻을 수 있습니다.