OS/Linux - Ubuntu

[Linux - 리눅스 / Ubuntu - 우분투] 사용자 계정 관련 파일 - /etc/passwd, /etc/shadow, /etc/login.defs, /etc/group, /etc/gshadow

주누다 2015. 4. 26. 16:44
반응형

사용자 계정 관련

- 리눅스는 기본적으로 여러 명이 시스템을 사용하느 다중 사용자 시스템

- 사용자를 구별하고 사용자에게 적절한 자원을 할당해주는 방법이 필요

- 리눅스에서는 사용자 계정이 사용자를 구별하는 역할을 함

- 사용자 계정은 사용자가 시스템에 접근할 수 있는 유일한 방법

- 시스템 관리자의 입장에서도 사용자의 접근 권한을 통제할 수 있는 수단

- 사용자 계졍 관련된 파일로는 다섯개가 있음

 * /etc/passwd

 * /etc/shadow

 * /etc/login.defs

 * /etc/group

 * /etc/gshadow






/etc/passwd 파일

- '/etc/passwd' 파일은 사용자 계정 정보가 저장된 기본 파일

- 초기 유닉스에서는 암호도 '/etc/passwd' 에 저장했으나,

  해킹의 위험이 증가하면서 암호는 '/etc/shadow' 파일에 별도로 저장

- 사용자 계정의 추가나 삭제, 수정 등 변경 사항이 있을 때는 관련된 명령으로 작업을 하는 것이 바람직

'/etc/passwd' 파일의 구조

- '/etc/passwd' 파일은 한 행에 사용자 한 명에 대한 정보가 기록

- 쌍점(:)으로 구분하며 일곱 개의 항목으로 구성 


'/etc/passwd' 파일의 사용자 계정 정보 구성

로그인 ID :

x : 

UID : 

GID : 

설명 :

홈 디렉터리 :

로그인 쉘

2

3

4

5

6

7

 

1) 로그인 ID

- 로그인 ID 는 사용자의 계정의 이름을 뜻함

- 사용자 ID, 사용자 이름, 로그인 이름이라고도 함

- 32자를 넘을 수 없으나 유닉스 같은 다른 운영체제와의 연동을 고려한다면

  로그인 ID 를 8자로 제한 하는 것이 좋음

- 로그인 ID는 중복되는 이름을 사용해서는 안 됨



2) x

- 초기 유닉스 시스템에서 사용자 암호를 저장하단 항목

- 요즘은 보안상의 이유로 사용자 암호를 '/etc/shadow' 파일에 별도로 보관

- 이 항목은 역사적인 이유로 이전 프로그램과의 호환성을 위해 그대로 유지

- x 로 표시



3) UID

- 사용자 ID 번호로 시스템이 사용자를 구별하기 위해 사용하는 번호

- 일반적으로 0~999번과 65534번은 시스템 사용자를 위한 UID 로 예약되어 있음

- 시스템 사용자 계정은 시스템이 관리 업무를 위해 내부적으로 사용하려고 예약되어 있는 계정이므로 임의로 수정하지 않음

- 일반 사용자들은 UID 1000번 부터 할당

 * 0(root) : root 사용자 계정

 * 1(daemon) : 시스템 데몬 계정

 * 2(bin) : 명령어 관리를 위한 계정

 * 7(lp) : 프린트 서비스와 관련된 계정

 * 65534(nobody) : 사용자의 UID로 NFS와 관련된 계정


- 로그인 ID 가 다르더라도 UID가 같으면 리눅스 시스템은 같은 사용자로 판단

- 사용자 이름이 root가 아닌 다른 이름, 예를 들어 user1이더라도 user1의 UID가 0번이면

  시스템은 root 계정으로 인식

- 시스템 관리자는 UID 가 중복되지 않았는지 주의



4) GID

- 그룹 ID를 나타냄

- 리눅스에서 사용자는 무조건 하나 이상의 그룹에 소속됨

- 사용자 기본 그룹은 사용자를 등록할 때 정해지며,

  특별히 소속 그룹을 지정하지 않으면 자동적으로 로그인 ID 가 그룹으로 등록

- 시스템에 등록된 그룹에 대한 정보는 '/etc/group' 파일에 저장



5) 설명

- 사용자의 실명이나 부서명, 연락처 등 사용자에 대한 일반적인 정보가 기록되는 부분

- 설명은 유닉스에서 유래된 역사적인 이유로 GECOS라고 부르기도 함



6) 홈 디렉터리

- 사용자 계정에 할당된 홈 디렉터리의 절대 경로를 기록

- 사용자가 로그인할 때 자동적으로 로그인되는 디렉터리가 홈 디렉터리



7) 로그인 쉘

- 사용자의 로그인 쉘을 지정

- 로그인 쉘은 사용자가 로그인할 때 기본적으로 동작하는 쉘

- 현재 우분투에서는 배시 쉘(/bin/bash)을 기본 쉘로 사용


'/etc/passwd' 파일의 예

- '/etc/passwd' 파일은 누구나 읽을 수 있도록 접근 권한이 설정

======================================================================

sjw@sjw-HP-Mini-110-3500:~$ cat /etc/passwd

...

...

sys:x:3:3:sys:/dev:/usr/sbin/nologin
...

...

avahi:x:111:117:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
lightdm:x:112:118:Light Display Manager:/var/lib/lightdm:/bin/false
colord:x:113:121:colord colour management daemon,,,:/var/lib/colord:/bin/false
hplip:x:114:7:HPLIP system user,,,:/var/run/hplip:/bin/false
pulse:x:115:122:PulseAudio daemon,,,:/var/run/pulse:/bin/false
sjw:x:1000:1000:sjw,,,:/home/sjw:/bin/bash

======================================================================


- '/etc/passwd' 파일에서 sys 게정을 보면 UID 가 3번, GID 가 3번으로 설정

- '/etc/group' 파일을 보면 GID 3은 sys그룹

- 홈 디렉터리는 '/dev/로 되어 있음

- 쉘이 '/bin/sh'로 설정

- 우분투는 페도라와 달리 일부 시스템 계정의 쉘을 '/bin/sh' 로 지정




/etc/shadow 파일

- '/etc/shadow' 파일은 보안 때문에 사용자 암호에 관한 정보를 별로도 관리하는 파일

- '/etc/passwd' 파일은 누구나 읽을 수 있지만,

  '/etc/shadow' 파일의 경우 root 사용자만 읽고 쓸 수 있으며, shadow 그룹은 읽기만 가능

======================================================================

sjw@sjw-HP-Mini-110-3500:~$ ls -l /etc/passwd /etc/shadow
-rw-r--r-- 1 root root   1861  3월  2 22:20 /etc/passwd
-rw-r----- 1 root shadow 1069  3월  2 22:20 /etc/shadow
sjw@sjw-HP-Mini-110-3500:~$

======================================================================


/etc/shadow 파일의 구조

- '/etc/shadow' 파일에는 사용자 암호 외에 사용자 계정과 관련된 부가적인 정보도 저장

- '/etc/shadow-' sms '/etc/shadow'의 백업파일

- 아홉개의 항목으로 구성, 쌍점(:)으로 구분

 

 /etc/shadow 파일의 정보 구성

로그인 ID :

암호 :

최종 변경일 :

MIN : 

MAX : 

WARNING : 

INACTIVE : 

EXPIRE : 

Flag

1

2

3

4

5

6

7

8

9


1) 로그인 ID

- 사용자 계정 이름으로 '/etc/passwd' 파일의 로그인 ID 와 같은 이름



2) 암호(패스워드)

- 실제 비밀번호가 암호화되어 저장

- 비밀번호는 일방향 암호여서 이 비밀번호가 원래 어떤 문자였는지 복호화할 수 없음

- 사용자가 로그인할 때 입력하는 비밀번호를 다시 암호화하여 이 암호와 비교하는 것

- 암호 항목에 아무 값도 없으면 암호가 지정되지 않은 계정임을 뜻함

- 시스템 계정에는 !!가 표시



3) 최종 변경일

- 암호가 마지막으로 변경된 날짜를 지정

- 일반적인 연월일 형태로 기록되는 것이 아니라, 유닉스의 전통을 따라 1970년 1월 1일을 기준으로 날수를 기록

- 예를 들어 2013년 6월 21일 암호가 변경되었으면 15867로 기록

  1970년 1월 1일부터 2013년 6월 21일까지 15867일이라는 뜻



4) MIN

- MIN을 비롯해 MAX, WARNING, INACTIVE, EXPIRE 항목을 패스워드 에이징이라고 함.

- 각각 패스워드와 관련된 사용 기간을 지정

- MIN 은 암호를 변경한 후 사용해야 하는 최소 기간

- MIN 이 3이면 암호 변경 후 최소한 3일은 그 암호를 그대로 사용해야함

- 보안의 관점에서 이 값은 0 으로 설정하는 것이 좋음



5) MAX

- 암호를 사용할 수 있는 최대 기간

- MAX가 30이면 해당 암호를 30일 동안만 사용할 수 있다는 것으로, 30일이 지나기 전에 암호를 변경해야함

- 이 기간이 지나면 새로운 암호를 입력하게 됨



6) WARNING

- 암호가 만료되기 전에 경고를 시작하는 날수

- WARNING이 7이면 암호가 만료되기 7일 전부터 로그인할 때 경고 메시지를 나타냄



7) INACTIVE

- 암호가 만료된 후에도 이 항목에 지정된 날수 동안은 로그인이 가능하도록 함

- INACTIVE가 10이면 암호가 만료된 이후에도 10일 동안은 로그인이 가능하며, 사용자는 이 기간동안 암호를 변경해야함



8) EXPIRE

- 사용자 계정이 만료되는 날

- 이 날짜가 지나면 해당 계정으로 로그인할 수 없음

- 이 항목은 최종 변경일처럼 1970년 1월 1일을 기준으로 한 날수로 표시



9) Flag

- 향후 사용할 목적으로 비워둔 항목


/etc/shadow 파일의 예

- 이 파일은 root 권한으로 확인 가능

====================================================================

sjw@sjw-HP-Mini-110-3500:~$ sudo cat /etc/shadow
[sudo] password for sjw:
root:!:16496:0:99999:7:::
daemon:*:16273:0:99999:7:::
bin:*:16273:0:99999:7:::
sys:*:16273:0:99999:7:::
sync:*:16273:0:99999:7:::

...

...

...

colord:*:16273:0:99999:7:::
hplip:*:16273:0:99999:7:::
pulse:*:16273:0:99999:7:::
sjw:$6$Na.60bmv$vdvc9GzD1yJHgEZlr/LhvvksEtxhRaYtb6ydAt9RnHL5NiwsFlYcULZGXQVFVZ8I3V1YclEN1A/GVYvVjP0Rj/:16496:0:99999:7:::
sjw@sjw-HP-Mini-110-3500:~$

====================================================================


- sjw 계정만 암호가 설정

- root 계정은 *  로 암호가 설정

- 암호가 ! 로 시작하는 것은 잠겨 있음을 뜻함

- sjw 계정의 패스워드 에이징 정보를 확인 해 보면,

  MIN이 0, MAX가 99999, WARNING이 7로 설정

- 이는 '/etc/login.defs' 파일에 설정되어 있는 기본 값을 적용한 것




/etc/login.defs 파일

- /etc/login.defs 파일은 사용자 계정의 설정과 관련된 기본 값을 정의한 파일

====================================================================

sjw@sjw-HP-Mini-110-3500:~$ cat /etc/login.defs
#
# /etc/login.defs - Configuration control definitions for the login package.
#
# Three items must be defined:  MAIL_DIR, ENV_SUPATH, and ENV_PATH.
# If unspecified, some arbitrary (and possibly incorrect) value will
# be assumed.  All other items are optional - if not specified then
# the described action or option will be inhibited.
#
# Comment lines (lines beginning with "#") and blank lines are ignored.
#
# Modified for Linux.  --marekm

# REQUIRED for useradd/userdel/usermod
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define MAIL_DIR and MAIL_FILE,
#   MAIL_DIR takes precedence.
#
#   Essentially:
#      - MAIL_DIR defines the location of users mail spool files
#        (for mbox use) by appending the username to MAIL_DIR as defined
#        below.
#      - MAIL_FILE defines the location of the users mail spool files as the
#        fully-qualified filename obtained by prepending the user home
#        directory before $MAIL_FILE
#
# NOTE: This is no more used for setting up users MAIL environment variable
#       which is, starting from shadow 4.0.12-1 in Debian, entirely the
#       job of the pam_mail PAM modules
#       See default PAM configuration files provided for
#       login, su, etc.
#
# This is a temporary situation: setting these variables will soon
# move to /etc/default/useradd and the variables will then be
# no more supported
MAIL_DIR        /var/mail
#MAIL_FILE      .mail

#
# Enable logging and display of /var/log/faillog login failure info.
# This option conflicts with the pam_tally PAM module.
#
FAILLOG_ENAB        yes

#
# Enable display of unknown usernames when login failures are recorded.
#
# WARNING: Unknown usernames may become world readable.
# See #290803 and #298773 for details about how this could become a security
# concern
LOG_UNKFAIL_ENAB    no

#
# Enable logging of successful logins
#
LOG_OK_LOGINS        no

#
# Enable "syslog" logging of su activity - in addition to sulog file logging.
# SYSLOG_SG_ENAB does the same for newgrp and sg.
#
SYSLOG_SU_ENAB        yes
SYSLOG_SG_ENAB        yes

#
# If defined, all su activity is logged to this file.
#
#SULOG_FILE    /var/log/sulog

#
# If defined, file which maps tty line to TERM environment parameter.
# Each line of the file is in a format something like "vt100  tty01".
#
#TTYTYPE_FILE    /etc/ttytype

#
# If defined, login failures will be logged here in a utmp format
# last, when invoked as lastb, will read /var/log/btmp, so...
#
FTMP_FILE    /var/log/btmp

#
# If defined, the command name to display when running "su -".  For
# example, if this is defined as "su" then a "ps" will display the
# command is "-su".  If not defined, then "ps" would display the
# name of the shell actually being run, e.g. something like "-sh".
#
SU_NAME        su

#
# If defined, file which inhibits all the usual chatter during the login
# sequence.  If a full pathname, then hushed mode will be enabled if the
# user's name or shell are found in the file.  If not a full pathname, then
# hushed mode will be enabled if the file exists in the user's home directory.
#
HUSHLOGIN_FILE    .hushlogin
#HUSHLOGIN_FILE    /etc/hushlogins

#
# *REQUIRED*  The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
ENV_SUPATH    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH    PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

#
# Terminal permissions
#
#    TTYGROUP    Login tty will be assigned this group ownership.
#    TTYPERM        Login tty will be set to this permission.
#
# If you have a "write" program which is "setgid" to a special group
# which owns the terminals, define TTYGROUP to the group number and
# TTYPERM to 0620.  Otherwise leave TTYGROUP commented out and assign
# TTYPERM to either 622 or 600.
#
# In Debian /usr/bin/bsd-write or similar programs are setgid tty
# However, the default and recommended value for TTYPERM is still 0600
# to not allow anyone to write to anyone else console or terminal

# Users can still allow other people to write them by issuing
# the "mesg y" command.

TTYGROUP    tty
TTYPERM        0600

#
# Login configuration initializations:
#
#    ERASECHAR    Terminal ERASE character ('\010' = backspace).
#    KILLCHAR    Terminal KILL character ('\025' = CTRL/U).
#    UMASK        Default "umask" value.
#
# The ERASECHAR and KILLCHAR are used only on System V machines.
#
# UMASK is the default umask value for pam_umask and is used by
# useradd and newusers to set the mode of the new home directories.
# 022 is the "historical" value in Debian for UMASK
# 027, or even 077, could be considered better for privacy
# There is no One True Answer here : each sysadmin must make up his/her
# mind.
#
# If USERGROUPS_ENAB is set to "yes", that will modify this UMASK default value
# for private user groups, i. e. the uid is the same as gid, and username is
# the same as the primary group name: for these, the user permissions will be
# used as group permissions, e. g. 022 will become 002.
#
# Prefix these values with "0" to get octal, "0x" to get hexadecimal.
#
ERASECHAR    0177
KILLCHAR    025
UMASK        022

#
# 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_WARN_AGE    Number of days warning given before a password expires.
#
PASS_MAX_DAYS    99999
PASS_MIN_DAYS    0
PASS_WARN_AGE    7

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

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

#
# Max number of login retries if password is bad. This will most likely be
# overriden by PAM, since the default pam_unix module has it's own built
# in of 3 retries. However, this is a safe fallback in case you are using
# an authentication module that does not enforce PAM_MAXTRIES.
#
LOGIN_RETRIES        5

#
# Max time in seconds for login
#
LOGIN_TIMEOUT        60

#
# Which fields may be changed by regular users using chfn - use
# any combination of letters "frwh" (full name, room number, work
# phone, home phone).  If not defined, no changes are allowed.
# For backward compatibility, "yes" = "rwh" and "no" = "frwh".
#
CHFN_RESTRICT        rwh

#
# Should login be allowed if we can't cd to the home directory?
# Default in no.
#
DEFAULT_HOME    yes

#
# 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

#
# Enable setting of the umask group bits to be the same as owner bits
# (examples: 022 -> 002, 077 -> 007) for non-root users, if the uid is
# the same as gid, and username is the same as the primary group name.
#
# If set to yes, userdel will remove the user´s group if it contains no
# more members, and useradd will create by default a group with the name
# of the user.
#
USERGROUPS_ENAB yes

#
# Instead of the real user shell, the program specified by this parameter
# will be launched, although its visible name (argv[0]) will be the shell's.
# The program may do whatever it wants (logging, additional authentification,
# banner, ...) before running the actual shell.
#
# FAKE_SHELL /bin/fakeshell

#
# If defined, either full pathname of a file containing device names or
# a ":" delimited list of device names.  Root logins will be allowed only
# upon these devices.
#
# This variable is used by login and su.
#
#CONSOLE    /etc/consoles
#CONSOLE    console:tty01:tty02:tty03:tty04

#
# List of groups to add to the user's supplementary group set
# when logging in on the console (as determined by the CONSOLE
# setting).  Default is none.
#
# Use with caution - it is possible for users to gain permanent
# access to these groups, even when not logged in on the console.
# How to do it is left as an exercise for the reader...
#
# This variable is used by login and su.
#
#CONSOLE_GROUPS        floppy:audio:cdrom

#
# If set to "yes", new passwords will be encrypted using the MD5-based
# algorithm compatible with the one used by recent releases of FreeBSD.
# It supports passwords of unlimited length and longer salt strings.
# Set to "no" if you need to copy encrypted passwords to other systems
# which don't understand the new algorithm.  Default is "no".
#
# This variable is deprecated. You should use ENCRYPT_METHOD.
#
#MD5_CRYPT_ENAB    no

#
# If set to MD5 , MD5-based algorithm will be used for encrypting password
# If set to SHA256, SHA256-based algorithm will be used for encrypting password
# If set to SHA512, SHA512-based algorithm will be used for encrypting password
# If set to DES, DES-based algorithm will be used for encrypting password (default)
# Overrides the MD5_CRYPT_ENAB option
#
# Note: It is recommended to use a value consistent with
# the PAM modules configuration.
#
ENCRYPT_METHOD SHA512

#
# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512.
#
# Define the number of SHA rounds.
# With a lot of rounds, it is more difficult to brute forcing the password.
# But note also that it more CPU resources will be needed to authenticate
# users.
#
# If not specified, the libc will choose the default number of rounds (5000).
# The values must be inside the 1000-999999999 range.
# If only one of the MIN or MAX values is set, then this value will be used.
# If MIN > MAX, the highest value will be used.
#
# SHA_CRYPT_MIN_ROUNDS 5000
# SHA_CRYPT_MAX_ROUNDS 5000

################# OBSOLETED BY PAM ##############
#                        #
# These options are now handled by PAM. Please    #
# edit the appropriate file in /etc/pam.d/ to    #
# enable the equivelants of them.
#
###############

#MOTD_FILE
#DIALUPS_CHECK_ENAB
#LASTLOG_ENAB
#MAIL_CHECK_ENAB
#OBSCURE_CHECKS_ENAB
#PORTTIME_CHECKS_ENAB
#SU_WHEEL_ONLY
#CRACKLIB_DICTPATH
#PASS_CHANGE_TRIES
#PASS_ALWAYS_WARN
#ENVIRON_FILE
#NOLOGINS_FILE
#ISSUE_FILE
#PASS_MIN_LEN
#PASS_MAX_LEN
#ULIMIT
#ENV_HZ
#CHFN_AUTH
#CHSH_AUTH
#FAIL_DELAY

################# OBSOLETED #######################
#                          #
# These options are no more handled by shadow.    #
#                                                 #
# Shadow utilities will display a warning if they #
# still appear.                                   #
#                                                 #
###################################################

# CLOSE_SESSIONS
# LOGIN_STRING
# NO_PASSWORD_CONSOLE
# QMAIL_DIR



sjw@sjw-HP-Mini-110-3500:~$

====================================================================

/etc/login.defs 파일의 내용

항목

기본 값

의미

MAIL_DIR

/var/spool/mail

기본 메일 디렉터리

PASS_MAX_DAYS

99999

패스워드 에이징

PASS_MIN_DAYS

0

PASS_WARN_AGE

7

UID_MIN, UID_MAX

1000~60000

사용자 계정의 UID 범위

SYS_UID_MIN, SYS_UID_MAX

100~999

시스템 계정의 UID범위

GID_MIN, GID_MAX

1000~60000

사용자 계정의 GID 범위

SYS_GID_MIN, SYS_GID_MAX

100~999

시스템 계정의 GID 범위

UMASK

022

umask 값 설정

USERGROUPS_ENAB

yes

사용자 계정 삭제시 그룹 삭제 여부

ENCRYPT_METHOD

SHA512

암호화 기법




/etc/group 파일

- /etc/group 파일은 그룹에 관한 정보가 저장된 파일

- 리눅스에서 사용자는 기본적으로 하나 이상의 그룹에 속해 있음

- 사용자가 속한 그룹 중 '/etc/passwd' 파일의 GID 항목에 지정된 그룹이 기본 그룹

- 사용자가 속한 2차 그룹은 '/etc/group' 파일에 지정


/etc/group 파일의 구조

- 네 항목으로 구성

/etc/group vkd리의 정보 구성

그룹 이름 :

x :

GID :

그룹 멤버

1

2

3

4

 

1) 그룹이름

- 그룹의 이름



2) x

- 그룹의 암호를 저장하는 곳

- 예전 유닉스에서는 비어 있거나 * 표시가 되어 있었음

- 리눅스에서는 여기에 암호화된 그룹 암호를 저장하거나

  '/etc/gshadow' 파일에 그룹 암호를 저장

- 그룹 암호는 'newgrp' 명령을 사용하여 자신이 속하지 않는 그룹으로 전환할 때 필요



3) GID

- 그룹을 식별하는 번호

- 1000~60000 번은 사용자 정의 그룹의 GID 로 사용



4) 그룹 멤버

- 그룹에 속한 멤버들의 사용자 계정 이름

- 쉽표(,)로 사용자를 구분


/etc/group 파일의 예

- 리눅스의 경우, 사용자 계정을 생성할 때 

  특별히 지정하지 않으면 사용자 이름과 같은 이름으로 그룹을 생성

====================================================================

sjw@sjw-HP-Mini-110-3500:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,sjw
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:sjw
floppy:x:25:
tape:x:26:
sudo:x:27:sjw
audio:x:29:pulse
dip:x:30:sjw
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:sjw
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
libuuid:x:101:
netdev:x:102:
crontab:x:103:
syslog:x:104:
fuse:x:105:
messagebus:x:106:
ssl-cert:x:107:
lpadmin:x:108:sjw
scanner:x:109:saned
mlocate:x:110:
ssh:x:111:
utempter:x:112:
avahi-autoipd:x:113:
rtkit:x:114:
saned:x:115:
whoopsie:x:116:
avahi:x:117:
lightdm:x:118:
nopasswdlogin:x:119:
bluetooth:x:120:
colord:x:121:
pulse:x:122:
pulse-access:x:123:
sjw:x:1000:
sambashare:x:124:sjw
sjw@sjw-HP-Mini-110-3500:~$

====================================================================




/etc/gshadow 파일

- /etc/gshadow  파일은 그룹 암호가 저장된 파일

- 원래 유닉스에서는 없던 파일로 리눅스에서 별로도 만든 파일

- 유닉스에서는 그룹에 암호가 필요할 경우 /etc/group 파일의 그룹 암호 자리에 암호화된 그룹 암호를 설정

- 리군스셍서는 /etc/shadow 파일과 비슷하게 /etc/gshadow 파일을 만든 것


/etc/gshadow 파일의 구조

- 네 항목으로 구성

/etc/gshadow 파일의 정보 구성

그룹 이름 :

그룹 압호 :

관리자 :

그룹 멤버

1

2

3

4

 

1) 그룹이름

- 그룹의 이름



2) 그룹 안호

- 암호화된 그룹의 암호



3) 관리자

- 그룹의 암호나 멤버를 바꿀 수 있는 사용자 계정으로 여러 개일 경우 쉽표(,)로 구분



4) 그룹 멤버

- 그룹에 속한 멤버들의 사용자 계정 이름이며, 쉼표(,)로 사용자를 구분


/etc/gshadow 파일의 예

====================================================================

sjw@sjw-HP-Mini-110-3500:~$ sudo cat /etc/gshadow
[sudo] password for sjw:
root:*::
daemon:*::
bin:*::
sys:*::
adm:*::syslog,sjw
tty:*::
disk:*::
lp:*::
mail:*::
news:*::
uucp:*::
man:*::
proxy:*::
kmem:*::
dialout:*::
fax:*::
voice:*::
cdrom:*::sjw
floppy:*::
tape:*::
sudo:*::sjw
audio:*::pulse
dip:*::sjw
www-data:*::
backup:*::
operator:*::
list:*::
irc:*::
src:*::
gnats:*::
shadow:*::
utmp:*::
video:*::
sasl:*::
plugdev:*::sjw
staff:*::
games:*::
users:*::
nogroup:*::
libuuid:!::
netdev:!::
crontab:!::
syslog:!::
fuse:!::
messagebus:!::
ssl-cert:!::
lpadmin:!::sjw
scanner:!::saned
mlocate:!::
ssh:!::
utempter:!::
avahi-autoipd:!::
rtkit:!::
saned:!::
whoopsie:!::
avahi:!::
lightdm:!::
nopasswdlogin:!::
bluetooth:!::
colord:!::
pulse:!::
pulse-access:!::
sjw:!::
sambashare:!::sjw
sjw@sjw-HP-Mini-110-3500:~$

====================================================================




반응형