/etc/skel

/etc/skel 디렉터리는 뼈대라는 의미로 사용자에 대한 기본적인 초기화 파일들을 저장하고 있는 디렉터리입니다.

사용자를 생성할 때 /etc/skel 디렉터리 내의 모든 파일들이 해당 사용자의 홈 디렉터리로 복사됩니다.

 

[root@localhost ~]# ls -al /etc/skel
total 24
drwxr-xr-x.   3 root root   78 May  3 10:41 .
drwxr-xr-x. 140 root root 8192 May 11 17:21 ..
-rw-r--r--.   1 root root   18 Apr  1  2020 .bash_logout
-rw-r--r--.   1 root root  193 Apr  1  2020 .bash_profile
-rw-r--r--.   1 root root  231 Apr  1  2020 .bashrc
drwxr-xr-x.   4 root root   39 Apr 30 14:19 .mozilla


[root@localhost ~]# ls -al /home/user02
total 12
drwx------. 3 user02 user02  78 May 11 17:26 .
drwxr-xr-x. 5 root   root    45 May 11 17:26 ..
-rw-r--r--. 1 user02 user02  18 Apr  1  2020 .bash_logout
-rw-r--r--. 1 user02 user02 193 Apr  1  2020 .bash_profile
-rw-r--r--. 1 user02 user02 231 Apr  1  2020 .bashrc
drwxr-xr-x. 4 user02 user02  39 Apr 30 14:19 .mozilla

다음과 같이 /etc/skel 디렉터리의 파일 목록과 user02 사용자의 홈 디렉토리의 파일 목록이 일치하는 것을 확인할 수 있습니다.

 

 

/etc/login.defs

 

/etc/login.defs 파일은 사용자나 그룹을 생성할 때 참고하는 기본 값들이 저장되어 있습니다.

 

1. 사용자 메일 박스의 위치 설정

2. 패스워드 에이징 설정

3. 사용자 생성 시 부여되는 UID 값 설정

4. 그룹 생성 시 부여되는 GID값 설정

5. 사용자 생성 시 홈 디렉터리 생성 여부 설정

6. 홈 디렉토리 생성에 관계된 umask 값 설정

7. 사용자 생성 시 UPG 스키마 사용 여부

8. 패스워드 설정 시 해시 알고리즘 설정

 

 

/etc/sudoers

 

sudo 명령을 사용하기 위한 조건은 visudo 명령을 사용하거나 또는 편집기로 /etc/sudoers 파일에 직접 접근하여 사용자를 등록하는 것입니다.

(물론 직접 수정하지 않고 sudo 명령을 사용할 수 있는 자격을 부여하는데, 이는 wheel 그룹의 구성원일 경우입니다. )

사용자 생성 명령어

 useradd [option] user-name

[root@localhost ~]# useradd user01

 

사용자 생성 시 기본 값을 변경하려면 기본 설정을 의미하는 '-D' 옵션과 함께 별도의 옵션을 다시 사용해야 합니다.

 

useradd -D [option] [argument]

 

 

옵션

-b 디렉터리 : 사용자 생성 시 기본 홈 디렉터리를 설정합니다.

-e 만기일 : 사용자 생성 시 /etc/shadow 파일의 EXPIRE 필드 값을 지정합니다.

-f 기간 : 사용자 생성 시 /etc/shadow 파일의 INACTIVE 필드 값을 지정합니다.

-g GID : 사용자 생성 시 기본 그룹의 GID를 지정합니다.

-s 쉘 : 사용자의 기본 쉘을 지정합니다.

 

[root@localhost home]# mkdir /home/guest
[root@localhost home]# useradd -D -b /home/guest
[root@localhost home]# useradd -D
GROUP=100
HOME=/home/guest
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

 

 

사용자 정보를 수정하기 위해서는 usermod 명령을 사용합니다. 명령의 사용법과 옵션은 useradd와 비슷합니다.

 

usermod [option] user-name

 

옵션

 

-u UID : 사용자의 UID 를 변경합니다

-g GID : 사용자의 기본 그룹을 변경합니다

-G GID : 사용자의 기본 그룹을 변경합니다

-a  : -G 옵션과 같이 사용하며 사용자의 보조 그룹을 추가할 때 사용합니다.

-c 주석 : GECOS, 주석필드에 들어갈 값을 변경합니다.

-d 디렉토리 : 사용자의 홈 디렉터리 변경

-m :  -d 옵션과 같이 사용하며 홈 디렉터리를 이동할 때 사용합니다.

-s 쉘 : 사용자 기본 쉘 변경

-o : 사용자가 UID 를 변경할 때 UID의 중복을 허용

-p 패스워드 : 지정한 사용자의 패스워드 변경 (/etc/passwd의 두 번째 필드 의미 )

-e 만기일 : /etc/shadow 파일에서 지정한 사용자의 EXPIRE 필드 값을 수정합니다.

-f 기간 : /etc/shadow 파일에서 지정한 사용자의 INACTIVE 필드 값을 수정합니다.

-L : 지정한 사용자를 잠금 상태로 변경합니다

-U : 지정한 사용자의 잠금 상태를 해제 합니다.

 

예시

[root@localhost ~]# id user01
uid=1001(user01) gid=1001(user01) groups=1001(user01)
[root@localhost ~]# usermod -G wheel user01
[root@localhost ~]# id user01
uid=1001(user01) gid=1001(user01) groups=1001(user01),10(wheel)


[root@localhost ~]# groupadd group01
[root@localhost ~]# usermod -G group01 user01
[root@localhost ~]# id user01
uid=1001(user01) gid=1001(user01) groups=1001(user01),1002(group01)
[root@localhost ~]# usermod -aG wheel user01
[root@localhost ~]# id user01
uid=1001(user01) gid=1001(user01) groups=1001(user01),10(wheel),1002(group01)

 그룹 wheel을  user01의 보조 그룹으로 지정후, group 01그룹을 보조 그룹으로 추가하려 했지만 -G옵션만 사용했기 때문에 지정한 보조 그룹으로만 변경됩니다.

 

wheel까지 모두 추가하려면 '-a' 옵션을 추가하여야 합니다.

 

 

사용자의 정보를 삭제하기 위해서는 userdel 명령을 사용합니다

 

userdel [option] user-name

 

사용자를 삭제할 때에는 '-r' 옵션을 함께 사용하는 것을 권장합니다. 그렇지 않으면 사용자의 홈 디렉토리가 남게되고 남아있는 홈 디렉토리와 파일은 삭제된 사용자와 같은 UID로 새로 생성된 사용자가 소유할수 있어 보안상 문제가 발생 할수 있습니다.

 

그룹을 생성하기 위해서는 groupadd 명령어를 사용합니다.

 

groupadd [option] group-name

 

옵션

 

-g :  그룹 생성 시 그룹의 GID를 지정합니다

-o : 그룹 생성 시 지정한 GID가 이미 사용중 일 때 중복을 허용합니다.

-r : 그룹 생성 시 시스템 그룹으로 생성합니다.

 

[root@localhost ~]# groupadd -g 2000 group01
[root@localhost ~]# grep "group01" /etc/group
group01:x:2000:
[root@localhost ~]# groupadd -r group02
[root@localhost ~]# grep "group02" /etc/group
group02:x:981:

 

그룹 정보 수정을 위해선 groupmod 명령어를 사용합니다

 

groupmod [option] group-name

 

옵션

 

-g : 지정된 그룹의 GID를 변경합니다

-n : 지정된 그룹의 그룹명을 변경합니다

-o : 지정된 그룹의 GID를 변경할 때 GID의 중복을 허용합니다

-p : 지정된 그룹의 패스워드를 변경합니다

 

[root@localhost ~]# grep "group01" /etc/group
group01:x:2000:
[root@localhost ~]# groupmod -g 3000 group01
[root@localhost ~]# grep "group01" /etc/group
group01:x:3000:
[root@localhost ~]# groupmod -n group03 group01
[root@localhost ~]# grep "group03" /etc/group
group03:x:3000:

그룹 삭제를 위해선 groupdel 명령을 사용합니다.

 

groupdel group-name

 

 

/etc/passwd : 시스템에 등록된 사용자 정보

/etc/shadow: 시스템에 등록된 사용자의 패스워드와 패스워드에 대한 설정

/etc/group : 시스템에 등록된 그룹 정보

/etc/gshadow : 시스템에 등록된 그룹의 패스워드와 패스워드에 대한 설정

 

 

/etc/passwd 기본 구조

USER : x : UID : GID : GECOS:HOME:SHELL

 

 

1. USER : 사용자의 이름을 나타내며, 사용자의 이름은 시스템에서 유일해야 하며 사용자로 로그인할 때 사용

 

2. x(place holder) : 사용자의 패스워드를 저장하는 필드 (패스워드에 대한 정보는 /etc/shadow 파일에 해시 형태로 저장되어 있습니다.)

 

3. UID : 시스템에서 사용자를 식별하는 번호, 0은 root , 10000번 미만은 시스템 사용자 계정으로 예약되어 있으며, 일반 사용자는 그 이후로 배정됩니다.

 

4. GID: 시스템에서 그룹을 식별하는 번호 . UID와 같이 0은 root , 10000번 미만은 시스템 사용자 계정으로 예약되어 있으며, 일반 그룹은 그 이후로 배정됩니다.

 

5. GECOS : General Electric Comprehensive Operating라는 형식의 주석 필드 (사용자 계정 주석 기재)

 

6. HOME:사용자의 홈 디렉토리를 절대 경로로 나타냅니다.

 

7. SHELL: 사용자가 기본으로 사용할 쉘을 나타냅니다.

 

/etc/shadow 기본 구조

USER : HASH : LASTCHANGE :  MIN : MAX : WARNING : INACTIVE : EXPIRE : BLANK

 

1. USER : 사용자의 이름

 

2. HASH : 해시 알고리즘을 사용하여 생성된 패스워드가 저장되며 $로 구분하면 다시 3개로 나뉩니다. 1번째는 해시 알고리즘의 유형 2번째는 해시 알고리즘과 함께 사용할 SALT 3번째 필드는 해시 패스워드가 저장됩니다.

 

3. LASTCHANGE : 마지막으로 패스워드를 변경한 날짜를 의미합니다.

 

4. MIN : 패스워드 변경 후 최소 사용기간 의미

 

5. MAX : 패스워드 변경 후 최대 사용 기간을 의미합니다. 해당 기간이 지나기 전에 패스워드를 갱신하여야만 합니다.

 

6. WARNING : 만료일이 되기 전 사용자에게 경고메시지를 출력할지 설정합니다.

 

7. INACTIVE : 패스워드가 만료되고 INACTIVE에 지정된 숫자 안에 패스워드를 변경하지 않으면 사용자 계정이 잠금 상태로 변경됩니다.

 

8. EXPIRE : 사용자 계정의 만료일을 저장합니다.

 

9.BLANK :  예약된 필드로 아직 사용 X

 

 

 

/etc/group 기본 구조

GROUP : x :  GID : MEMBER

 

1. GROUP : 그룹의 이름을 나타냅니다. 시스템내에서 유일해야 합니다.

 

2. x : 그룹의 패스워드를 저장하는 필드였지만 현재는 /etc/gshadow 파일에 저장됩니다.

 

3. GID : 그룹의 GID

 

4. MEMBER :  이 그룹을 보조 그룹으로 지정하고 있는 사용자의 목록입니다.

 

 

/etc/gshadow

GROUP : PASSWORD : ADMIN : MEMBER

 

1. GROUP : 그룹의 이름을 나타냅니다.

 

2. PASSWORD : 그룹의 암호화된 패스워드

 

3. ADMIN : 해당 그룹의 관리자를 나타냅니다

 

4. MEMBER : 해당 그룹의 멤버를 나타냅니다.

 

 

 

+ Recent posts