01 linux system Users and accounts

Sisyphus·2022년 7월 16일

Ubuntu

목록 보기
2/9
echo hello world  
⇾ hello world 출력  


exit, Ctrl + D  
⇾ shell 종료 명령어  


gnome-session-quit  
⇾ 로그아웃 명령어  


shutdown -h now  
⇾ 시스템 종료 명령어  


cat /etc/passwd  
⇾ user 정보를 보여줌  


*User Information*

account:password:UID:GID:GECOS:home directory:longin shell  
Ex) eunchong:x:1000:1000:KIMEUNCHONG,,,:/home/eunchong:/bin/bash  

account : username  
password : 암호화된 암호 (암호가 설정 되어 있으면 x, 설정 되어 있지 않으면 !)  
UID : user ID, Login name  
GID : group ID  
GECOS : full user name  
home directory : 현재 계정의 절대 경로  
login shell : 해당 계정의 기본 쉘 (리눅스 기본 shell은 /bin/bash 임)  


sudo cat /etc/shadow  
⇾ passwd 보기  


*Password Information*

Account : Password : Last changed : MIN : MAX : WARNING : INACTIVE : EXPIRE : R  
Ex) peterpan:$1$4cxEeSCx$JeWhRsuySxowaR8mf5sKT0:16205:

0:99999:7:::  
Account : Login name  
Password : 암호화된 암호  
Last changed : 최근에 암호가 변경된 날짜(일 단위)  
MIN : 최소 암호 사용기간 (empty or 0 ⇾ 최소 암호 사용기간 없음) ⇾ 최소 암호 사용기간이 지나기 전에는 암호 변경 불가  
MAX : 최대 암호 사용기간 ⇾ 최대 암호 사용기간이 지나면 암호를 변경해야 함  
WARING : 경고 기간, 아직까지 암호 사용 가능 (7 days later ⇾ INACTIVE)  
INACTIVE : 암호 비활성화 기간, 아직까지 암호 사용 가능 (3 days later ⇾ EXPIRE)  
EXPIRE : 암호 사용 불가, 로그인 할 수 없음  


*UID*

사용자 ⇾ useraccount를 통제 접근 통제됨 (서로 다른 권한을 가짐)  
컴퓨터 ⇾ 숫자 지향적인 기계 ⇾ 다른 유저가 같은 UID 사용 ⇾ 컴퓨터는 같은 유저로 인식함  
보통 0~999  
0 : root  
1 : daemon  
100 : nobody


cat /etc/group  
⇾ 그룹 보기  


*GID*

그룹 : 요구사항이 다른 사람들의 집합에 대해 보안을 관리할 수 있게 해줌 ⇾ 각 그룹에 맞는 권한 부여  
users 들은 목적에 따라 grouping 되어지고 각 그룹에 부여된 권한을 사용  
default group ⇾ passwd file에 저장됨 ⇾ cat /etc/passwd command를 통해 볼 수 있음 / 한 그룹만 저장 가능  
other group ⇾ etc/group file에 저장됨 ⇾ cat /etc/group file command를 통해 볼 수 있음 / 여러 그룹 저장 가능  
Group name: x : GID : Group member  

ex)  
dsm:x:1001:kbkim,mglee,yez  
kbkim:x:1000:  
Group name : 그룹 이름  
x : 패스워드 (볼 수 없음 ⇾ 볼려면 sudo /etc/gshadow command 사용)  
GID : group ID  
Group member : 그룹 멤버 O ⇾ other group, 그룹 멤버 X ⇾ default group  

cf)  
group을 보는 commandcat /etc/group  
user를 보는 commandcat /etc/passwd  
passwd를 보는 commandsudo cat /etc/shadow (passwd는 암호화 되어 있음)


*su command*

commandfuction
su usernameuser를 바꿈 (디렉터리는 바뀌지 않음 -> 명령어 사용전 디렉터리)
su - usernameuser를 바꿈 (디렉터리 위치가 해당 유저의 홈디렉터리로 변경 됨)
su -, su rootuser를 root로 바꿈


whoami  
⇾ 현재 유저를 보여줌  


last  
⇾ 로그인 기록을 보여줌  


sudo 프로그램 명

⇾ 해당 프로그램에 root 권한 부여, sudo group안에 있는 user만이 sudo command 사용 가능
(sudo 명령어 사용시 자신의 패스워드를 입력하여 사용)



*sudoers*

sudo command를 사용할 수 있는 users들 ⇾ sudo group안에 있는 users들  
sudo cat /etc/sudoers 를 통해 sudoers 목록 보기 가능  
(sudo gpasswd -a username sudo를 통해 생성 가능)  
(sudo gpasswd -d username sudo를 통해 제거 가능)  


유저 관련 명령어

adduser ⇾ 패스워드를 user 생성시 설정 하게 됨  
useradd ⇾ 패스워드를 자동적으로 설정해주지 않음 ⇾ sudo passwd username command를 통해 따로 설정해줘야 함


*useradd command*

optionfunction
-u사용자 계정의 UID 지정       Ex) -u 1500
-mhome directory       Ex) -m
-gdefault group       Ex) -g neverland
-Gother group ⇾ supplementary group       Ex) -G team
-p기본 password를 설정할 수 있음 (권장 되지 않음, 유출 가능성이 있음)
-dhome directory를 설정할 수 있음       Ex) -d /home/test
-sshell       Ex) -s /bin/bash
-o다수의 유저가 한 UID를 사용할 수 있음       Ex) -s 1500
Ex)sudo useradd -g team1 -G team2 -m -s /bin/bash t1 ⇾ default group으로 team1 other group으로 team2 shell은 /bin/bash로 user t1추가

ls -a /etc/skel  
⇾ default 파일들을 포함하고 있음  


*usermod command*

optionfunction
-g groupname usernameuser의 default group을 해당 group으로 변경 (기존 default group들은 삭제 됨) Ex) usermod -g neverland peterpan
-G groupname usernameuser의 other group을 해당 group으로 변경 (기존 other group들은 삭제 됨) Ex) usermod -G neverland peterpan
-aG groupname usernameuser의 other group에 해당 group을 추가 Ex) usermod -aG neverland peterpan
-l newname currentname현재 이름을 새로운 이름으로 변경 Ex) usermod -l hook peterpan
-s /bin/bash username해당 user의 shell을 /bin/bash로 변경 Ex) usermod -s /bin/bash hook

sudo chfn username  
⇾ 해당 유저의 full name을 변경 (GECOS 영역이 변경 됨)


*userdel command*

optionfunction
username해당 user를 삭제 Ex) userdel peterpan
-r username해당 user와 홈디렉토리의 삭제 Ex) userdel -r peterpan
-f username강제로 해당 user 삭제 Ex) userdel -f peterpan


패스워드 관련 명령어

*passwd command*

optionfunction
-n최소 패스워드 사용기간 설정 Ex) passwd -n
-x최대 패스워드 사용기간 설정 Ex) passwd -x
-w패스워드 waring 기간 설정 Ex) passwd -w
-i days패스워드 inactive period를 days로 변경 Ex) passwd -i days
username해당 유저의 패스워드 설정 Ex) passwd username


*usermod command*

optionfunction
-f days username해당 user의 inactive period를 days로 변경 Ex) usermod -f 10 peterpan
-e yyyy-mm-dd username해당 user의 expiration date를 yyyy-mm-dd로 설정 usermod -e 2022-12-4 peterpan


그룹 관련 명령어

*groupadd command*

optionfunction
groupname해당 그룹 생성  Ex) groupadd neverland
-g GID groupname해당 GID로 해당 그룹 생성 Ex) groupadd -g 2000 neverland


*groupmod command*

optionfunction
-n newname currentname그룹 이름을 현재 이름에서 새로운 이름으로 변경  Ex) groupmod -n attacker defender
-g GID groupname해당 그룹의 GID를 변경 Ex) groupmod -g 2000 neverland 


*groupdel command*

sudo groupdel groupname  
⇾ 해당 그룹 삭제  


id username  
⇾ user의 group information을 볼 수 있음  


groups  
⇾ 로그인한 user가 속해 있는 group들을 보여줌  


| grep string

cat 명령를 사용하여 파일을 읽을 때 해당 문자열이 포함된 줄만 보여줌


id  
⇾ user의 id를 보여줌  


cat /etc/gshadow  
⇾ group들의 패스워드 보기


*gpasswd command*

optionfunction
groupname group의 password를 설정함 -> sudo cat /etc/gshadow를 통해 그룹 패스워드 보기 가능 Ex) sudo gpasswd team
-r groupnamegroup의 password를 삭제함 Ex) sudo gpasswd -r team
-a username groupnamegroup에 user를 추가해라 Ex) sudo gpasswd -a kim sudo
-d username groupnamegroup에서 user를 삭제해라 Ex) sudo gpasswd -d kim sudo

newgrp groupname  
⇾ 유저의 기본 그룹을 해당 그룹으로 변경 (변경하고자 하는 그룹의 패스워드를 입력해야 변경 가능)  
Ex) newgrp class1 class2

0개의 댓글