계정이 많은 이유는 무엇입니까? 나는 유일한 사용자 야 시스템, 동기화, 게임, 펄스 등)는 무엇입니까? 이들은

Ubuntu 12.04 데스크탑 시스템을 실행 중입니다. 지금까지 일부 프로그램 만 설치했습니다 (sudo 권한이 있습니다).

  1. 시스템에서 사용자 목록을 확인하면 20 명 이상의 사용자와 같은 긴 목록이 나타납니다.이 사용자가 생성 된시기 (예 : 데몬, 시스템, 동기화, 게임, 펄스 등)는 무엇입니까? 이들은 새로운 프로그램 설치와 어떤 관련이 있습니까?

  2. 시스템에서 프로그램을 실행하면 UID로 실행해야합니다. 그러나 ps 를 수행 하면서 다른 UID로 실행되는 다른 많은 프로그램 (루트, 데몬, avahi, syslog, 색상 등)을 볼 수 있습니다. 이러한 프로그램은 다른 UID로 어떻게 시작 되었습니까?



답변

사용자 계정은 실제 인간 사용자뿐만 아니라 시스템 서비스를 실행하거나 시스템 파일의 소유자로 사용되기도합니다. 이는 휴먼 사용자의 자원 (프로세스, 파일 등)을 분리하고 시스템 서비스 자원을 분리하려면 동일한 메커니즘이 필요하기 때문에 수행됩니다.

일반적으로 실행하는 프로그램은 사용자 ID로 실행됩니다. 자체 계정으로 실행되는 시스템 데몬 뿐입니다 . 데몬을 실행할시기를 나타내는 구성 파일은 또한 사용자가 어떤 데몬을 실행해야하는지 나타내거나 데몬은 시작 후 권한이없는 계정으로 전환합니다. 일부 데몬에는 전체 관리 권한이 필요하므로 루트 계정으로 실행 됩니다. 많은 데몬은 특정 하드웨어 장치 나 특정 파일에만 액세스 할 수 있으므로 전용 사용자 계정으로 실행됩니다. 이는 보안을 위해 수행됩니다. 이러한 방식으로 이러한 서비스 중 하나에 버그 나 구성 오류가 있어도 공격자가이 서비스가 수행 할 수있는 작업과 제한되지 않기 때문에 전체 시스템 공격으로 이어질 수 없습니다. 파일 덮어 쓰기, 프로세스 스파이 등

Ubuntu에서 0–99 범위의 사용자 ID는 시스템 설치시 작성됩니다. 0은 루트입니다. 1-99 범위의 많은 항목은 역사적 이유로 만 존재하며이를 사용하는 일부 로컬 설치와의 호환성을 위해서만 유지됩니다 (몇 가지 추가 항목은 아프지 않습니다). 100-999 범위의 사용자 ID는 전용 사용자 ID가 필요한 서비스를 설치하거나 제거 할 때 동적으로 작성 및 제거됩니다. 1000 이상의 범위는 사람 사용자 또는 시스템 관리자가 만든 다른 계정을위한 것입니다. 그룹도 마찬가지입니다.


답변

이 사용자 목록을 확인하여 /etc/passwd? 이는 ‘정상적인 사용자’뿐만 아니라 시스템의 특정 영역에 대한 프로그램을 잠그고 변경된 사항을 추적하는 데 유용합니다 (그룹과 동일한 개념).

/etc/passwd참고로 아래에 Raspberry Pi 파일 중 하나를 삽입했습니다 . ntop이 파일의 하단에 프로그램 ntop(네트워크 모니터링)에 의해 생성 된 사용자 가 있습니다. 마찬가지로 sshd, gnats버그보고 등

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
pi:x:1000:1000:,,,:/home/pi:/bin/bash
sshd:x:101:65534::/var/run/sshd:/usr/sbin/nologin
ntp:x:102:104::/home/ntp:/bin/false
statd:x:103:65534::/var/lib/nfs:/bin/false
messagebus:x:104:106::/var/run/dbus:/bin/false
usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false
lightdm:x:106:109:Light Display Manager:/var/lib/lightdm:/bin/false
smmta:x:107:110:Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false
smmsp:x:108:111:Mail Submission Program,,,:/var/lib/sendmail:/bin/false
Debian-exim:x:109:113::/var/spool/exim4:/bin/false
ntop:x:110:115::/var/lib/ntop:/bin/false


답변

이 사용자는 언제 작성 되었습니까?

언급 한 경우 시스템 설치시 작성되었습니다. 이 사용자 계정 은 몇 십년 전의 기존의 계정 입니다. 그들은 또한 표준화되어 있습니다. Linux Standard Base는 다음과 같이 나뉩니다.

  • 필요한 표준 사용자는 계정 root, bindaemon; 과
  • 옵션 표준 사용자 계정 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에서 실행 및 액세스 / 제어 서로의에없는 파일 / 디렉토리 / 프로세스 / 장치 따라서, 즉 더 힘들어 크랙하는 것입니다 (내부, 신뢰).

추가 자료


답변

Linux에서 서비스를 설치할 때 다른 파일에 액세스 할 수 없도록 서비스 이름 또는 이와 유사한 사용자를 작성합니다.


답변