UID 1을 가진 사용자는 모든 시스템에서 "데몬"입니까?

UID 1을 가진 사용자는 모든 시스템에서 "데몬"입니까?

몇 가지 테스트 코드를 작성 중인데 UID 1을 가진 사용자의 이름이 모든 Unix 시스템에서 "daemon"이라고 가정하면 이식 가능한지 궁금합니다.

편집하다: 그렇지 않다면(대답은 '아니요'인 것 같습니다) UID/사용자 이름 매핑이 있습니까?Unices 전체에서 일관성이 있습니까(이미 사용하고 있는 0/root 제외)?

답변1

아니요, 모든 곳에서 그런 것은 아닙니다. CentOS 7 시스템의 경우 다음에서 발췌 /etc/passwd:

bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

Linux에서는 를 사용하여 getent passwd daemon사용자의 UID를 찾고 daemon, getent passwd 1UID가 1인 사용자를 찾을 수 있습니다.

답변2

아니요. Linux의 경우 bin위치 daemon가 바뀌었습니다. 예전에는 1위와 2위 bin였습니다 . daemonMinix에서 #1/bin은 실제로 운영 체제 커널에 의해 반권한을 부여받았습니다(즉, #0/root와 약간 비슷함). Solaris에서는 UID #1이 호출 daemon되고 GID #1이 호출됩니다 . others이는 새 사용자의 기본 그룹입니다(설치 중에 "role"을 사용하여 생성된 사용자는 제외 ).rootstaff

UID #0은 물론 root... GID #0은 보통 rootor 입니다 wheel.

내 생각엔 유일한필수의사용자와 그룹은 #0입니다. 그러나 bindaemon그룹 도 갖는 것이 좋습니다 ./빈 및 //스빈. 그런 다음 다양한 시스템 파일과 디렉터리를 가질 수 있습니다 sys. 특히 /dev(Linux에서는 이제 장치는 일반적으로 루트가 소유하며 다양한 장치 그룹에 대해 여러 그룹이 있습니다... 오직 /dev/random, /dev/만) null 다른 운영 체제(예: Solaris)에서는 일반적으로 /dev/zero가 여전히 sys그룹으로 획득됩니다 sys:sys. 일반적으로 사용자는 adm다양한 로그(원래는 /usr/adm에 있음)의 소유자 및 그룹이 되며 때로는 syslog가 실행됩니다. 일반적으로 man매뉴얼 페이지를 소유하는 사용자/그룹이 하나 있습니다 .

operator사용자 및/또는 그룹은 콘솔에서 작업할 수 있는 사람들에게 적용됩니다. 단말기는 잠긴 컴퓨터실의 컴퓨터와 직접 연결됩니다. 자주 백업을 실행하므로 일반적으로 root거의 모든 것에 액세스할 수 있는 사람은 이 그룹의 구성원입니다. staff/home을 제어하고 로컬 사용자를 추가할 수 있는 "하위 관리자"를 위한 그룹입니다.

결국 우리는 다양한 공통 서비스와 어느 정도 필요한 서비스를 위한 일련의 사용자:그룹 쌍을 얻습니다. 요즘에는 그다지 흔하지 않은 서비스도 있습니다: lp=프린터, news=네트워크 뉴스(NNTP) 게시판, mail=(로컬) 메일 서비스 , uucp= Unix에서 Unix로 CoPy... 메일 및 뉴스그룹 게시물과 같은 콘텐츠를 함께 패키징하고 이를 원격 Unix 시스템에 "복사"하는 방법입니다. 사람들이 주로 전화 접속을 사용할 때 자주 사용됩니다. tty= TeleTYPE...에는 다양한 터미널이 있습니다.

아직도 많은 사람들이 games사용자를 보유하고 있습니다. 사운드 카드나 비디오 카드 같은 것에 직접 액세스해야 하는 게임은 해당 사용자(게임)로 SetUID를 실행하고 -user는 game해당 하드웨어의 그룹에 추가됩니다. 이런 방식으로 게임은 전체 루트 액세스(예: SetUID=root)로 실행하지 않고도 하드웨어에 필요한 액세스 권한을 얻을 수 있습니다. 또한 시스템의 모든 사용자 간에 "최고 점수" 목록 등을 공유할 수 있습니다.

답변3

아니요, 휴대할 필요는 없습니다. 모든 로컬 설치에서는 UID/이름 쌍을 자유롭게 변경할 수 있습니다(일반적으로 권장되지는 않지만).

uid이식성을 위해 항상 운영 체제의 기능을 사용하여 숫자/기호 사용자 및 그룹 식별자( 및 ) 를 변환해야 합니다 gid.

숫자로 된 사용자 ID( ) 2에 관심이 있다면 uid숫자로 된 그룹 ID를 가져오고 반환하는 명령과 시스템 호출을 사용하세요. 필요한 경우 getent명령 등을 사용하여 숫자를 기호로 변환합니다.

사용자에 관심이 있다면 daemon사용자 작업을 수행할 때 기호 문자열을 사용 하거나 daemon명령이나 함수에 전달하기 전에 uid지정된 사용자의 사용자를 가져옵니다 daemon(예: 다시 getent사용) .uid

ls및 등의 많은 명령에는 find기호 그룹 이름 및 숫자 그룹 식별자를 처리하기 위한 옵션이 포함되어 있습니다. getent예를 들어 다음과 같이 변환하는 데 다른 명령을 사용할 수 있습니다.

관련 정보