이 사용자는 언제 작성 되었습니까?
언급 한 경우 시스템 설치시 작성되었습니다. 이 사용자 계정 은 몇 십년 전의 기존의 계정 입니다. 그들은 또한 표준화되어 있습니다. Linux Standard Base는 다음과 같이 나뉩니다.
- 필요한 표준 사용자는 계정
root
, bin
및 daemon
; 과
- 옵션 표준 사용자 계정
adm
, lp
, sync
, shutdown
, halt
, mail
, news
, uucp
, operator
, man
, 및nobody
여기에 언급 된 다른 사용자 계정 - pulse
, avahi
, colord
, 및 Debian-exim
(py4on의 암호 파일에서 하나 선택하기) - 당신의 다음 질문으로 우리를 데리고.
이들은 새로운 프로그램 설치와 어떤 관련이 있습니까?
비표준 사용자 계정은 해당 패키지가 설치 및 제거 될 때 다양한 패키지에 대한 "유지 관리자 스크립트"에 의해 생성 및 삭제됩니다. 사용자 계정은 패키지의 소위 postinst
관리자 스크립트에 의해 생성되며 ,이 스크립트 getent
는 사용자 계정이 이미 존재하는지 여부를 확인하기 위해 실행 됩니다 useradd
. 이론적으로 패키지의 소위 postrm
관리자 스크립트 인 running에 의해 삭제됩니다 userdel
.
실제로 패키지의 사용자 계정은 삭제되지 않습니다. 페도라 위키 (qv)는 이것이 어렵다고 설명합니다. 이 이론적 근거에 대한 예제는 데비안 버그 # 646175 를 참조하십시오 . 여기서 패키지를 제거 할 때 사용자 계정 을 삭제 하지 않고rabbitmq
해당 계정의 문제로 계속 실행되는 dæmon 관련 문제를 해결 하기로 결정했습니다 .
이 프로그램들은 어떻게 다른 UID로 시작 되었습니까?
Unix와 Linux에서 수퍼 유저의 시대에 따라 실행되는 프로세스는 사용자 계정을 다른 것으로 변경하고 동일한 프로그램을 계속 실행할 수 있지만 그 반대는 허용되지 않습니다. set-UID 메커니즘을 사용해야합니다.
데몬 관리 시스템은 수퍼 유저로 실행됩니다. 구성 데이터는 특정 사용자 계정의 특정 요원에서 특정 데몬이 실행되도록 지정합니다.
- System 5
rc
에서 스크립트 는 옵션 과 /etc/init.d
같은 도우미 도구 를 사용합니다 .start-stop-daemon
--chuid
- 데몬 툴즈 가족 서비스 관리자와의
run
스크립트 호출 setuidgid
, s6-setuidgid
, chpst
, 또는 runuid
사용자 계정 이름. /unix//a/179798/5132 에는 nagios
사용자 계정 을 설정하는 예가 있습니다.
- upstart를 사용하면
setuid
작업 파일에 사용자 계정을 지정 하는 스탠자가 있습니다. 이것은 특히 세분화되지 않고 때로는 /superuser//a/723333/38062에 설명 된 내용을 원합니다 .
- systemd를 사용
User=
하면 서비스 계정 파일에 사용자 계정을 지정하는 설정이 있습니다.
데몬 관리 시스템이 데몬이되기 위해 프로세스를 생성하면 이러한 메커니즘은 수퍼 유저 권한을 삭제 하여 권한이없는 사용자 계정의 영향으로 데몬 프로세스가 계속 실행되도록합니다.
좋은 악마 관리가 이런 식으로 수행되는 이유 는 상당히 길다 . 그러나 당신은 이유를 묻지 않았습니다. 언제, 어떻게, 언제 만. ☺ 따라서 매우 간단한 문구 :
유닉스와 리눅스 운영 체제는 서로 다른 사용자 계정으로 실행되는 프로세스를 격리시킵니다. 역사적으로, 수퍼 유저로 실행 된 데몬을 인계 할 수 있었다면 원하는 것을 할 수있었습니다. 반면, 권한이없는 계정으로 인해 실행되는 데몬은 권한이없는 계정이 할 수있는 파일, 디렉토리, 장치 및 프로세스에만 액세스 할 수 있습니다. 의 시스템 상호 untrusting 데몬 프로그램이 모두 다른 사용자 계정의 aegises에서 실행 및 액세스 / 제어 서로의에없는 파일 / 디렉토리 / 프로세스 / 장치 따라서, 즉 더 힘들어 크랙하는 것입니다 (내부, 신뢰).
추가 자료