저는 Linux를 처음 사용하고 새 사용자를 추가하는 방법을 배우고 있습니다.

저는 Linux를 처음 사용하고 새 사용자를 추가하는 방법을 배우고 있습니다.

Users/username이름과 성, 홈 디렉터리가 있고 만료 날짜가 있고 비활성 상태이며 DKEL_dir에 기본 UID 및 GID가 있는 사용자를 생성하려고 합니다 /etc/skel2. 이것이 CentOS에서 실행 중인 것입니다.

sudo useradd -m -d /Users/username -s /bin/default/useradd -e $(date. -d "2 days ago" "+%Y-%m-%d") -f -k /etc/skel2 Scott walker

내가 얻는 결과는 다음과 같습니다.

useradd:invalid numeric argument '-k'

답변1

/Users왜 비표준 디렉토리 에 넣으려는지 모르겠습니다 . 정말 이걸 원하시나요? Linux 시스템에서 홈 디렉터리는 일반적으로 아래에 있습니다 /home. macOS에서만 본 적이 /Users있으며 때로는 사용자를 처리하는 중앙 서버가 있는 경우도 있습니다.

어쨌든, 당신이 그것을 원한다고 가정하면 /Users, 첫 번째 문제는 -f매개변수가 필요하다는 것입니다. 에서 man useradd:

       -f, --inactive INACTIVE
           defines the number of days after the password exceeded its maximum
           age where the user is expected to replace this password. The value
           is stored in the shadow password file. An input of 0 will disable
           an expired password with no delay. An input of -1 will blank the
           respective field in the shadow password file. See shadow(5)for
           more information.

           If not specified, useradd will use the default inactivity period
           specified by the INACTIVE variable in /etc/default/useradd, or -1
           by default.

따라서 -f비밀번호 만료일 이후 사용자가 비활성화되는 일수를 설정하십시오. 그러나 여기에 부여한 값은 귀하가 작성했기 때문에 유효하지 않으며 -f -k, 따라서 -k귀하가 부여한 값으로 읽혀집니다 -f. 사용자를 비활성화하려면 이전과 마찬가지로 만료 날짜를 과거로 지정한 다음 직접 사용하여 -f 0비밀번호가 즉시 만료되도록 합니다.

다음 문제는 로그인 이름에 공백이 포함될 수 없으므로 을 사용할 수 없다는 것입니다 Scott Walker. 이름과 성을 설정하려면 또는 옵션이 useradd필요합니다 . 다시 말하지만, 출처 :-c--commentman useradd

       -c, --comment COMMENT
           Any text string. It is generally a short description of the
           account, and is currently used as the field for the user's full
           name.

다음으로 -s쉘은 사용자를 정의하는 데 사용되며 쉘 대신 디렉토리(또는 그 안에 하위 디렉토리 ) /bin/default/useradd가 있어서는 안 되기 때문에 쉘이 존재해서는 안 됩니다 . 무엇을 원하는지 잘 모르겠지만 시스템 기본값으로 설정되는 셸을 포함하세요. 따라서 이 모든 것을 종합하면 다음과 같습니다./bin/default/bin-s

sudo useradd -m -d /Users/scott  \
   -e $(date -d "2 days ago" "+%Y-%m-%d") \
   -f -1 \
   -k /etc/skel2 \
   -c "Scott Walker" \
   scott

scott이렇게 하면 전체 이름 Scott Walker, 홈 디렉터리 /Users/scott, 만료 날짜 2일 전, 어제 비활성 날짜 로 이름이 지정된 사용자가 생성됩니다 .

자세한 내용은 다음을 참조하세요.CentOS 공식 문서.

답변2

-f 플래그를 사용하여 0 또는 -1을 지정해 보십시오. -f 플래그가 없으면 useradd는 /etc/default/useradd의 "INACTIVE" 변수에 구성된 모든 항목을 사용합니다. 기본값은 -1입니다. 모든 새 계정이 동일한 기본 "셸"로 시작되도록 프로덕션 환경에서 /etc/default/useradd conf 파일을 원하는 대로 편집하는 것이 좋습니다.

맨페이지에서:

> -f, --inactive INACTIVE
>        The number of days after a password expires until the account is permanently disabled. A value of 0
>        disables the account as soon as the password has expired, and a value of -1 disables the feature.

나는 보통 useradd를 사용하여 사용자를 위한 기본 셸을 만든 다음 그룹 및 계정과 연결된 모든 .conf 파일을 수정합니다. 그래도 모든 기능을 다 사용하고 있어요! 뚱뚱한 손가락에는 변수가 너무 많아서 위험을 감수하고 싶지 않습니다.

관련 정보