rpm -e 패키지는 /etc/passwd에서 항목을 제거하지 않습니다.

rpm -e 패키지는 /etc/passwd에서 항목을 제거하지 않습니다.

저는 Splunk를 사용하다가 몇 가지 문제에 직면했습니다.

  1. 나는 그것을 사용하여 설치했습니다.

    rpm -iv splunk-7.2.3-06d57c595b80-linux-2.6-x86_64.rpm

  2. 다음을 사용하여 제거합니다.

rpm -e splunk-7.2.3-06d57c595b80.x86_64

rpm내 질문은 /etc/passwd에서 Splunk 사용자를 제거하는 것이 어떻습니까?입니다 . 또한 via를 제거해 splunk-7.2.3-06d57c595b80-linux-2.6-x86_64.rpm도 작동하지 않지만(설치는) 왜 rpm -qa | grep splunk실제 패키지 이름을 먼저 가져와야 하는지 약간 혼란스럽습니다 .

Splunk rpm캡슐화와 관련이 있습니까, 아니면 표준과 관련이 있습니까?

답변1

rpm 패키지는 여러 파일과 선택적 스크립트 세트(사전/사후 설치 사전/사후 제거 사전/사후 업그레이드 확인)로 구성됩니다.

--list 옵션을 사용하여 패키지에 포함된 파일을 표시할 수 있습니다. 패키지를 --erase하면 제거됩니다.

rpm -qipl package.rpm

--scripts를 포함하여 스크립트 내용을 덤프할 수도 있습니다. 설치/제거 스크립트 작동 방식에 대한 표준화된 템플릿이나 시행이 많지 않으므로 실제로 패키지 관리자에 따라 다릅니다. 하지만 패키지의 --scripts를 덤프하여 RPM이 시스템에 수행하는 작업을 정확히 알아낼 수 있으므로 정리 스크립트를 더 잘 작성할 수 있습니다.

rpm -qi --scripts package.rpm

rpm에서 몇 개의 파일만 필요하고 관리자가 시스템 구성을 수정하는 것을 원하지 않거나 신뢰하지 않는 경우 --noscripts를 사용하여 설치하는 것을 고려할 수도 있습니다.

답변2

패키지와 함께 사용자를 삭제하지 않는 것이 기준입니다.

Thomas는 의견에 좋은 설명을 제공했으며 이 훌륭한 문서에 연결했습니다.https://ma.ttias.be/on-removing-users-with-postun-in-rpm-spec-files/

그러나 또 다른 이유가 있습니다. 많은 관리자는 시스템에 사용자를 제공하기 위해 LDAP 또는 NIS를 사용합니다. 새 사용자를 생성하는 패키지를 설치하기 전에도 먼저 해당 사용자를 LDAP에 추가합니다. 이것이 바로 다음 명령을 사용하여 새 사용자를 생성하는 이유입니다.

getent passwd USERNAME >/dev/null || \
    useradd -r -g GROUPNAME -d HOMEDIR -s /sbin/nologin ...

즉, 사용자를 생성하기 전에 패키지는 항상 사용자가 이미 생성되었는지 확인해야 합니다.

물론 클라이언트 시스템에서 LDAP 사용자를 전혀 삭제할 수는 없습니다. 너무 간단한 것도 userdel실패할 수 있습니다. 따라서 관리자는 사용자 관리에 사용하는 도구를 사용하여 사용자를 삭제해야 합니다.

관련 정보