사용자 & 그룹

2023. 10. 6. 17:20리눅스/CentOS

사용자 & 그룹

 - 사용자 계정이란?
운영체제를 사용하기 위해 로그인하는 계정, 일반적으로 운영체제를 사용하는 이용자마다 각각 서로 다른 사용자 계정을 만들어준다
사용자 계정을 각각 부여하여 특정 작업을 어느 사용자가 했는지 확인이 가능
권한을 부여하기 위해 사용(특정 파일을 a 사용자는 볼 수 있고 b 사용자는 보지 못하게 만드는 등의 작업이 가능)

 - 그룹이란?
사용자 계정을 묶어주는 계정
그룹에 사용자를 소속시켜 놓고, 그룹에 권한을 부여하여 소속된 사용자들에게 동일한 권한을 한 번에 적용
일반 사용자가 제어 X(관리자가 그룹의 생성/수정/삭제, 그룹에 소속된 사용자 목록 변경 등의 작업을 수행)

 

 

사용자

 - 사용자 계정에 관련된 파일
1. /etc/passwd : 사용자의 일반적인 정보들이 저장된 파일

  * 파일 내용 보는 방법
itbank:x:1000:1000:dust:/home/itbank:/bin/bash

itbank : 계정명, 뒤의 정보들이 어느 사용자의 정보인지 표시
x : 암호, 사용자 로그인 시 사용하는 비밀번호 영역
  /etc/passwd 파일에는 보안상의 이유로 암호 표시 X
1000(왼쪽) : UID, 해당 사용자의 고유 번호
1000(오른쪽) : GID, 해당 사용자가 주요 그룹으로 사용 중인 그룹의 고유 번호
dust : 사용자 별칭, GUI 환경에서 표시 용도로 사용, 로그인에 사용 X
/home/itbank : 해당 사용자의 홈 디렉토리 경로와 이름, 무조건 절대경로로 표시
  시스템 내부에서 홈 디렉토리를 찾아갈 때 참고하는 정보
/bin/bash : 사용자의 shell 정보, 무조건 절대경로로 표시

  ** UID, GID
시스템이 사용자와 그룹을 식별하기 위해 사용하는 숫자 값

0 : root
1 ~ 999 : service or system accounts
1000 ~  : 일반 사용자 & 그룹 accounts

  ** shell
kernel에 명령어를 전달해주는 역할, shell마다 사용할 수 없는 명령어가 존재
/etc/shells 파일에서 현재 시스템에 설치된 shell 목록을 확인할 수 있다

2. /etc/shadow : 사용자의 고급 정보가 저장된 파일

  * 파일 내용 보는 방법
itbank:$6$~~$~~~::0:99999:7:::[같은 비밀번호라도 난수처리 때문에 다른게 나옴]

itbank  : 계정명, 뒤의 정보들이 어느 사용자의 정보인지 표시
$6$~~$~~~ : 암호, 해당 사용자의 비밀번호를 암호화하여 저장
19437 : 암호 생성 일자, 1970년 1월 1일을 기준으로 며칠째 되는 날 생성된 암호인지 표시
  운영체제 설치 과정에서 생성된 암호는 생성 일자 표시 X[시간이 없기 때문이다]
0 : 암호 최소 사용 일자
99999 : 암호 최대 사용 일자(암호 만료 일자)
7 : 암호 만료 전 경고 일자

  ** 이후의 정보들은 잘 사용하지 않아 생략

3. /etc/login.defs : 사용자 & 그룹 생성 및 삭제에 관련된 몇몇 정보들이 저장

 - 비밀번호 변경
passwd : 명령어를 입력한 사용자 자신의 암호 변경(모든 사용자)
passwd 사용자명 : 해당 사용자의 암호 변경(관리자 전용)

 - 사용자 생성
useradd [옵션] [값] ... [옵션] [값] 사용자명 : 

* 옵션
   -u : UID 지정
   -g : GID 지정
   -c : 별칭 지정
   -s : shell 지정
   -d : 홈 디렉토리 지정[절대경로!], /etc/login.defs 파일 내부 CREATE_HOME 설정이 없거나 no이면 -m 옵션과 함께 사용
   -m : make directory
   -k : skel로 사용할 디렉토리 지정, 반드시 -m 옵션과 함께 사용
   -D : 사용자 생성 시 적용되는 기본 정보 몇 가지 확인, 이 옵션을 사용하면 사용자 생성 기능은 없어진다
  특정 옵션을 함께 사용하여 기본 생성 정보를 제어할 수 있다
  (ex. -b 옵션으로 홈 디렉토리 생성 위치 변경)
   

* /etc/skel : 사용자 홈 디렉토리의 뼈대가 되는 디렉토리
  사용자 생성 시 함께 만들어지는 홈 디렉토리 내부에는 /etc/skel 내용물들이 복사된다
  운영체제 설치 시 /etc/skel 내부에 만들어지는 파일/디렉토리는 사용자 홈 디렉토리에 무조건 있어야 한다

* /etc/default/useradd
: 사용자 생성 시 사용되는 기본 정보 몇 가지를 저장한 파일(useradd -D 옵션이 출력하는 정보)
  이 파일의 내용을 수정하여 사용자 생성에 적용되는 기본 설정을 바꿔줄 수 있다

 - 사용자 계정 정보 수정
usermod 옵션 값 [옵션] [값] ... [옵션] [값] 사용자명

* 옵션
   옵션은 useradd의 옵션 대다수를 똑같이 사용 가능
   -k 옵션과 -D 옵션은 usermod에서는 사용 X
   -m 옵션은 make directory가 아닌 move directory로 사용

 - 사용자 삭제
userdel [옵션] 사용자명

* 옵션
   -r : 해당 사용자 소유의 파일/디렉토리를 함께 삭제

그룹
 - 사용자를 묶어주는 용도로 사용

 - 그룹에 관련된 파일
/etc/group : 그룹에 대한 일반적인 정보들이 저장된 파일

* 파일 내용 보는 방법
itbank:x:1000:

itbank : 뒤의 정보들이 어느 그룹의 정보인지 표시
x : 암호, 그룹에는 별도의 암호를 지정하지 않는다
1000 : GID, 해당 그룹의 고유 번호
마지막 필드 : 해당 그룹에 일반 소속된 사용자들의 목록
  단, OS 설치 시 생성된 그룹은 함께 생성된 사용자가 해당 목록에 들어가있다

 - 그룹 생성
groupadd [옵션] [값] ... [옵션] [값] 그룹명

* 옵션
   -g : GID 지정

 - 그룹 정보 수정
groupmod 옵션 값 [옵션] [값] ... [옵션] [값] 그룹명

* 옵션
   -g : GID 지정
   -n : 이름 지정

 - 그룹 삭제
groupdel 그룹명

  * 사용자가 자신의 주요 그룹으로 사용 중인 그룹은 삭제 X

사용자 + 그룹
 - 사용자가 그룹에 소속되는 방식을 두 가지로 분류
1. 해당 그룹을 자신의 주요 그룹으로 사용(= GID로 사용)

2. 그룹에 일반 소속되어 사용

  * 사용자는 반드시 하나의 그룹을 주요 그룹으로 사용해야 한다

 - 사용자를 생성하면 기본적으로 같은 이름의 그룹이 함께 생성
> 옵션을 사용하지 않으면 사용자는 해당 그룹을 자신의 주용 그룹으로 사용


 - 사용자가 그룹에 소속되는 방식은 언제든지 변경이 가능
1. 주요 그룹의 변경은 usermod의 -g 옵션을 사용

2. 사용자를 그룹에 일반 소속 시키기 위해
  1) usermod의 -G 옵션을 사용(가급적 사용 X)

  2) gpasswd 명령어 사용

gpasswd
 - 그룹을 기준으로 하여 해당 그룹의 일반 소속된 사용자 목록을 편집

 - 형식
gpasswd 옵션 값 그룹명

* 옵션
-a : 일반 소속된 사용자 목록에 특정 사용자 추가
-d : 일반 소속된 사용자 목록에서 특정 사용자를 제거

id
 - 사용자의 UID와 GID, 소속된 그룹 목록을 출력

 - 형식
id 사용자명

 

 

실습

한 줄에 한 사용자 정보 있음

 

 

암호 바꾸는 명령어, shadow는 같은 비밀번호라도 다름

 

 

사용자 추가 명령어

 

 

별칭지정 및 셀정보 변경

 

 

홈 디렉토리 지정

 

 

skell 사용법

 

 

skel 디렉토리 지정

 

사용자 생성시 디폴트 확인

 

 

홈 디렉토리 바꾸기

 

 

-D 옵션은 이 파일을 출력함

 

 

vi로 /etc/default/useradd 수정

 

 

숨김파일 복사

 

 

디렉토리는 따로 복사

 

 

그냥 복사해도 된다

 

 

쉘 변경 옵션 -s

 

 

홈 디렉토리 변경 시 주의

 

 

-m 옵션을 함께 써서 한번에 이동 가능

 

유저 삭제 시 해당 홈디렉토리는 그대로

 

 

소유파일 지우는 옵션 r

 

 

그룹 관련 파일

 

 

그룹 만들기

 

 

g 옵션으로 GID관리

 

 

기본 생성한 사용자의 GID는 가장 큰 번호의 다음 번호

 

 

GID 바꾸는 g 옵션

 

 

그룹명을 바꾸는 옵션 n

 

 

그룹삭제

 

 

그룹 삭제 안되는 경우

 

 

id 명령어

 

 

GID 변경

 

 

일반소속으로 변경

 

 

덮어쓰므로 G옵션 잘 안씀

 

 

덮어쓰는 것 없이 일반소속 가능

 

 

제거는 -d 옵션

 

 

GID가 사용자명이 아닌 경우 그룹은 삭제가 안된다

 

 

세 정보가 연계됨을 알자

 

 

사용자 디렉토리를 실수로 지웠을 때 초기화하는법

 

 

문제

<skel 실습>
사용자 test를 만들어서 /usertest/test/public/ 경로 확인해보기

조건 1. test는 사용자 test의 홈 디렉토리
조건 2. public은 사용자 생성 시 홈 디렉토리 내부에 자동으로 생성

* 기본 skel을 사용하시거나 skel을 만들어 사용하세요



</etc/default/useradd 실습>
사용자 user7 생성
(단, 옵션은 사용하지 않고 아래의 정보가 적용되도록 설정 후 생성)

shell의 이름 : tcsh

홈 디렉토리 생성 위치 : /test

skel로 사용할 디렉토리 : /skelkg

 * 확인은 useradd -D 결과와 생성된 사용자 홈 디렉토리 내부 목록을 보여주시면 됩니다


<실습>
1. itbank 이후에 만들어진 모든 일반 사용자의 홈 디렉토리를 /export/home/<username> 으로 변경
* 잘 못 만들어서 홈 디렉토리가 없는 경우에는 사용자 정보만 수정

2. 사용자의 shell은 bash shell, 별칭은 전부 없도록 정보 수정(별칭 제거 시 ''사용)

 

 

skel 실습 답안

 

skel 실습  답안

 

 

아래 조건에 맞는 사용자 생성해보기

user : testuser
UID : 1200
GID : tg
shell : csh
home directory 생성 위치 : /hosting
skel : /kgskel
자동생성 디렉토리 : public_html
자동생성 파일 : .kg


조건 1. 모든작업은 기본정보(useradd -D, /etc/default/useradd)를
       수정하지 않고 옵션만 사용

조건 2. 사용자 생성 후 다른 명령어를 사용하여 정보 수정 X
       (usermod 등등)

확인사항 : 사용자 생성에

 사용한 명령어, 사용자 일반 정보, 홈 디렉토리 내부 내용물

 

 

실습 답안[나머지 조건에 맞게 생성]

'리눅스 > CentOS' 카테고리의 다른 글

apache  (0) 2023.10.07
허가권  (0) 2023.10.07
기초 명령어4  (0) 2023.10.06
기초 명령어3  (0) 2023.10.06
기초 명령어2  (0) 2023.10.06