다른 사용자가 명령에 전달 된 인수를 볼 수 있습니까?


21

다음과 같은 인수로 명령을 호출하면

bob@bob-pc:~$ command -arg1 -arg2

... 다른 사용자가 명령에 전달 된 인수를 볼 수 있습니까?


이 질문에 대한 간단한 "예" "아니오"답변은 내용과 제목과 모순 될 것입니다 : P
kizzx2

@ kizzx2 : 수정되었습니다.
bahamat

답변:


13

일반적으로 그렇습니다. 이것은 w맨 페이지 에서 온 것입니다 .

각 사용자에 대해 로그인 이름, tty 이름, 원격 호스트, 로그인 시간, 유휴 시간, JCPU, PCPU 및 현재 프로세스의 명령 행 항목이 표시됩니다.

현재 실행중인 프로세스의 전체 명령 줄이 표시됩니다. 그렇기 때문에 명령 줄 인수를 통해 암호와 같은 것을 제공하고 싶지 않습니다.


비활성화 할 방법이 없습니까?
Nathan Osman

3
@George rdesktop이 어떤 식 으로든 수행하기 때문에 (암호 인수가로 바 XXXXXXXX;); 방법을 알고 싶습니다. 그것은 스스로를 포크하고 가짜 주장을 전달하는 것과 같은 절름발이의 일을 할 수도 있습니다. 잘 모르겠습니다
Michael Mrozek

13
Linux에서 프로세스는 전달 된 인수 배열을 겹쳐 쓸 수 있습니다. 이것은 다른 사용자가 볼 수있는 프로세스 트리에 반영됩니다. 그러나 여전히 노출 될 때가 항상 있으며 경쟁 조건 및 타이밍 공격에 취약 할 수 있습니다.
mattdm

15

일반적으로 명령 행 인수는 모두에게 표시됩니다. 예를 들어, OpenBSD에서 루트가 아닌 사용자로서 루트로 실행되는 프로세스의 인수를 볼 수 있습니다.

$ ps -U root -o command= |grep getty |head -n 1
/usr/libexec/getty std.9600 ttyC0

Linux에서는 모든 /proc/*/cmdline파일을 읽을 수 있음을 알 수 있습니다.

명령 행 인수가 개인용으로 유지되는 매우 구체적인 설정이있을 수 있습니다. 예를 들어 SELinux와 Solaris는 다른 사용자로부터 프로세스를 숨길 수 있습니다 . 그러나 당신이 그런 설정에 있다는 것을 절대적으로 알지 못한다면 명령 줄 인수가 공개라고 가정하십시오.


8

표준 설정에서는 인수가 표시됩니다. 로서 이미 언급 , 프로세스는 메모리에 덮어 쓸 수 있지만 다른 프로세스를 볼 수있는 기회가하지 전에.

그러나 grsecurity 패치 세트 에는 패치를 변경하는 패치가 포함되어있어 프로세스 소유자 (및 루트)만이 프로세스에 전달 된 인수를 볼 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.