root로 실행해야하는 perl 스크립트가 있지만 스크립트를 실행하는 사용자가 스크립트 중에 제거되므로 'foo'사용자로 로그인하지 않았는지 확인해야합니다.프로세스가 시작된 원래 사용자 이름을 어떻게 알 수 있습니까?
로그인 한 후 수 차례에 걸쳐 su-ed를했을 가능성이있는 사용자가 해당 체인의 'foo'를 가장 한 적이 없는지 어떻게 알 수 있습니까?
다음 두 쉘 스크립트를 호출하는 재미있는 perl 스크립트를 찾았지만 Solaris에서만 작동 할 것이라고 생각합니다.
my $shell_parent =
`ps -ef | grep -v grep | awk \'{print \$2\" \"\$3}\' | egrep \"^@_\" | awk \'{print \$2}'`;
my $parent_owner =
`ps -ef | grep -v grep | awk \'{print \$1\" \"\$2}\' | grep @_ | awk \'{print \$1}\'`;
이 리눅스와 솔라리스 모두에서 작동 할 필요가 나는 오히려 그에게 호출을 반복 껍질을 제거하고 Perl로 모든 일을 계속 것입니다.
프로세스 테이블 물건이 무섭게 인자를 취하지하고 밖으로 그것을 껍질을 수행하는 CPAN 물건의 대부분이 '어쨌든 ps' 오신 것을 환영합니다 :-)에게 있습니다. 리눅스에서 포격하지 않고 코드를 작성할 수는 있지만 솔라리스 (또는 솔라리스 상자)에서 똑같이 할 수있는 지식이 없습니다. – hobbs
Blarg, Solaris는 멋지고 깔끔하고 발견 가능한'/ proc' 인터페이스는 시스템 헤더 파일에 정의 된 모든 이진 구조입니다. – hobbs
@hobbs : http : //search.cpan.org/~ durist/Proc-ProcessTable-0.45/견고한 것 같습니다. – Hasturkun