Redhat의 사용자 이름 길이 제한을 줄입니다.

Redhat의 사용자 이름 길이 제한을 줄입니다.

사용자 이름 길이 제한을 32에서 30으로 줄이고 싶습니다. 이 제한을 구성할 수 있습니까?

RHEL에서 useradd를 수행하려고 하면 최대 32자까지 사용자를 생성할 수 있습니다. 사용자 생성을 최대 길이 30바이트로 제한하기 위해 길이를 30바이트로 줄이고 싶습니다. AIX 플랫폼에서는 가능하다고 생각합니다. 하지만 Redhat RHEL 서버에서 구성하는 방법을 찾을 수 없습니다.

답변1

useradd아니요, 바이너리 에 하드코딩되어 있습니다 .

소스 shadow-utils-4.6-7.el8(제공된 패키지 /usr/sbin/useradd)에서:

./lib/defines.h:

/* Maximum length of usernames */
#ifdef HAVE_UTMPX_H
# include <utmpx.h>
# define USER_NAME_MAX_LENGTH (sizeof (((struct utmpx *)NULL)->ut_user))
#else
# include <utmp.h>
# ifdef HAVE_STRUCT_UTMP_UT_USER
#  define USER_NAME_MAX_LENGTH (sizeof (((struct utmp *)NULL)->ut_user))
# else
#  ifdef HAVE_STRUCT_UTMP_UT_NAME
#   define USER_NAME_MAX_LENGTH (sizeof (((struct utmp *)NULL)->ut_name))
#  else
#   define USER_NAME_MAX_LENGTH 32
#  endif
# endif
#endif

(이 utmp->ut_user필드도 32바이트입니다.)

libmisc/chkname.c:

bool is_valid_user_name (const char *name)
{
        /*
         * User names are limited by whatever utmp can
         * handle.
         */
        if (strlen (name) > USER_NAME_MAX_LENGTH) {
                return false;
        }

        return is_valid_name (name);
}

물론 사용자 이름 정책을 시행하는 래퍼 작성을 막을 수 있는 사람은 아무도 없습니다.

관련 정보