4.3. 명령줄 툴 사용


4.2절. “그래픽 환경에서 사용자 관리” 에 설명된 사용자 설정 도구 외에도 표 4.1. “사용자 및 그룹을 관리하기 위한 명령줄 유틸리티” 에 설명된 사용자 및 그룹 관리를 위해 명령줄 툴을 사용할 수 있습니다.

표 4.1. 사용자 및 그룹을 관리하기 위한 명령줄 유틸리티
유틸리티설명

id

사용자 및 그룹 ID를 표시합니다.

useradd, usermod, userdel

사용자 계정을 추가, 수정 및 삭제하는 표준 유틸리티입니다.

groupadd, groupmod, groupdel

그룹을 추가, 수정 및 삭제하는 표준 유틸리티입니다.

gpasswd

유틸리티는 주로 newgrp 명령에서 사용되는 /etc/gshadow 파일에서 그룹 암호를 수정하는 데 사용됩니다.

pwck, grpck

암호, 그룹 및 관련 shadow 파일을 확인하는 데 사용할 수 있는 유틸리티입니다.

pwconv, pwunconv

암호를 섀도우 암호로 변환하거나 섀도 암호에서 표준 암호로 전환하는 데 사용할 수 있는 유틸리티입니다.

grpconv, grpunconv

이전과 유사하게 이러한 유틸리티를 사용하여 그룹 계정에 대한 shadowed 정보를 변환할 수 있습니다.

4.3.1. 새 사용자 추가

새 사용자를 시스템에 추가하려면 쉘 프롬프트에서 root 로 다음을 입력합니다.

useradd options username

여기서 옵션표 4.2. “일반 useradd 명령줄 옵션” 에 설명된 대로 명령줄 옵션입니다.

기본적으로 useradd 명령은 잠긴 사용자 계정을 생성합니다. 계정 잠금을 해제하려면 root 로 다음 명령을 실행하여 암호를 할당합니다.

passwd username

필요한 경우 암호 사용 기간 정책을 설정할 수 있습니다. Red Hat Enterprise Linux 7 보안 가이드의 암호 보안 섹션을 참조하십시오.

표 4.2. 일반 useradd 명령줄 옵션
옵션 

-c '주석'

주석은 임의의 문자열로 교체할 수 있습니다. 이 옵션은 일반적으로 사용자의 전체 이름을 지정하는 데 사용됩니다.

-d home_directory

기본 /home/username/ 대신 사용할 홈 디렉토리입니다.

-e date

octets-MM-DD 형식으로 계정을 비활성화하는 날짜입니다.

-F days

암호가 만료된 후 계정이 비활성화될 때까지 일 수입니다. 0 을 지정하면 암호가 만료된 직후 계정이 비활성화됩니다. -1 을 지정하면 암호가 만료된 후 계정이 비활성화되지 않습니다.

-g group_name

사용자 default( primary) 그룹의 그룹 이름 또는 그룹 번호입니다. 그룹은 여기에 지정되기 전에 존재해야 합니다.

-G group_list

사용자가 멤버인 쉼표로 구분된 추가(기본값 이외의) 그룹 이름 또는 그룹 번호 목록입니다. 그룹은 여기에 지정되기 전에 존재해야 합니다.

-m

홈 디렉터리가 없는 경우 해당 디렉터리를 생성합니다.

-M

홈 디렉터리를 생성하지 마십시오.

-N

사용자에 대한 사용자 개인 그룹을 생성하지 마십시오.

-p password

crypt 로 암호화된 암호.

-r

홈 디렉터리없이 1000 미만의 UID가 있는 시스템 계정을 생성합니다.

-s

기본값은 /bin/bash 인 사용자 로그인 쉘입니다.

-u uid

사용자의 사용자 ID는 unique이고 unique여야 합니다.

중요

시스템 및 일반 사용자의 기본 ID 범위는 Red Hat Enterprise Linux 7에서 이전 릴리스에서 변경되었습니다. 이전에는 일반 사용자에 대해 위의 시스템 사용자 및 값에 UID 1-499가 사용되었습니다. 시스템 사용자의 기본 범위는 이제 1-999입니다. 이러한 변경으로 인해 기존 사용자가 500~900 사이의 UID와 GID가 있는 Red Hat Enterprise Linux 7로 마이그레이션할 때 문제가 발생할 수 있습니다. UID 및 GID의 기본 범위는 /etc/login.defs 파일에서 변경할 수 있습니다.

프로세스 설명

다음 단계는 useradd juan 명령이 섀도가 활성화된 시스템에서 실행된 경우 어떤 일이 발생하는지를 보여줍니다.

  1. /etc/passwd에 대한 새 행이 /etc/passwd 에 생성됩니다.

    juan:x:1001:1001::/home/juan:/bin/bash

    라인에는 다음과 같은 특징이 있습니다.

    • 사용자 이름으로 시작합니다.
    • 시스템에서 섀도우 암호를 사용하고 있음을 나타내는 x (암호) 필드에는 x가 있습니다.
    • 6443보다 큰 UID가 생성됩니다. Red Hat Enterprise Linux 7에서 1000 미만의 UID는 시스템 사용을 위해 예약되어 있으며 사용자에게 할당해서는 안 됩니다.
    • 6443보다 큰 GID가 생성됩니다. Red Hat Enterprise Linux 7에서 1000 미만의 GID는 시스템 사용을 위해 예약되어 있으며 사용자에게 할당해서는 안 됩니다.
    • 선택적 GECOS 정보는 비어 있습니다. GECOS 필드는 사용자의 전체 이름 또는 전화 번호와 같은 추가 정보를 제공하는 데 사용할 수 있습니다.
    • juan 의 홈 디렉토리는 /home/juan/ 로 설정됩니다.
    • 기본 쉘은 /bin/bash 로 설정됩니다.
  2. /etc/shadow에 대한 새 행이 /etc/shadow 에 생성됩니다.

    juan:!!:14798:0:99999:7:::

    라인에는 다음과 같은 특징이 있습니다.

    • 사용자 이름으로 시작합니다.
    • 두 개의 느낌표(!!)가 계정을 잠그는 /etc/shadow 파일의 password 필드에 나타납니다.

      참고

      암호화된 암호가 -p 플래그를 사용하여 전달되면 사용자의 새 줄의 /etc/shadow 파일에 배치됩니다.

    • 암호는 만료되지 않음으로 설정됩니다.
  3. jan이라는 그룹의 새 행이 /etc/group 에 생성됩니다.

    juan:x:1001:

    사용자와 동일한 이름을 가진 그룹을 사용자 개인 그룹 이라고 합니다. 사용자 개인 그룹에 대한 자세한 내용은 4.1.1절. “사용자 개인 그룹” 을 참조하십시오.

    /etc/group 에서 생성된 행은 다음과 같은 특징이 있습니다.

    • 그룹 이름으로 시작합니다.
    • 시스템이 섀도우 그룹 암호를 사용하고 있음을 나타내는 x 가 password 필드에 나타납니다.
    • GID는 /etc/passwd 에 있는 juan 의 기본 그룹에 대해 나열된 항목과 일치합니다.
  4. jan이라는 그룹의 새 행이 /etc/gshadow 에 생성됩니다.

    juan:!::

    라인에는 다음과 같은 특징이 있습니다.

    • 그룹 이름으로 시작합니다.
    • 느낌표(! ! )는 그룹을 잠그는 /etc/gshadow 파일의 password 필드에 나타납니다.
    • 다른 모든 필드는 비어 있습니다.
  5. /home 디렉토리에 사용자 juan 의 디렉터리가 생성됩니다.

    ~]# ls -ld /home/juan
    drwx------. 4 juan juan 4096 Mar 3 18:23 /home/juan

    이 디렉토리는 사용자 juan 및 group juan 이 소유합니다. 이 명령은 사용자(Jenan)에 대해서만 읽기,쓰기, 실행 권한을 보유합니다. 기타 모든 권한은 거부됩니다.

  6. /etc/skel/ 디렉터리 내의 파일(기본 사용자 설정이 포함된)은 새 /home/juan/ 디렉토리에 복사됩니다.

    ~]# ls -la /home/juan
    total 28
    drwx------. 4 juan juan 4096 Mar 3 18:23 .
    drwxr-xr-x. 5 root root 4096 Mar 3 18:23 ..
    -rw-r--r--. 1 juan juan  18 Jun 22 2010 .bash_logout
    -rw-r--r--. 1 juan juan 176 Jun 22 2010 .bash_profile
    -rw-r--r--. 1 juan juan 124 Jun 22 2010 .bashrc
    drwxr-xr-x. 4 juan juan 4096 Nov 23 15:09 .mozilla

이 시점에서 'Udan'이라는 잠긴 계정이 시스템에 있습니다. 이를 활성화하려면 다음으로는 passwd 명령을 사용하여 계정에 암호를 할당하고 선택적으로 암호 사용 지침을 설정합니다(자세한 내용은 Red Hat Enterprise Linux 7 보안 가이드의 암호 보안 섹션 참조).

4.3.2. 새 그룹 추가

새 그룹을 시스템에 추가하려면 쉘 프롬프트에서 root 로 다음을 입력합니다.

groupadd options group_name

여기서 옵션표 4.3. “공통 groupadd 명령줄 옵션” 에 설명된 대로 명령줄 옵션입니다.

표 4.3. 공통 groupadd 명령줄 옵션
옵션설명

-f, --force

-gid 및 gid 함께 사용하면 groupadd 가 그룹에 대해 다른 고유한 gid를 선택합니다.

-g gid

그룹의 그룹 ID는 unique이고 unique여야 합니다.

-K, --key key=value

/etc/login.defs 기본값을 재정의합니다.

-o, --non-unique

중복된 GID를 사용하여 그룹을 생성할 수 있습니다.

-p, --password password

이 암호화된 암호를 새 그룹에 사용합니다.

-r

GID가 1000 미만인 시스템 그룹을 만듭니다.

4.3.3. 기존 그룹에 기존 사용자 추가

usermod 유틸리티를 사용하여 기존 사용자를 기존 그룹에 추가합니다.

usermod 의 다양한 옵션은 사용자의 기본 그룹과 해당 보조 그룹에 다른 영향을 미칩니다.

사용자의 기본 그룹을 재정의하려면 root 로 다음 명령을 실행합니다.

~]# usermod -g group_name user_name

사용자의 보조 그룹을 재정의하려면 root 로 다음 명령을 실행합니다.

~]# usermod -G group_name1,group_name2,... user_name

이 경우 사용자의 이전의 모든 보조 그룹이 새 그룹 또는 여러 개의 새 그룹으로 교체됩니다.

사용자 보조 그룹에 하나 이상의 그룹을 추가하려면 root 로 다음 명령 중 하나를 실행합니다.

~]# usermod -aG group_name1,group_name2,... user_name
~]# usermod --append -G group_name1,group_name2,... user_name

이 경우 새 그룹이 사용자의 현재 보조 그룹에 추가됩니다.

4.3.4. 그룹 디렉터리 생성

시스템 관리자는 일반적으로 각 주요 프로젝트에 대한 그룹을 만들고 해당 프로젝트의 파일에 액세스해야 할 때 그룹에 사용자를 할당하는 것을 선호합니다. 이 기존 스키마를 사용하면 파일 관리가 어렵습니다. 사용자가 파일을 만들 때 해당 파일이 속한 기본 그룹과 연결됩니다. 한 사람이 여러 프로젝트에서 작업하면 올바른 파일을 올바른 그룹과 연결하는 것이 어려워집니다. 그러나 UPG 스키마를 사용하면 groups가 setgid 비트가 설정된 디렉터리 내에 생성된 파일에 자동으로 할당됩니다. setgid 비트는 디렉터리 내에 있는 사용자가 디렉터리를 소유한 그룹이 소유하므로 공통 디렉터리를 공유하는 그룹 프로젝트를 매우 간단하게 관리할 수 있습니다.

예를 들어, 사용자 그룹은 /opt/myproject/ 디렉토리의 파일에서 작업해야 합니다. 일부 사용자는 이 디렉터리의 내용을 수정할 수 있지만 모든 사람이 수정할 수는 없습니다.

  1. 루트 로서 쉘 프롬프트에서 다음을 입력하여 /opt/myproject/ 디렉터리를 만듭니다.

    mkdir /opt/myproject
  2. myproject 그룹을 시스템에 추가합니다.

    groupadd myproject
  3. /opt/myproject/ 디렉터리의 콘텐츠를 myproject 그룹과 연결합니다.

    chown root:myproject /opt/myproject
  4. 그룹의 사용자가 디렉터리 내에 파일을 생성하고 setgid 비트를 설정할 수 있도록 허용합니다.

    chmod 2775 /opt/myproject

    이 시점에서 myproject 그룹의 모든 멤버는 사용자가 새 파일을 쓸 때마다 파일 권한을 변경하지 않고도 /opt/myproject/ 디렉토리에서 파일을 만들고 편집할 수 있습니다. 권한이 올바르게 설정되었는지 확인하려면 다음 명령을 실행합니다.

    ~]# ls -ld /opt/myproject
    drwxrwsr-x. 3 root myproject 4096 Mar 3 18:31 /opt/myproject
  5. myproject 그룹에 사용자를 추가합니다.

    usermod -aG myproject username

4.3.5. 프롬프트를 사용하여 새 파일에 대한 기본 권한 설정

프로세스에서 파일을 생성할 때 파일에는 특정 기본 권한(예: -rw-rw-r-- )이 있습니다. 이러한 초기 권한은 파일 권한 마스크 또는 umask 라고도 하는 파일 모드 생성 마스크 로 부분적으로 정의됩니다. 예를 들어, bash 에는 기본적으로 모든 프로세스에 자체 imagestreamtag 있습니다. 프로세스 imagestreamtag 는 변경될 수 있습니다.

다음로 구성된 imagestreamtag

jaeger 표준 파일 권한에 해당하는 비트로 구성됩니다. 예를 들어 dependencies 0 137 의 경우 숫자는 다음과 같습니다.

  • 0 = no meaning, it is always 0 (umask does not affect special bits)
  • 1 = 소유자 권한의 경우 실행 비트가 설정됩니다.
  • 3 = 그룹 권한의 경우 실행 및 쓰기 비트가 설정됩니다.
  • 7 = 기타 권한의 경우 실행, 쓰기 및 읽기 비트가 설정됩니다.

U마스크는 바이너리, 8진수 또는 심볼릭 표기법으로 표현할 수 있습니다. 예를 들어 8진수 표현 0137 은 심볼릭 표현 u=rw-,g=r-,o=-- 입니다. 기호 표기법 사양은 8진수 표기법 사양과 반대됩니다. 금지된 권한이 아니라 허용되는 권한이 표시됩니다.

imagestreamtag 작동 방식

jaeger 는 파일에 대한 권한을 설정하지 못하도록 합니다.

  • syslog에 비트가 설정되어 있으면 파일에 설정되지 않습니다.
  • messages에 비트가 설정되지 않은 경우 다른 요인에 따라 파일에서 설정할 수 있습니다.

다음 그림은 alerts 0137 새 파일 생성에 미치는 영향을 보여줍니다.

그림 4.3. 파일을 생성할 때 alerts 적용

사용자 그룹 Umask 예
중요

보안상의 이유로 일반 파일은 기본적으로 실행 권한을 가질 수 없습니다. 따라서 credentials 권한을 금지하지 않는 0000 이지만 새 일반 파일에는 여전히 실행 권한이 없습니다. 그러나 실행 권한을 사용하여 디렉터리를 생성할 수 있습니다.

[john@server tmp]$ umask 0000
[john@server tmp]$ touch file
[john@server tmp]$ mkdir directory
[john@server tmp]$ ls -lh .
total 0
drwxrwxrwx. 2 john john 40 Nov 2 13:17 directory
-rw-rw-rw-. 1 john john 0 Nov 2 13:17 file

4.3.5.1. 쉘에서 imagestreamtag 관리

bash,ksh,zshtcsh 와 같은 인기 있는 쉘의 경우 umask 내장. 쉘에서 시작된 프로세스는 dependencies를 상속합니다.

현재 마스크를 표시

현재 umask 를 8진수 표기법으로 표시하려면 다음을 수행합니다.

~]$ umask
0022

현재 mTLS를 심볼릭 표기법으로 표시하려면 다음을 수행합니다.

~]$ umask -S
u=rwx,g=rx,o=rx
syslog를 사용하여 쉘에 마스크 설정

8진수 표기법을 사용하여 현재 쉘 세션에 대해 mTLS를 설정하려면 다음을 실행합니다.

~]$ umask octal_mask

8 진수_마스크0 에서 7 까지 4자리 이하로 대체합니다. 세 자리 이하가 제공되면 명령에 선행 0이 포함된 것처럼 권한이 설정됩니다. 예를 들어, dependencies 70007 로 변환됩니다.

예 4.1. 10월al Notation을 사용하여 imagestreamtag 설정

새 파일에 소유자 및 그룹에 대한 쓰기 및 실행 권한이 없도록 하고 다른 사용자에 대한 권한이 없도록 하려면 다음을 수행합니다.

~]$ umask 0337

또는 간단히:

~]$ umask 337

심볼릭 표기법을 사용하여 현재 쉘 세션에 대해 mTLS를 설정하려면 다음을 수행합니다.

~]$ umask -S symbolic_mask

예 4.2. Symbolic Notation을 사용하여 receiver 설정

심볼릭 표기법을 사용하여 receiver 0337 을 설정하려면 다음을 수행합니다.

~]$ umask -S u=r,g=r,o=
기본 쉘 dependencies로 작업

쉘에는 일반적으로 기본 mTLS가 설정된 설정 파일이 있습니다. bash 의 경우 /etc/bashrc 입니다. 기본 bash umask를 표시하려면 다음을 수행합니다.

~]$ grep -i -B 1 umask /etc/bashrc

출력 결과에서 dependencies 명령 또는 UMASK 변수를 사용하는 경우 output이 표시됩니다. 다음 예에서 umask 는 permissions 명령을 사용하여 022 로 설정됩니다.

~]$ grep -i -B 1 umask /etc/bashrc
  # By default, we want umask to get set. This sets it for non-login shell.
--
  if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
    umask 002
  else
    umask 022

bash 에 대한 기본 umask 를 변경하려면 /etc/bashrc.org에서 permissions 명령 호출 또는 UMASK 변수 할당을 변경합니다. 이 예에서는 기본 umask0227 로 변경합니다.

  if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
    umask 002
  else
    umask 227
특정 사용자의 기본 쉘 messages로 작업

기본적으로 새 사용자의 bash umask/etc/bashrc 에 정의된 기본값으로 설정됩니다.

특정 사용자에 대해 bash umask 를 변경하려면 해당 사용자의 $HOME/.bashrc 파일에 있는 dependencies 명령에 대한 호출을 추가합니다. 예를 들어 사용자 johnbash umask0227 로 변경하려면 다음을 수행합니다.

john@server ~]$ echo 'umask 227' >> /home/john/.bashrc
새로 생성된 홈 디렉터리에 대한 기본 권한 설정

생성된 사용자 홈 디렉터리의 권한을 변경하려면 /etc/login.defs 파일에서 UMASK 변수를 변경합니다.

# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK 077
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.