리눅스

group/user

정지홍 2024. 7. 18. 08:01

/etc

→ 시스템의 부팅, 종료 시에 필요한 파일들과 시스템의 전반에 걸친 설정 파일들 및 초기 스크립트 파일들이 존재

 

/etc/passwd

→ 사용자에 대한 정보를 포함하고 있는 문서 파일

 

/etc/skel

→ skeleton을 의미

→ 사용자를 처음 생성할 때 해당 계정의 홈dir에 기본으로 들어가는 파일을 지정한다.

 

 


 

groupadd

→새로운 그룹을 추가하기 위한 명령어

→ 여러 사용자들을 하나의 그룹으로 구분하기 위함

groups
# 현재 사용자의 그룹 확인

groups name
# name사용자의 그룹 확인

cat /etc/group
# 모든 그룹 조회
# 그랩으로 필터링

groupadd 그룹명
# 해당 그룹명으로 그룹을 생성
# 이미 존재시 오류 발생
# 루트권한으로 사용

groupadd -g num name
# num값에 해당하는 GID를 지정할수있다.

# -o 옵션을 주면 중복을 허용한다.

 


groupmod

→ 그룹에 대해서 정보를 변경할 때 사용

groupmod -n  바꿀이름 기존그룹이름
# name option

groupmod -g num 그룹이름
# 그룹gid 변경시 사용

# -o 옵션을 주면 중복을 허용한다.

groupdel

→ 그룹을 삭제


useradd

→ 사용자 계정을 추가하는 명령

useradd -D
# 신규 사용자를 추가할 때 반영되는 기본 사항들을 확인하는 명령어

=================================================
root@dilab-B150M-DS3H:~# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
=================================================


useradd name
# name의 사용자를 추가한다. 
# tail -1 /etc/passwd를 사용하여 확인 가능


=================================================
root@dilab-B150M-DS3H:~# tail -1  /etc/passwd
jeongjihong:x:1002:1003::/home/jeongjihong:/bin/sh
=================================================

위에 표시되는 것들은 각각 콜론(:)으로 구분한다. 
각각의 필드는... 
		사용자명 : 비밀번호 : uid : gid : 사용자 계정 설명 : 홈 디렉터리 : 설정한 셸
        
        
useradd -d PATH name
# PATH에 해당되는 것을 홈 디렉터리로 설정하여 사용자 계정 추가
# 별도로 지정안하면 /etc/default/useradd에 설정의 HOME에 맞게 생성

useradd -d PATH -m name
# m옵션은 지정한 디렉터리를 동시에 생성 

=================================================
root@dilab-B150M-DS3H:~# useradd -d /home/jjh/down jjh
root@dilab-B150M-DS3H:~# tail -1  /etc/passwd
jjh:x:1003:1004::/home/jjh/down:/bin/sh
=================================================


useradd -g num name
# 사용자 생성시 사용자가 소속될 그룹을 지정한다.
# 입력받은 num을 gid로 지정
# 옵션 생략시 아이디와 동일한 그룹에 포함


useradd -u num name
# 사용자 생성시 uid를 지정

useradd -c text name
# 사용자 생성시 text에 해당되는 내용을 사용자 계정 설명에 ㅊ추가함
# 띄어쓰기가 필요하면 ' '로 묶어준다.


=================================================
root@dilab-B150M-DS3H:~# useradd -g 1004 -u 2020 -c '정지홍의 테스트' jeongjihong2
root@dilab-B150M-DS3H:~# tail -1 /etc/passwd
jeongjihong2:x:2020:1004:정지홍의 테스트:/home/jeongjihong2:/bin/sh
=================================================















useradd -e DATE name
# 계정의 만기일을 설정한다.
# 마지막 필드가 만기일이며 1970년1월1일부터 19907일째 되는 날이 2024-07-04이다.

=================================================
root@dilab-B150M-DS3H:~# useradd -e '2024-07-03' jjhjjh
root@dilab-B150M-DS3H:~# cat /etc/passwd | grep jjhjjh
jjhjjh:x:2021:2021::/home/jjhjjh:/bin/sh
root@dilab-B150M-DS3H:~#
root@dilab-B150M-DS3H:~# cat /etc/shadow | grep jjhjjh
jjhjjh:!:19906:0:99999:7::19907:
=================================================




useradd -f DAY
# day일 뒤에 계정의 패스워드를 만기 시킨다.

useradd -s shell
# 사용자의 셸을 지정한다.

usermod

→ 사용자 계정의 정보를 변경하는 명령

usermod -d PATH name
# 사용자의 홈 디렉터리를 변경

==========================================================
root@dilab-B150M-DS3H:~# cat /etc/passwd | grep jeongjihong
jeongjihong2:x:2020:1004:정지홍의 테스트:/home/jeongjihong2:/bin/sh

root@dilab-B150M-DS3H:~# usermod -d /home/jjh  jeongjihong2

root@dilab-B150M-DS3H:~# cat /etc/passwd | grep jeongjihong
jeongjihong2:x:2020:1004:정지홍의 테스트:/home/jjh:/bin/sh
==========================================================

 

usermod -m -d  PATH name
# 사용자의 홈 디렉터리를 변경시 사용하던 홈 디렉터리의 dir,file도 같이 옮김

==========================================================
root@dilab-B150M-DS3H:~# usermod -m -d  /home/jjjh  jeongjihong2

root@dilab-B150M-DS3H:~# cat /etc/passwd | grep jeongjihong
jeongjihong2:x:2020:1004:정지홍의 테스트:/home/jjjh:/bin/sh
==========================================================

 

usermod -g gid name
# 사용자의 그룹을 변경

==========================================================
root@dilab-B150M-DS3H:~# usermod -g 1003 jeongjihong2

root@dilab-B150M-DS3H:~# cat /etc/passwd | grep jeongjihong
jeongjihong2:x:2020:1003:정지홍의 테스트:/home/jjjh:/bin/sh
==========================================================

 

usermod -s name 
# 사용자의 셀을 변경

usermod -u name 
# 사용자의 uid를 변경

usermod -e name 
# 사용자의 계정 만기일 변경

usermod -c name
# 사용자의 설명 변경
	
==========================================================
root@dilab-B150M-DS3H:~# usermod -c 'hihihihihi' jeongjihong2
root@dilab-B150M-DS3H:~# cat /etc/passwd | grep jeongjihong

jeongjihong2:x:2020:1003:hihihihihi:/home/jjjh:/bin/sh
==========================================================

 


 

userdel

→ 사용자 계정을 삭제

 

userdel name
# 홈 디렉터리 및 임시 파일은 남기고 계정 삭제

userdel -r name
# 계정의 모든 것들을 삭제

/etc/sudoers

→ 사용자에게 sudo권한과 root권한을 부여하기 위해서는 해당 파일을 수정해야 함

→ 수정을 한다면 visudo를 통해서 수정.

 

student1 ALL=(ALL:ALL) ALL
# student1은 사용자 이름을 의미
# ALL은 모든 호스트
# (ALL:ALL)은 모든 사용자 및 그룹으로 실행 가능
# ALL은 모든 명령을 실행 가능을 의미
# 즉, student1에게 모든 호스트에서 모든 사용자 및 그릅으로 모든 명령을 실행할수있게 함

jeong ALL=(ALL) ALL
# jeong은 사용자 이름을 의미
# ALL은 모든 호스트
# (ALL)은 모든 사용자로 실행 가능
# ALL은 모든 명령을 실행 가능을 의미 
 
jeong ALL=(ALL) /usr/bin/apt-get
# jeong은 사용자 이름을 의미
# ALL은 모든 호스트
# (ALL)은 모든 사용자로 실행 가능
# /usr/bin/apt-get 명령만 루트 권한으로 실행할 수 있음


%admin ALL=(ALL) ALL
# %admin은 그룹 이름을 의미(admin이라는 그룹)
# ALL은 모든 호스트
# (ALL)은 모든 사용자로 실행 가능
# ALL은 모든 명령을 실행 가능을 의미 

%admin ALL=(ALL) /usr/bin/apt-get
# %admin은 그룹 이름을 의미(admin이라는 그룹)
# ALL은 모든 호스트
# (ALL)은 모든 사용자로 실행 가능
# /usr/bin/apt-get 명령만 루트 권한으로 실행할 수 있음