웹사이트 검색

Linux의 예제와 함께 유용한 15가지 Useradd 명령


우리 모두는 Linux에서 'useradd' 또는 'adduser'라는 가장 인기 있는 명령을 알고 있습니다. Linux 시스템 관리자에게 특정 속성, 제한 사항 또는 설명이 포함된 Linux 사용자 계정을 생성하라는 요청을 받는 경우가 있습니다.

Linux에서 'useradd' 명령은 Linux 및 기타 Unix 계열 운영 체제에서 사용자 계정을 추가하거나 생성하는 데 사용되는 하위 수준 유틸리티입니다. 'adduser' 명령은 단지 심볼릭 링크라는 점에서 'useradd' 명령과 매우 유사합니다.

일부 Linux 배포판에서는 'useradd' 명령의 버전이 약간 다를 수 있습니다. Linux에서 새 사용자 계정을 생성하기 위한 지침을 사용하기 전에 설명서를 읽어 보시기 바랍니다.

Linux 터미널에서 'useradd' 명령을 실행하면 다음과 같은 주요 작업이 수행됩니다.

  • /etc/passwd, /etc/shadow, /etc/group,/etc/gshadow를 편집합니다. 새로 생성된 사용자 계정에 대한 파일입니다.
  • 새 사용자의 홈 디렉터리를 만들고 채웁니다.
  • 홈 디렉터리에 대한 권한과 소유권을 설정합니다.

Useradd 명령 구문

'useradd' 명령의 기본 구문은 다음과 같습니다.

useradd [options] username

이 기사에서는 Linux에서 가장 일반적으로 사용되는 15개의 'useradd' 명령과 실제 예를 보여줍니다.

1. Linux에서 새 사용자를 추가하는 방법

새 사용자를 추가하거나 생성하려면 'useradd' 또는 'adduser' 명령 뒤에 'username'을 사용해야 합니다. '사용자 이름'은 사용자가 시스템에 로그인하는 데 사용하는 로그인 이름입니다.

사용자는 한 명만 추가할 수 있으며 사용자 이름은 고유해야 하며 시스템에 이미 존재하지 않아야 합니다.

예를 들어, 'tecmint'라는 새 사용자를 추가하려면 다음 명령을 사용하십시오.

useradd tecmint

Linux에서 'useradd' 명령을 사용하여 새 사용자를 추가하면 잠금 상태로 생성됩니다. 해당 사용자 계정을 잠금 해제하려면 'passwd' 명령을 사용하여 해당 계정에 대한 비밀번호를 설정해야 합니다.

passwd tecmint

Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

새 사용자가 생성되면 해당 항목이 '/etc/passwd' 파일에 자동으로 추가됩니다. 이 파일은 사용자의 정보를 저장하는 데 사용되며, 항목이 있어야 합니다.

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

위 항목에는 콜론으로 구분된 7개의 필드 세트가 포함되어 있으며 각 필드에는 고유한 의미가 있습니다.

이러한 필드가 무엇인지 살펴보겠습니다.

  • 사용자 이름 – 사용자 로그인 이름은 시스템에 로그인하는 데 사용됩니다. 길이는 1~32자 사이여야 합니다.
  • 비밀번호 – 사용자 비밀번호(또는 'x' 문자)는 '/etc/shadow' 파일에 암호화된 형식으로 저장됩니다.
  • 사용자 ID(UID) – 모든 사용자는 사용자 식별 번호를 나타내는 사용자 ID(UID)를 가지고 있어야 합니다. 기본적으로 UID 0은 루트 사용자용으로 예약되어 있으며 1~99 범위의 UID는 사전 정의된 다른 계정용으로 예약되어 있습니다. 또한 100~999 범위의 UID는 시스템 계정 및 그룹용으로 예약되어 있습니다.
  • 그룹 ID(GID)그룹 식별 번호를 나타내는 기본 그룹 ID(GID)는 ' /etc/group' 파일입니다.
  • 사용자 정보 – 이 필드는 선택 사항이며 사용자 이름과 같은 사용자에 대한 추가 정보를 정의할 수 있습니다. 이 정보는 Finger 명령을 사용하여 채울 수 있습니다.
  • 홈 디렉터리 – 사용자 홈 디렉터리의 절대 위치입니다.
  • – 사용자 셸의 절대 위치(예: /bin/bash)입니다.

2. 다른 홈 디렉터리로 사용자를 만드는 방법

기본적으로 'useradd' 명령은 사용자 이름을 사용하여 '/home' 디렉터리 아래에 사용자의 홈 디렉터리를 만듭니다. 예를 들어, 위에서 볼 수 있듯이 사용자 'tecmint'의 기본 홈 디렉토리는 '/home/tecmint'입니다.

그러나 이 동작은 새 홈 디렉터리의 위치(예: '/data/projects')와 함께 '-d' 옵션을 사용하여 변경할 수 있습니다. 예를 들어, 다음 명령은 홈 디렉토리가 '/data/projects'로 설정된 사용자 'anusha'를 생성합니다.

useradd -d /data/projects anusha
passwd anusha

다음 cat 명령을 사용하면 사용자의 홈 디렉토리와 사용자 ID, 그룹 ID, 쉘, 설명 등 기타 사용자 관련 정보를 볼 수 있습니다.

cat /etc/passwd | grep anusha

anusha:x:1001:1001::/data/projects:/bin/bash

3. 특정 사용자 ID로 사용자를 생성하는 방법

Linux에서는 모든 사용자가 고유한 UID(고유 식별 번호)를 갖습니다. 기본적으로 Linux에서 새 사용자 계정을 만들면 사용자 ID 500, 501, 502 등이 할당됩니다.

그러나 '-u' 옵션을 사용하여 사용자 정의 사용자 ID로 사용자를 생성할 수 있습니다. 예를 들어, 다음 명령은 사용자 정의 사용자 ID '1002'를 사용하여 'navin' 사용자를 생성합니다.

useradd -u 1002 navin

이제 다음 명령을 사용하여 정의된 사용자 ID(1002)로 생성된 사용자를 확인해 보겠습니다.

cat /etc/passwd | grep navin

navin:x:1002:1002::/home/navin:/bin/bash

참고: 사용자 ID 값은 시스템에 이미 생성된 다른 사용자와 고유해야 합니다.

4. 특정 그룹 ID를 가진 사용자를 생성하는 방법

마찬가지로 모든 사용자는 자신만의 GID(그룹 식별자)를 갖습니다. '-g' 옵션을 사용하여 특정 그룹 ID를 가진 사용자를 생성할 수도 있습니다.

이 예에서는 '-의 도움으로 특정 UIDGID를 동시에 사용하는 사용자 'tarunika'를 추가합니다. u''-g' 옵션.

useradd -u 1005 -g tecmint tarunika

이제 '/etc/passwd' 파일에서 할당된 사용자 ID와 그룹 ID를 확인하세요.

cat /etc/passwd | grep tarunika

tarunika:x:1005:1000::/home/tarunika:/bin/bash

사용자의 GID를 확인하려면 id 명령을 사용하십시오.

id -gn tarunika

5. 여러 그룹에 사용자를 추가하는 방법

'-G' 옵션은 사용자를 추가 그룹에 추가하는 데 사용됩니다. 각 그룹 이름은 공백 없이 쉼표로 구분됩니다.

이 예에서는 admins, webadmindevelopers와 같은 여러 그룹에 'tecmint' 사용자를 추가합니다. 강하다>.

groupadd admins
groupadd webadmin
groupadd developers
usermod -a -G admins,webadmin,developers tecmint
useradd -G admins,webadmin,developers paddy

그런 다음 id 명령을 사용하여 여러 그룹이 사용자에게 할당되었는지 확인합니다.

id tecmint

uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh

6. 홈 디렉토리 없이 사용자를 추가하는 방법

보안상의 이유로 사용자에게 홈 디렉토리를 할당하고 싶지 않은 특정 상황에서는 사용자가 방금 다시 시작한 시스템에 로그인할 때 사용자의 홈 디렉토리가 루트가 됩니다. 이러한 사용자가 'su' 명령을 사용하면 해당 로그인 디렉터리는 이전 사용자의 홈 디렉터리가 됩니다.

홈 디렉토리 없이 사용자를 생성하려면 '-M' 옵션이 사용됩니다. 예를 들어, 다음 명령은 홈 디렉터리 없이 'shilpi' 사용자를 생성합니다.

useradd -M shilpi

이제 ls 명령을 사용하여 홈 디렉터리 없이 사용자가 생성되었는지 확인해 보겠습니다.

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory

7. Linux에서 만료 날짜가 있는 사용자를 만드는 방법

기본적으로 'useradd' 명령으로 사용자를 추가하면 사용자 계정은 만료되지 않습니다. 즉, 만료 날짜는 0(만료되지 않음을 의미)으로 설정됩니다.

그러나 YYYY-MM-DD 형식이어야 하는 '-e' 옵션을 사용하여 만료 날짜를 설정할 수 있습니다. 이는 특정 기간 동안 임시 계정을 만드는 데 유용합니다.

이 예에서는 계정 만료일이 YYYY-MM-DD2021년 8월 27일인 사용자 'aparna'를 생성합니다. > 형식.

useradd -e 2021-08-27 aparna

다음으로, 계정 만료 날짜를 설정한 후 'aparna' 사용자에 대해 'chage' 명령을 사용하여 계정 및 비밀번호 만료 정보를 확인합니다.

chage -l aparna

Last password change					: Jun 25, 2021
Password expires					: never
Password inactive					: never
Account expires						: Aug 27, 2021
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

8. 비밀번호 만료일이 있는 사용자를 생성하는 방법

'-f' 인수는 비밀번호가 만료된 후의 일수를 정의하는 데 사용됩니다. 0 값은 비밀번호가 만료되자마자 사용자 계정을 비활성화합니다. 기본적으로 비밀번호 만료 값은 -1로 설정되어 있으며 이는 만료되지 않음을 의미합니다.

이 예에서는 '-e'mansi' 사용자의 계정 비밀번호 만료일을 45일로 설정합니다. > 및 '-f' 옵션.

useradd -e 2014-04-27 -f 45 mansi

9. Linux에서 댓글로 사용자를 추가하는 방법

'-c' 옵션을 사용하면 사용자의 전체 이름, 전화번호 등과 같은 사용자 정의 설명을 '/etc/passwd' 파일에 추가할 수 있습니다. 설명은 공백 없이 한 줄로 추가할 수 있습니다.

예를 들어, 다음 명령은 사용자 'mansi'를 추가하고 해당 사용자의 전체 이름인 Manis Khurana를 설명 필드에 삽입합니다.

useradd -c "Manis Khurana" mansi

tail 명령을 사용하여 주석 섹션의 '/etc/passwd' 파일에 삽입된 주석을 볼 수 있습니다.

tail -1 /etc/passwd

mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh

10. Linux에서 사용자 로그인 셸을 만드는 방법

때로는 로그인 셸과 관련이 없는 사용자를 추가하거나 사용자에게 다른 셸을 할당해야 하는 경우도 있습니다. '-s' 옵션을 사용하여 각 사용자에게 서로 다른 로그인 셸을 할당할 수 있습니다.

이 예에서는 로그인 셸(예: '/sbin/nologin' 셸) 없이 'tecmint' 사용자를 추가합니다.

useradd -s /sbin/nologin tecmint

사용자에게 할당된 쉘은 '/etc/passwd' 파일에서 확인할 수 있습니다.

tail -1 /etc/passwd

tecmint:x:1011:1014::/home/tecmint:/sbin/nologin

11. 지정된 홈, 쉘, 코멘트로 사용자를 생성하는 방법

다음 명령은 /bin/bash/var/www/tecmint' 홈 디렉터리를 사용하여 'ravi' 사용자를 생성합니다. Strong> 및 사용자에 대한 추가 정보입니다.

useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

위 명령에서 '-m''-d' 옵션은 지정된 홈 디렉토리를 가진 사용자를 생성하고 '-s' 옵션은 사용자의 기본 셸을 /bin/bash로 설정합니다. '-c' 옵션은 사용자에 대한 추가 정보를 추가하고 '-U' 인수는 사용자와 동일한 이름을 가진 그룹을 생성/추가합니다.

12. 정의된 홈, 쉘, 코멘트, UID/GID를 사용하여 사용자를 생성하는 방법

명령은 위 명령과 매우 유사하지만 여기서는 셸을 '/bin/zsh'로 정의하고 사용자 정의 UIDGID를 설정합니다. 사용자 'tarunika'의 경우. '-u' 옵션은 새 사용자의 UID(예: 100)를 정의하고, '-g' 옵션은 GID(예: , 1000).

useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika

13. 홈, 쉘 없음, 주석 및 UID를 사용하여 사용자를 생성하는 방법

다음 명령은 위의 두 명령과 매우 유사합니다. 유일한 차이점은 여기서는 맞춤 사용자 ID(예: 1019)를 사용하여 'avishek'이라는 사용자의 로그인 셸을 비활성화했다는 것입니다.

'-s' 옵션은 기본 쉘을 /bin/bash로 설정하지만 이 경우 로그인 쉘을 '/usr/sbin/으로 설정합니다. 로그인하지 마세요'. 이는 'avishek' 사용자가 시스템에 로그인할 수 없음을 의미합니다.

useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek

14. 지정된 홈, 쉘, 스켈레톤 및 UID를 사용하여 사용자를 생성하는 방법

이 명령의 유일한 변경 사항은 '-k' 옵션을 사용하여 사용자 정의 뼈대 디렉토리를 기본 디렉토리 대신 /etc/custom.skell로 설정했다는 것입니다. Strong>/etc/skel. 또한 '-s' 옵션을 사용하여 사용자 'navin'에 대해 다른 셸인 /bin/tcsh를 정의했습니다.

useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin

15. 홈, 쉘, 그룹 없이 코멘트를 사용하여 사용자를 생성하는 방법

다음 명령은 위에서 설명한 다른 명령과 매우 다릅니다. 여기서는 사용자의 홈 디렉터리 없이 사용자를 생성하기 위해 '-M' 옵션을 사용했고, '-N' 옵션은 시스템에 생성만 하도록 지시하기 위해 사용되었습니다. 사용자 이름(그룹 없음) '-r' 옵션은 시스템 사용자를 생성하기 위한 것입니다.

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

'useradd'에 대한 자세한 내용과 옵션을 보려면 터미널에서 'useradd' 명령을 실행하여 사용 가능한 옵션을 확인하세요.

useradd

사용자 이름, 사용자 ID(UID), 홈 디렉터리, 셸 등을 수정하는 등 사용자 계정 속성을 수정하려면 usermod 명령을 사용합니다.