저는 개인적으로 일반적으로 Debian 기반 시스템을 사용하지만 전체 *nix 운영 체제 제품군에 대해 다음과 같은 질문이 있습니다.
Apache/Nginx는 이미 일부 *nix 시스템과 함께 제공되기 때문에 사용자는 www-data
일반적으로 Apache/Nginx를 사용합니까, 아니면 일반적으로 특정 소프트웨어(예: Apache/Nginx)를 사용하여 생성됩니까?
이미 일부 시스템(내 경우에는 Debian)과 함께 제공되는 경우 Apache/Nginx를 설치하기 전에 Apache/Nginx가 아닌 다른 소프트웨어용으로 생성하는 것을 방지하여 직접 생성할 수 있으므로 충돌 가능성을 피할 수 있습니다.
그런데 Ansible 및 become: yes
.
답변1
Ansible을 사용하고 있으므로 다음을 www-data
사용하여 존재하려는 사용자를 지정해야 합니다.사용자 모듈및 state=present
기타 적절한 속성(예를 들어 system=yes
). 필요한 경우 사용자가 생성되고, 사용자가 이미 존재하는 경우에는 생성되지 않습니다. 이는 구성 관리의 일반적인 원칙입니다. 시스템에 도달하기 위한 단계가 아니라 시스템이 처하게 되기를 원하는 상황을 설명합니다.
데비안과 아마도 대부분의 파생 제품에서 www-data
사용자는항상 존재한다, 이는 특정 패키지에 의해 자체 목적으로 생성되지 않았습니다("만든base-passwd
, 기타 모든 항목은 기본적으로 /etc/passwd
). 다른 시스템에 대해서는 아무것도 모릅니다.
답변2
Red Hat 배포판 및 파생 제품에서 패키지 설치 프로그램은 일반적으로 사전 설치 스크립트에 "사용자 생성" 명령을 포함합니다. CentOS 7에서는 다음과 같이 rpm -q --scripts httpd
볼 수 있습니다.
preinstall scriptlet (using /bin/sh):
# Add the "apache" group and user
/usr/sbin/groupadd -g 48 -r apache 2> /dev/null || :
/usr/sbin/useradd -c "Apache" -u 48 -g apache \
-s /sbin/nologin -r -d /usr/share/httpd apache 2> /dev/null || :
이는 우리에게 많은 것을 알려줍니다:
- Red Hat 및 그 파생 제품에서는 사용자를 다음과 같이 부릅니다.
apache
- 또한 다음과 같은 파일을 생성하려고 시도합니다.
apache
- userid와 groupid는 48이 될 것으로 예상됩니다.
- 그러나 사용자나 그룹이 이미 존재하는 경우 설치가 계속됩니다.