UID <500 인 일반 사용자를 만들면 어떤 위험이 있습니까?


14

UID <500 인 일반 사용자를 만들면 어떤 위험이 있습니까? UID가 기존 UID의 복제본이 아니라고 가정하면 무엇이 잘못 될 수 있습니까?

이것은 내가하고 싶은 것이 아니라 내가 보았고 왜 그것을해서는 안되는지 알고 싶어하는 것입니다. 이 예에서는 RHEL5에 있습니다.


2
데비안에서 파생 된 시스템은 500이 아닌 1000에서 일반 UID를 시작하는 것으로 보입니다.
Keith Thompson

답변:


16

본질적인 위험이 있다고 생각하지 않습니다. 이것은 시스템 계정과 사용자 계정을 구분하기 위해 수행되는 것입니다. 내 경험에서 500 미만의 숫자를 사용하는 관행은 Redhat-ism이며 실제로는 그 이상입니다.

솔라리스에서 100부터 시작하는 숫자가 사용자에게 할당 된 것을 보았습니다. 몇 년이 지나서야 2 개의 소규모 부서 시스템을 통합 할 때 같은 UID를 가진 2 개의 부서에 여러 명의 사용자가 있었기 때문에 악몽이 발생한다는 것을 알게되었습니다 / GID가 할당되었습니다.

이것은 실제로 UID를 할당 할 때 주요 위험 / 두통입니다. UID는 사용자가 제공 한 파일 / 디렉토리에 대해 최종적으로 inode에 기록 된 것이므로 findUID 1234가 소유 한 파일을 찾아서 5678로 변경해야하는 대규모 작업을 수행하려고하지 않아도됩니다. .

따라서 UID 선택에 대해 몇 가지 생각을함으로써 관리자는 골칫거리를 피할 수 있습니다.

500 이상을 사용하는 것은 Redhat (및 기타 Unix)이 작성해야 할 시스템 계정이 사용자에게 할당 된 UID와 혼합되지 않도록 충분한 버퍼를 제공하려는 시도입니다.

/etc/login.defs

또한 구성 파일의이 설정에 의해 숫자 500이 구동됩니다 /etc/login.defs.

#
# Min/max values for automatic uid selection in useradd
#
UID_MIN           500
UID_MAX         60000

#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN           500
GID_MAX         60000

useradd/ adduser명령 으로 기본 동작을 재정의하려는 경우 원하는 것으로 변경할 수 있습니다 .

Useradd 매뉴얼 페이지

useradd매뉴얼 페이지를 보면 GID의 기본값을 설명하는이 부분을 볼 수 있지만이 설명은 UID에도 적용됩니다.

발췌

-g, --gid GROUP
    The group name or number of the user´s initial login group. The group name 
    must exist. A group number must refer to an already existing group.

    If not specified, the behavior of useradd will depend on the USERGROUPS_ENAB 
    variable in /etc/login.defs. If this variable is set to yes 
    (or -U/--user-group is specified on the command line), a group will be 
    created for the user, with the same name as her loginname. If the variable 
    is set to no (or -N/--no-user-group is specified on the command line), 
    useradd will set the primary group of the new user to the value specified by 
    the GROUP variable in /etc/default/useradd, or 100 by default.

시스템 계정

useradd매뉴얼 페이지 에서 주목해야 할 또 다른 사항 은 시스템 계정 생성시이 비트입니다.

발췌

-r, --system
    Create a system account.

    System users will be created with no aging information in /etc/shadow, 
    and their numeric identifiers are choosen in the SYS_UID_MIN-SYS_UID_MAX 
    range, defined in /etc/login.defs, instead of UID_MIN-UID_MAX (and their 
    GID counterparts for the creation of groups).

    Note that useradd will not create a home directory for such an user, 
    regardless of the default setting in /etc/login.defs (CREATE_HOME). You 
    have to specify the -m options if you want a home directory for a system 
    account to be created.

useradd -r ...패키지를 설치할 때 RPM과 같은 다양한 패키지 관리자에 통합되는 스크립팅에서 종종 사용되는 방법 ( )입니다. 이 방법으로 스크립팅하면 시스템 사용자는 시스템 사용자에게 이미 할당 된 UID / GID를 밟을 위험없이 주어진 시스템에서 사용 가능한 다음 UID / GID를 자동으로 선택할 수 있습니다.


1
FWIW, 나는 이것이 단지 Red Hat-ism이 아니라 일반적인 GNU / Linux-ism이라고 생각합니다. 내가 사용하는 모든 시스템에서 이것을 보았으며 Red Hat을 사용한 적이 없습니다.
strugee

@ strugee-고맙게도 진술을 지나치게 광범위하게 만들고 싶지 않아서 다시 물었습니다.
slm

2

커널의 관점에서 볼 때 UID 0의 특별한 사용자는 한 명뿐입니다. 관리상의 이유로 UID 범위를 나누면 인생이 더 단순 해집니다. 일반적인 범위는 공급 업체, 시스템, 로컬, 글로벌입니다.

공급 업체 사용자는 시스템을 처음 설치할 때 설치되며 공급 업체가 정적으로 관리합니다. 시스템 사용자는 설치된 패키지에 따라 시스템별로 설치됩니다. 대부분의 사용자 추가 / 삭제 유틸리티는 개별적으로 처리 할 수있는 범위 제한이 있습니다. 로컬 사용자는 일반 사용자이며 컴퓨터마다 할당됩니다. 글로벌 사용자는 중앙 데이터베이스에 의해 지정되지만 일반 사용자입니다. UID 범위를 사용하면 이러한 다른 그룹 간의 충돌을 방지 할 수 있습니다. 이러한 컷오프는 다를 수 있지만 일반적으로 구성 할 수 있습니다.


1

이 작업에는 본질적인 위험이 없습니다. UID 499를 사용하여 사용자를 작성하면 추가 권한이 없습니다. UID가 일반적으로 시스템 사용자를 위해 예약되어 있기 때문에 그렇지 않은 것이 좋습니다. 그러한 UID를 생성 할 때 발생할 수있는 문제는 일부 시스템 서비스가 UID를 사용할 수있을 것으로 기대할 때입니다. 잘 알려진 포트에서 실행되는 새로운 서비스를 만드는 것과 비슷합니다. 반드시 문제는 없지만 좋은 습관은 아니며 sshd, ftpd 등을 설정할 때 더 많은 문제가 발생할 수 있습니다.

즉, UID <500으로 사용자가 문제없이 생성 된 많은 시스템을 보았습니다. 그러나 사용자 기반이 커지고 현재 수천 명의 사용자가 있으면 사용자 계정과 시스템 계정을 구분하기가 어려워 질 수 있습니다. UID <500이없는 규칙에 따라 매우 쉽습니다. 따라서 계정을 구성하는 좋은 방법입니다.


1

진짜 위험은 없습니다. 커널은 0을 제외하고 사용자 ID 값을 신경 쓰지 않습니다. 대부분의 관리 도구는 시스템을 거의 사용하지 않습니다. 시스템 사용자와 사용자 사이의 차이는 거의 없습니다.

시스템 사용자는 전용 그룹을 갖고있는 경향이 있으므로 그룹보다 더 많은 그룹에 속한 계정을 만들 가능성이 없습니다.

일부 배포는 전용 사용자가 필요한 시스템 서비스가 포함 된 패키지를 설치할 때 할당 된 사용자를 포함하여 시스템 사용자를 위해 1-499 (Red Hat 및 relatives) 또는 1-999 (Debian 및 relatives) 범위를 예약합니다. 데비안의 규칙에 따르면 1-99 범위는 정적으로 할당되므로 (그 범위에서 휴먼 사용자를 생성하는 것은 시스템 사용자와 충돌 할 수 있으므로 매우 나쁜 생각입니다) 100-999 범위는 동적으로 할당되므로 휴먼 사용자를 생성합니다 새로운 시스템 사용자는 무료 사용자 ID를 선택하므로 해당 범위 내에서 무해합니다.

UID가 목록에있는 임계 값보다 낮은 UID를 사용자에게 제공하지 않는 디스플레이 관리자와 같은 약간의 불편 함이 발생할 수 있습니다.

격리 된 시스템의 주요 위험은 동료 시스템 관리자를 혼동 할 가능성이 있다는 것입니다. 사용자 ID가 공유되는 네트워크의 컴퓨터의 경우 이러한 사용자가 시스템 사용자와 동일한 사용자 ID를 가진 다른 컴퓨터와 충돌 할 수 있습니다. 공유 사용자 ID가있는 네트워크에서는 사용자의 경우 1000–65533 또는 10000–65533 범위를 유지하는 것이 가장 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.