setuid 프로세스가 해당 사용자가 소유 한 프로세스를 볼 수 없습니다.


1

나는 비 루트 사용자를주고 싶다. ( nicollet ) 아파치 2에 의해 시작된 프로세스를 감지하고 신호를 보내는 기능 (프로세스는 FastCGI 스크립트이고 신호는 캐시를 비우라고 알려줍니다). 프로세스는 웹 사용자가 소유합니다 ( www-data ), 나는 데비안 불안정한 상태로 운영되고있다.

나는 어떤 방법을 찾을 수 없습니다. nicollet 사용자는 해당 프로세스를 볼 수 있습니다.

프로세스가 실행 중이고 두 프로세스 모두에서 볼 수 있습니다. rootwww-data:

root@linux-01:~# ps -Af | grep baryton
www-data 17649 17648  0 10:27 ?        00:00:00 baryton
www-data 28145     1  0 Nov01 ?        00:00:12 baryton --bot
root     18701 18700  0 10:46 pts/0    00:00:00 grep baryton
root@linux-01:~#

그러나, 같은 명령을 내 nicollet 사용자는 아무것도 반환하지 않습니다.

nicollet@linux-01:~$ ps -Af | grep baryton
nicollet 18704 18703  0 10:46 pts/0    00:00:00 grep baryton
nicollet@linux-01:~$

위의 쿼리를 실행하는 실행 파일을 만들어 보았습니다. system(). 그것은에 속한다 www-data setuid 비트가 설정되어있다.

root@linux-01:~# which setuid-update
/usr/local/bin/setuid-update
root@linux-01:~# ls -l /usr/local/bin/setuid-update 
-rwsr-xr-x 1 www-data www-data 11046 Nov  2 10:27 /usr/local/bin/setuid-update
root@linux-01:~#

그러나, 나는 같은 상황을 관찰한다. rootwww-data 하지만 nicollet:

root@linux-01:~# setuid-update
www-data 17649 17648  0 10:27 ?        00:00:00 baryton
www-data 28145     1  0 Nov01 ?        00:00:13 baryton --bot
www-data 18712 18711  0 10:46 pts/0    00:00:00 sh -c ps -Af | grep baryton
www-data 18714 18712  0 10:46 pts/0    00:00:00 grep baryton
root@linux-01:~# su nicollet
nicollet@linux-01:~$ setuid-update
www-data 18716 18715  0 10:46 pts/0    00:00:00 sh -c ps -Af | grep baryton
www-data 18717 18716  0 10:46 pts/0    00:00:00 grep baryton
nicollet@linux-01:~$

가장 놀라운 것은 grep 프로세스가 실제로 실행됩니다. www-data (setuid 실행 파일에서 시작 되었기 때문에) 표시되지만 baryton 프로세스가 아닙니다.

무슨 일 이니? 왜 그런가? ps ~에 의해 달리다 www-data 프로세스를 보여 주지만 ps 실행중인 setuid 실행 파일로 실행 www-data 그럴 수 없다. nicollet?

답변:


2

수년 동안 일반 사용자 계정을 커널 수준에서 제한하여 자신의 프로세스 만 볼 수있었습니다. 이 제한은 grsecurity, SELinux 및 기타 보안 프레임 워크에서 가능하지만 기본적으로 배포본에서는 사용되지 않습니다.

데비안 불안정 지점을 (Lenny를 실행하면서) 잠시 동안 시도하지 않았지만 최근에는 커널 구성에서 스위치를 토글했습니다. setuid 실행 파일로 원래의 uid (nicollet)는 여전히 알려져 있고 EUID (effective uid) 만 변경됩니다.

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