특이한 시나리오에서는 openSUSE 시스템에서 "lp"(라인 인쇄 데몬)라는 특정 시스템 사용자 계정을 삭제해야 했습니다.
일관되지 않은 시스템 상태가 발생하지 않고 계정 행을 주석 처리할 수 있습니까 /etc/passwd
?
배경: 계정의 사용자 이름이 SAMBA에서 사용하려는 계정 이름과 충돌합니다. 이 계정이 다른 중요한 프로세스에서 사용되는지 모르기 때문에 줄 인쇄 기능이 실제로 필요하지 않습니다.
다른 사람이 시스템 계정을 삭제한 경험이 있습니까?
답변1
find
이 사용자가 소유한 파일이 있는지 확인하기 위해 먼저 시스템을 빠르게 실행해 보겠습니다 lp
.
$ find -user lp
파일이 반환되면 OpenSUSE의 패키지 관리자를 사용하여 해당 파일을 역추적할 수 있습니다. RPM을 사용한다고 생각하므로 다음과 같은 명령이 작동합니다.
$ rpm -qf /path/to/file/find/found
이를 통해 해당 패키지를 제거할 수 있는지 여부를 결정할 수 있습니다. 이러한 패키지를 제거하면 lp
제거 프로세스 중에 사용자 계정이 삭제될 가능성이 높습니다.
패키지를 찾을 수 없으면 , /etc/passwd
, & 에서 /etc/shadow
계정을 삭제할 수 있습니다 /etc/group
. 계정에 연결된 그룹이 있는지 확인하셨나요?
다음과 같은 명령은 사용자와 연결된 그룹을 알려줍니다.
$ id lp
uid=4(lp) gid=7(lp) groups=7(lp)
사용자를 삭제하는 더 쉬운 방법은 내장된 명령 중 하나를 사용하는 것입니다. 일반적으로 다음과 같습니다: userdel <username>
.
예를 들어:
$ sudo userdel lp
앞으로 나아갈 길
OP(@MasterofCelebration)가 댓글을 달았습니다:
글쎄요, 기본 기능(예: Ghostscript, 파일 시스템)인 일부 패키지를 찾았지만 반드시 제거하고 싶지는 않았습니다. 그래서 계정 이름을 변경하고 원하는 사용자에 대한 새 계정을 추가하는 방법을 고려했습니다(시스템 계정의 UID를 "lprint"와 같은 새 이름으로 남겨두기). 이제 까다로운 부분은 전혀 필요하지 않음에도 불구하고 "인쇄 응용 프로그램"이나 기타 일반적으로 사용되는 항목에서 사용되는 새 사용자의 홈 디렉토리에 실제로 어떤 일이 발생하는지 알 수 없다는 것입니다. SAMBA 목적으로만 새 사용자의 홈 디렉토리가 필요함).
나는 사용자와 관련된 것으로 식별된 모든 패키지를 보관할 것입니다 lp
.
까다로운 부분은 lp
디스크에 파일이 있을 가능성 외에도 사용자 이름이 한두 개의 프로필에 의해 호출될 가능성이 높다는 것입니다.
이것이 내가하려는 일입니다.
- 이전 UID를 유지하겠습니다
lp
. 이름을 에서 로 변경lp
합니다lpold
. - 새 UID로 새 계정을 만들고 계속해서 호출하세요
lp
. lp
디렉토리를 검색하여/etc
명시적으로 호출된 구성 파일을 식별할 수 있는지 확인하고lp
, 찾으면 해당 파일을 로 변경하십시오lpold
.
이렇게 하면 디스크에 있는 파일을 만질 필요가 없으며 자동으로 나타납니다 lpold
. 또한 디스크에 있는 파일을 lpold
새 파일과 결합할 수도 있습니다 lp
.
지금 직면해야 할 유일한 위험은 사용자로 시작된 서비스가 lp
이제 lp
이전 서비스 대신 새 서비스가 될 수 있다는 것입니다. 검색을 통해 /etc
이러한 문제를 근절해야 합니다.
답변2
/etc/passwd
계정을 효과적으로 주석 처리 /etc/shadow
하고삭제사용자. /etc/group
및 에도 마찬가지입니다 /etc/gshadow
.
사용자가 파일의 소유자인 경우 파일에는 할당되지 않은 UID가 할당됩니다. 이는 그 자체로는 해롭지는 않지만 보기 흉하고 바람직하지 않을 수도 있습니다(예: UID는 나중에 재사용할 수 있으며 이러한 파일은 새로운 사용자). 먼저 find
해당 사용자가 소유한 파일 찾기 및 삭제를 사용하는 것이 가장 좋습니다 .
그래도,나는 이것을하지 않을 것입니다.언젠가 CUPS를 설치해야 한다면 어떻게 될까요? 사용자 CUPS를 관리자로 지정하시겠습니까? 또한 생각해 보세요. 패키지의 배포 스크립트는 lp
다음 이름으로 작동할 수 있습니다. 즉, 서비스가 lp
특정 파일을 읽고 쓸 수 있는 권한을 허용할 수 있습니다(왜? 모르겠지만 그런 일이 발생할 수 있습니다).
간단히 말해서, 가능하지만 일반적으로 Linux 배포판 시스템의 사용자를 확보하여 설계된 목적과 다른 목적으로 서비스를 제공하는 것은 좋은 생각이 아닙니다.
답변3
특히 lp
CUPS와 같은 프린터 지원을 추가하려는 경우 문제가 발생할 수 있습니다. 미래. CUPS와 같은 것이 설치되어 있지 않더라도 lp
수십 년 동안 (Unix 시스템의) 표준 사용자였으므로 패키지가 이에 의존할 수 있고 시스템의 일부 부분에서 이를 사용할 수도 있습니다. 사용자/그룹은 lp
기본적으로 그룹에 속하거나 파일, 디렉터리 및 장치를 소유할 수도 있습니다.
생성하려는 사용자의 다른 이름을 찾는 것이 좋습니다.
답변4
/etc/passwd
userdel을 백업 하고 실행할 수 있을 것 같습니다 /etc/shadow
. SUSE에 대해서는 모르지만(저는 Ubuntu와 Debian을 사용합니다) 문제가 없을 것이라고 생각합니다.
그런데, 삼바를 다른 사용자에게 LP를 사용 pdbedit
하거나 제공 할 수 없나요 ? smbpasswd
실제로 시스템에 충돌이 있습니까?