Linux 및 Unix 시스템에서 서비스 계정을 사용하는 이유는 무엇입니까? [복사]

Linux 및 Unix 시스템에서 서비스 계정을 사용하는 이유는 무엇입니까? [복사]

Linux 및 Unix 비사용자 서비스 계정에 대해 질문이 있습니다. 우리는 Linux에 사용자 계정이 있다는 것을 알고 있는데, (비사용자) 서비스 계정(예: 데몬, 뉴스, bin 등)의 용도는 무엇입니까?

$cat /etc/passwd | more 

모든 사용자 및 비사용자 계정을 표시합니다.

bin서비스 계정이 할당된 이유는 무엇 인가요? 이것은 의도적으로 설계된 것인가요? 아니면 특별한 목적이 있는 것인가요?

마지막 질문

Microsoft 운영 체제 환경(Server 2003 또는 2008)에서도 이것이 사실입니까?

답변1

배포판이 기본 사용자 및 그룹의 목적을 문서화하기를 바랍니다. 예를 들어 Debian은 /usr/share/doc/base-passwd/users-and-groups.*Debian에 콘텐츠를 게시합니다. 빠른 검색inurl: "doc/base-passwd"(의도적이든 아니든) 복사본이 있는 일부 장소를 온라인에서 찾았습니다.이것은.

기본적으로 그들은 사용자가 왜 있는지 알지 못합니다 bin. LSB는 레거시 이유로 포함할 사용자가 있다고 말합니다.

이러한 사용자는 종종 "잠겨져" 로그인할 수 없습니다. 루트가 su(또는 동등한 시스템 호출을) 사용하여 이들 중 하나로 전환할 수 있지만 이는 데몬이 있는 그대로 실행되는 방식입니다.

다음 명령을 사용하여 사용자가 소유한 모든 파일을 찾을 수 있습니다.find / -user USER_NAME

기본 제공 사용자 및 그룹은 기본적으로 다음과 같은 목적으로 사용됩니다.

  • 특정 특수 파일(예: 연결된 프린터에 대한 그룹 소유 /dev 파일 lp)에 대한 액세스를 허용합니다. 그런 다음 데몬(예: CUPS)이 이 그룹의 구성원이 되어 액세스 권한을 얻을 수 있습니다. 이는 사용자를 대상으로 할 수도 있습니다. 예를 들어 Debian에서는 사용자를 adm그룹에 추가하면 해당 사용자가 시스템 로그 파일을 볼 수 있습니다.
  • 격리. 동일한 사용자로 실행되는 두 프로그램은 서로 상호 작용할 수 있습니다. 예를 들어 서로 신호를 보내고 일부 커널 설정에 따라 ptrace서로 신호를 보낼 수도 있습니다( ptrace이것이 디버거의 작동 방식이며 기본적으로 대상을 완전히 제어할 수 있습니다). 프로세스). 등이 그 예이다 gdm.syslog
  • 액세스 제어. 예를 들어 Debian에는 CUPS에서 사용하는 그룹이 있습니다 lpadmin. 이 그룹에 사용자를 추가하면 웹 인터페이스를 통해 CUPS를 관리할 수 있습니다.

처음 두 개가 아마도 가장 일반적일 것입니다.

추신: / 대신 및를 사용할 수도 있습니다 cat /etc/passwd. 이는 대체 비밀번호/그룹 저장소(예: LDAP)로 구성된 시스템에서 실행됩니다.cat /etc/groupgetent passwdgetent groups

답변2

이는 배포판마다 다르지만 자세히 살펴보면 "서비스" 계정이 특정 프로세스에 해당하는 경향이 있음을 알 수 있습니다. 내 Arch Linux 서버에는 사용자 ID "ntp"로 실행되는 NTP 데몬, 사용자 ID "http"로 실행되는 Apache 웹 서버, Postgresql 데이터베이스 프로세스용 사용자 ID "postgres"가 있습니다.

이는 적용하는 것과 동일합니다.최소 권한의 원칙. 프로세스를 실행하는 사용자는 해당 작업을 수행하는 데 필요한 최소한의 권한만 가지고 있어야 합니다. 예를 들어 ntpd프로세스는 Postgres 데이터베이스에 대한 중요한 정보를 읽을 수 없어야 하며 Postgres 프로세스는 Apache 구성 파일을 다시 쓸 수 없어야 합니다. 이는 오류 및 의도적인 손상(악용)으로 인해 발생하는 문제를 제한하는 데 도움이 됩니다.

관련 정보