본문 바로가기
OS/Linux

[Linux] CentOS - 사용자 관리 - 패스워드 정책

by BTC_비웃는사나이 2022. 4. 19.

패스워드 관련 파일

/etc/security/pwquality.conf
: 패스워드 정책 설정 파일
[root@localhost ~]# cat /etc/security/pwquality.conf
# Configuration for systemwide password quality limits
# Defaults:
#
# Number of characters in the new password that must not be present in the
# old password. // 이전 암호에 없어야 하는 문자 수입니다.
# difok = 5
#
# Minimum acceptable size for the new password // 새 암호에 대해 허용되는 최소 크기입니다.
# (plus one if credits are not disabled which is the default). (See pam_cracklib manual.)
# Cannot be set to lower value than 6. // 6보다 작은 값으로 설정할 수 없습니다.
# minlen = 9
#
# The maximum credit for having digits in the new password. If less than 0
# it is the minimum number of digits in the new password.
# dcredit = 1
#
# The maximum credit for having uppercase characters in the new password.
# If less than 0 it is the minimum number of uppercase characters in the new
# password. // 새 암호에 대문자 포함 최대 크레딧입니다. 0보다 작으면 새 암호의 최소 대문자 수입니다.
# ucredit = 1
#
# The maximum credit for having lowercase characters in the new password.
# If less than 0 it is the minimum number of lowercase characters in the new
# password. // 새 암호에 소문자가 있는 경우의 최대 크레딧입니다. 0보다 작으면 새 암호의 최소 소문자 수입니다.
# lcredit = 1
#
# The maximum credit for having other characters in the new password.
# If less than 0 it is the minimum number of other characters in the new
# password. // 새 암호에 특수 문자가 있는 경우의 최대 크레딧입니다. 0보다 작으면 새 암호의 다른 특수 문자 수입니다.
# ocredit = 1
#
# The minimum number of required classes of characters for the new
# password (digits, uppercase, lowercase, others). // 새 암호에 필요한 최소 문자 클래스(숫자, 대문자, 소문자 등)입니다.
# minclass = 0
#
# The maximum number of allowed consecutive same characters in the new password.
# The check is disabled if the value is 0. // 새 암호에 허용된 동일한 연속 문자 최대 수입니다.
# maxrepeat = 0                            // 값이 0이면 검사가 비활성화됩니다.
#
# The maximum number of allowed consecutive characters of the same class in the
# new password. // 새 암호에서 동일한 클래스의 허용된 최대 연속 문자 수입니다.
# The check is disabled if the value is 0. // 값이 0이면 검사가 비활성화됩니다.
# maxclassrepeat = 0
#
# Whether to check for the words from the passwd entry GECOS string of the user. // 사용자의 암호 항목 GECOS 문자열에서 단어를 확인할지 여부입니다.
# The check is enabled if the value is not 0. // 값이 0이 아닌 경우 검사가 활성화됩니다.
# gecoscheck = 0
#
# Path to the cracklib dictionaries. Default is to use the cracklib default. // cracklib 사전에 대한 경로입니다. 기본값은 cracklib 기본값을 사용하는 것입니다.
# dictpath =

 

/etc/login.defs
: 패스워드 기본값 설정 파일
[root@localhost ~]# cat /etc/login.defs
#
# Please note that the parameters in this configuration file control the
# behavior of the tools from the shadow-utils component. None of these
# tools uses the PAM mechanism, and the utilities that use PAM (such as the
# passwd command) should therefore be configured elsewhere. Refer to
# /etc/pam.d/system-auth for more information.
#

# *REQUIRED*
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
#   QMAIL_DIR is for Qmail
#
#QMAIL_DIR      Maildir
MAIL_DIR        /var/spool/mail
#MAIL_FILE      .mail

# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   99999      /etc/shadow 파일의 설정된 최대 사용기간
PASS_MIN_DAYS   0          /etc/shadow 파일의 설정된 최소 사용기간
PASS_MIN_LEN    5          /etc/shadow 파일의 설정된 패스워드 최소 길이
PASS_WARN_AGE   7          /etc/shadow 파일의 설정된 패스워드 만료 경고일

#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000
UID_MAX                 60000
# System accounts
SYS_UID_MIN               201
SYS_UID_MAX               999

#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                  1000
GID_MAX                 60000
# System accounts
SYS_GID_MIN               201
SYS_GID_MAX               999

#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD    /usr/sbin/userdel_local

#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME     yes

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

# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes

# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512

 

패스워드 관련 명령어

authconfig [옵션][액션]
: /etc/passwd 및 /etc/shadow뿐만 아니라 NIS를 처리하도록 /etc/sysconfig/network를 구성하는 간단한 방법을 제공한다. 기본 LDAP, Kerberos 5 및 Winbind 클라이언트 구성된다.

 

  • [옵션]
  • --passminlen=<number> : 최소 암호 길이
  • --passmaxrepeat=<number> : 암호에서 동일한 연속 문자의 최대 개수
  • --enablereqlower : 암호에 최소 하나의 소문자가 있어야 함
  • --disablereqlower : 암호에 소문자가 필요하지 않음
  • --enablerequpper : 암호에 최소 하나의 대문자가 있어야 함
  • --disablerequpper : 암호에 대문자가 필요하지 않음
  • --enablereqdigit : 암호에 최소 하나의 숫자가 있어야 함
  • --disablereqdigit : 암호에 숫자가 필요하지 않음

 

  • [액션]
  • -test : authconfig는 루트 이외의 다른 사용자가 실행할 수 있으며, 구성 변경사항은 저장되지 않고 대신 인쇄된다.
  • -update : authconfig는 루트(또는 콘솔 도우미)를 통해 실행되어야 하며 구성 변경사항이 저장됨. 구성 변경의 영향을 받는 파일만 덮어쓴다.
  • -updateall : authconfig는 루트(또는 콘솔 도우미)를 통해 실행되어야 하며 모든 구성 파일이 작성된다. --probe 동작은 authconfig에 현재 호스트에 대한 구성 정보를 추측하고, 표준 출력에 대한 추측을 출력한 후 종료하도록 지시한다.
  • -restorebackup, --savebackup 및 --restorelastbackup : authconfig가 수정하는 구성 파일의 백업을 저장하고 나중에 복원할 수 있다. 또한 Authconfig는 구성을 변경할 때마다 구성 파일의 자동 백업을 저장한다. 이 특수 백업은 --restorelastbackup 작업을 통해 복원할 수 있다.

 

passwd 명령어
: 패스워드를 변경할 때 사용함.
  • a, --all : 모든 사용자의 암호 상태를 출력한다. -S 옵션과 같이 사용해야 한다.
  • -d, --delete : 사용자의 암호를 삭제한다.
  • -e, --expire : 강제적으로 사용자의 암호를 만료시킨다.
  • -h, --help : 사용법을 출력한다.
  • -i, --inactive INACTIVE : 암호가 만료된 이후에 비활성화 기간(INACTIVE)을 지정한다.
  • -l, --lock : 지정한 사용자의 암호에 락(lock)을 지정한다.
  • -n, --mindays MIN_DAYS : 다시 암호를 변경할 수 있는 최소 일수(MIN_DAYS)을 지정한다.
  • -q --quiet : 메시지를 출력하지 않는다.
  • -r, --repository REPOSITORY : 저장소(REPOSITORY)의 암호를 변경한다.
  • -S, --status : 사용자의 패스워드 정보를 출력한다. 상태 정보는 7개의 필드로 구성된다.
  • -u, --unlock : 사용자 암호의 락을 해제한다.
  • -w, --warndays WARN_DAYS : 암호 만료 메시지를 보여줄 기간(WARN_DAYS)을 지정한다.
  • -x, --maxdays MAX_DAYS : 패스워드 암호를 변경하지 않아도 되는 최대 유효기간(MAX_DAYS)을 지정한다.

 

출처 : https://www.youtube.com/channel/UCl9zTDOvOxdCfUt1HqVwwdg

댓글