25.5. 명령행 설정

명령행 도구 사용을 선호하시거나 X 윈도우 시스템이 설치되지 않은 경우, 이 장에서 명령행을 사용하여 사용자와 그룹을 설정하는 방법을 배워보시기 바랍니다.

25.5.1. 사용자 추가하기

시스템에 사용자를 추가하시려면:

  1. useradd 명령을 사용하여 잠겨진 사용자 계정을 생성합니다:

    useradd <username>
  2. passwd 명령을 사용하여 계정에 암호를 지정하고 암호 만료 기한을 설정하여 잠금을 해제합니다:

    passwd <username>

표 25-1에서 useradd 명령에 사용할 수 있는 명령행 옵션이 나와 있습니다.

옵션설명
-c comment사용자에 대한 설명
-d home-dir디폴트 /home/username 디렉토리 대신 사용될 홈 디렉토리 지정
-e date계정 만료 기한을 YYYY-MM-DD 날짜 형식으로 지정
-f days암호가 만료된 후 계정이 만료될 때까지의 날짜수. (만일 0로 지정하시면, 암호가 완료되자 마자 계정이 비활성화 됩니다. 만일 -1로 지정하시면, 암호가 만료된 후에도 계정이 비활성화되지 않습니다.)
-g group-name사용자 기본 그룹명 또는 그룹 번호 (반드시 기본 그룹이 존재해야 합니다.)
-G group-list사용자가 속한 기본 그룹이 아닌 추가 그룹들의 이름과 번호 목록으로 각 그룹은 콤마로 구분됩니다. (그룹이 반드시 존재해야 합니다.)
-m홈 디렉토리가 없다면 생성합니다
-M홈 디렉토리를 생성하지 않음
-n사용자에 대한 사용자 개인 그룹을 생성하지 않음
-r홈 디렉토리가 없이 사용자 ID (UID) 500 이하의 시스템 계정을 생성함.
-p 암호 (password)crypt로 암호화할 암호
-s사용자 로그인 쉘, 디폴트는 /bin/bash
-u uid사용자 ID. 499 보다 큰 숫자이며 유일한 숫자.

표 25-1. useradd 명령행 옵션들

25.5.2. 그룹 추가하기

시스템에 그룹을 추가하시려면, groupadd 명령을 사용하시기 바랍니다:

groupadd <group-name>

표 25-2에서 groupadd 명령에 사용되는 명령행 옵션 목록을 보실 수 있습니다.

옵션설명
-g gid그룹 ID, 499 보다 큰 숫자로서 유일한 숫자.
-r500 이하의 GID를 가진 시스템 그룹을 생성.
-f이미 그룹이 존재한다면 오류를 보이고 종료합니다. (그룹이 변경되지 않습니다.) 만일 -g 옵션과 -f 옵션이 지정된 경우 그룹이 이미 존재한다면, -g 옵션은 무시됩니다.

표 25-2. groupadd 명령행 옵션들

25.5.3. 암호 기한 만료

보안 상의 이유로, 사용자가 주기적으로 암호를 변경하도록 하는 것이 좋습니다. 이것은 사용자 관리 도구의 암호 정보 탭에서 사용자를 추가하거나 편집함으로서 가능합니다.

쉘 프롬프트에서 사용자에 대한 암호 만료 기한을 설정하시려면, chage 명령 다음에 표 25-3의 옵션과 사용자명을 함께 입력하시면 됩니다.

중요중요
 

chage 명령을 사용하기 위해서는 섀도우 암호가 활성화되어야 합니다.

옵션설명
-m days사용자가 암호를 변경해야할 최소 날짜수를 지정합니다. 만일 값이 0 이라면, 암호는 만료되지 않습니다.
-M days암호가 유효한 최대 날짜수를 지정합니다. 이 옵션에 의해 지정된 날짜수와 -d 옵션과 함께 지정된 날짜수를 더한 값이 현재 날짜보다 적다면, 계정을 사용하기 전에 암호를 변경해야 합니다.
-d days1970년 1월 1일 이후로 암호가 마지막으로 변경된 날짜수를 지정합니다.
-I days암호가 만료된 후 계정을 잠글 때까지 걸리는 비활성화 기간을 날짜수를 지정합니다. 만일 값이 0 이라면, 암호가 만기되어도 계정이 잠기지 않습니다.
-E date계정이 잠길 날짜를 YYYY-MM-DD 형식으로 지정합니다. 1970년 1월 1일 이후 날짜수를 사용하는 것도 가능합니다.
-W days암호가 만료되기 몇일 전에 사용자에게 경고할 것인지 지정합니다.

표 25-3. change 명령행 옵션

작은보힌트
 

만일 chage 명령 다음에 아무런 옵션 없이 사용자명이 바로 사용된다면, 현재 암호 만기값이 보여지며 변경할 값을 요청합니다.

사용자가 첫 로그인시 암호를 설정하도록 하기 위해서는, 시스템 관리자는 사용자의 암호가 즉시 만료되도록 설정하셔야 합니다. 따라서 사용자는 처음 로그인하는 즉시 암호를 변경해야 합니다.

사용자가 처음으로 콘솔에 로그인할 때 암호를 설정하도록 강제하기 위해서는, 다음과 같은 절차를 따르십시오. 만일 사용자가 SSH 프로토콜을 사용하여 로그인 하였을 경우에는 이 방법이 작용하지 않습니다.

  1. 사용자의 암호를 잠금 — 만일 사용자가 존재하지 않는다면, useradd 명령을 사용하여 사용자 계정을 생성합니다. 그러나 암호는 부여하지 않아 그 계정이 잠긴 상태로 남아있게 합니다.

    만일 암호가 이미 활성화되었다면, 다음 명령을 사용하여 계정을 잠그십시오:

    usermod -L username
  2. 즉시 암호가 만료되도록 강제함 — 다음 명령을 입력하시면 됩니다:

    chage -d 0 username

    이 명령은 1970년 1월 1일 이후로 암호가 마지막으로 변경된 날짜에 대한 값을 지정합니다. 이 값은 암호 기한 만료에 어떠한 법칙이 적용되든지에 상관없이 암호가 즉시 만료되도록 강제합니다.

  3. 계정 잠금을 해제함 — 이 과정에는 두 가지 방법이 있습니다. 관리자가 초기 암호를 부여하는 방법과 암호를 입력하지 않고 공백으로 남겨두는 방법입니다.

    주의경고
     

    passwd 명령을 사용하여 암호를 설정하지 마십시오. 그 이유는 이 명령은 방금 설정하신 즉시 암호가 만료되도록 강제하는 설정을 사용할 수 없게 만들기 때문입니다.

    초기 암호를 할당하시려면, 다음과 같은 과정을 따르시기 바랍니다:

    • python 명령을 사용하여 명령행 python 해석기를 시작합니다. 다음과 같이 나타날 것입니다:

      Python 2.2.2 (#1, Dec 10 2002, 09:57:09)
      [GCC 3.2.1 20021207 (Red Hat Linux 8.0 3.2.1-2)] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>>
    • 프롬프트에서 다음과 같은 명령을 입력하십시오 (여기서 password 부분은 암호화할 암호를 입력하시고 salt는 정확히 2 개의 대문자 또는 소문자 알파벳이나, 숫자, 점 (.), 기호, 또는 슬래시 (/) 기호를 함께 입력하시면 됩니다):

      import crypt; print crypt.crypt("password","salt")

      12CsGd8FRcMSM처럼 암호화된 암호가 출력될 것입니다.

    • [Ctrl]-[D]를 눌러 Python 해석기를 종료합니다.

    • 출력된 암호화된 암호를 다음 명령으로 앞 뒤 공간이 없이 정확히 복사하여 붙이기 합니다:

      usermod -p "encrypted-password" username

    초기 암호를 할당하는 대신, 다음 명령을 사용하여 암호를 입력하지 않고 빈 공간으로 남겨둘 수도 있습니다:

    usermod -p "" username

    경고주의
     

    빈 암호를 사용하는 것이 사용자나 관리자 모두에게 편리하기는 하지만, 제3의 사용자가 먼저 로그인하여 시스템에 점근할 수 있다는 약간의 위험성이 있기는 합니다. 이러한 위험을 최소화하기 위해서는, 관리자가 계정을 잠금 해제할 시 로그인할 준비가된 사용자를 확인하는 것이 중요합니다.

    다른 방법으로 사용자가 처음 로그인시, 새로운 암호를 요청할 수 있습니다.