Search
Duplicate
📒

[Linux CLI] 04-1. 사용자 계정 관리 - who, useradd, usermod, su

상태
완료
수업
Linux
주제
Linux CLI
4 more properties
참고

리눅스 사용자 계정 관리

NOTE
리눅스는 사용자 계정이 있어야 접속이 가능하며, 각 계정은 권한을 부여받는데, 모든 것을 할 수 있는 관리자 권한의 계정을 root라고 한다!
root는 최초로 만들어져서 0번할당
리눅스에서는 사용자를 root(관리자)와 일반사용자로 구분한다.
각 계정은 흔히 사용되는 ID가 아니라 번호로 부여되는 UID(User Identity)로 관리한다.

UID(User ID) - 사용자 식별 번호

/etc/passwd에서 확인 가능
1~999 시스템을 제어하는 계정 → 로그인 되지 않도록 생성하는것이 원칙
1000~60000 까지 일반 계정

GID(Group ID) - 그룹 식별 번호

/etc/passwd/etc/group에서 확인 가능
리눅스는 그룹을 통해서 사용자를 묶을 수 있다.

계정 정보 한 눈에 보는 법

NOTE
linux는 자신이 갖고 있는 계정 정보를 텍스트 파일에 담아 관리한다. 기본적으로 계정의 목록은 /etc/passwd 파일에 저장되어 있다.
/etc/passwd 정보
root와 일반 사용자를 제외한 시스템 계정이 존재한다.
bin, daemon, adm, halt 등 여러가지가 존재하며 로그인이 불가능하다.

사용자 계정 명령어

id / who / whoami (계정 확인)

NOTE
계정에 대한 정보를 확인하는 명령어들이다!
id # 사용자 ID c id ubuntu # 특정 사용자 who # 현재 로그인된 사용자 who -b # 마지막 부팅시간 whoami # 로그인한 사용자 last # 로그인 기록 uname -a # 커널정보 확인
Bash
복사

passwd, shadow, group, gshadow (사용자 구성과 관련된 파일)

NOTE
계정에 대한 정보를 확인하는 명령어들이다!
cat /etc/passwd # 사용자 계정 정보 (username:x:UID:GID:full_name:shell) cat /etc/shells # 사용가능한 shell cat /etc/shadow # 사용자의 보안 정보 cat /etc/group # 그룹 정보 cat /etc/gshadow # 그룹의 보안 정보
Bash
복사

useradd / adduser / userdel(사용자 추가/제거)

NOTE
사용자를 생성하는 명령어다!
# useradd(저수준, 세밀한설정), adduser(고수준, 자동처리) adduser testuser1 # 자동으로 추가입력을 요구함 useradd testuser2 # s(쉘 제공), p(패스워드), m(홈 디렉토리 생성) grep testuser /etc/passwd useradd -s /bin/bash -m testuser3 # s(shell 지정), -m(홈 디렉토리 생성) useradd -s/bin/opthershell --home-dir /home/otherdirectory testuser4 useradd --uid 1100 testuesr5 # uid 1100 지정 userdel john # 유저삭제 userdel --remove john # 홈, 스풀을 제거 ls -a /etc/skel # 새 사용자 계정을 생성할 때 사용자의 홈 디렉토리에 기본으로 # 복사될 파일들(예: 기본 쉘 설정 파일)을 포함하는 디렉토리입니다
Bash
복사

passwd, usermod (사용자 확인/수정(패스워드))

NOTE
passwd testuser # testuser 비밀번호 변경 grep testuser /etc/shadow # testuser 정보 확인 usermod testuser -d /home/newdir -m # d(홈디렉토리 생성), m(기존 홈 디렉토리 이동) usermod --login changeuser testuser # 사용자 이름변경 john -> jane usermod --shell /bin/othershell testuser # shell 변경 usermod testuser -g testgroup # test그룹으로 변경 usermod testuser -Ag testgroup # test그룹 추가 usermod --lock testuser # 계정잠금 usermod --unlock testuser # 계정잠금 해제 usermod --expiredate 2021-12-10 testuser usermod --expiredate "" testuser # 만료기간 없음
Bash
복사

gpasswd, groupadd, groupdel, groupmod (그룹 확인/수정)

NOTE
gpasswd testgroup # 그룹 비밀번호 변경 gpasswd -a testuser testgroup # 유저에 그룹추가 gpasswd -d testuser testgroup # 유저에 그룹제거 groupadd testgroup # 그룹 생성 groupdel testgroup # 그룹 제거 group testuser # 유저 그룹확인 groupmod -n changetestgroup testgroup # 그룹이름 변경 groupdel -g 1100 testgroup # gid 변경
Bash
복사

su (Switch User, 계정 전환), sudo(Superuser Do, 관리자 권한), /etc/sudoers 파일구성

NOTE
su - # root 사용자 전환. su - [유저 이름] sudo [ 명령어 ] # 관리자 권한 실행 sudo -i # 해당 세션에 모든 명령어는 sudo로 실행된다. sudo u 사용자명 # 특정 사용자로 쉘을 실행한다,. vim /etc/sudoers . # vim으로 여는 방법 update-alternatives --config editor # 전용도구 (sudoers를 여는) visudo # user HOST=(RUN_AS_USER:RUN_AS_GROUP) COMMANDS student1 ALL=(ALL:ALL) ALL # student1은 어디서든 sudo를 사용가능
Bash
복사

login(로그인)

NOTE
# login [option] [사용자명] login test0124 # 0124 로그인
Bash
복사

chage(비밀번호 및 계정 만료설정)

NOTE
# chage [option] [username] chage --lastday 0 jane # --lastday(변경날짜 지정) chage --lastday -1 jane # 어제 수정함 chage --mindays 30 jane # 최소기한 chage --maxdays 30 jane # 최대기한
Bash
복사

limits.conf(사용자 리소스 제한)

NOTE
# 사용자 리소스 제한 # 특정 사용자의 CPU사용률을 제한한다. sudo vim /etc/security/limits.conf # 리소스 제한파일 # <domain> <type> <item> <value> trinity hard nproc 10 @developers soft nproc 20
Bash
복사

사용자 관리 실습

NOTE
시나리오
특정 사용자를 추가하고, 패스워드와 그룹, 권한을 설정해준다.
해당 유저에 대한 정보를 간단하게 수정하고, 현재 어떤 사용자가 있는지 모두 조회해라
사용자를 삭제해라
useradd testuser # 자동으로 그룹할당, 비밀번호 및 정보 설정한다. cat /etc/passwd # 모든계정 확인 cat /etc/group # 모든그룹 확인 mkdir /home/test1/data/project -p touch /home/test1/data/project/test su test1 # 계정변경 chomod 666 /home/test1/data/project/test # 파일권한 수정 vi /home/test1/data/project/test # test1 (수정가능), test2(수정가능) chown test1:test1 /home/test1/data/project/test # 파일 소유자 변경 vi /home/test1/data/project/test # test1 (수정불가), test2(수정불가) usermod -l 새로운이름 기존이름 usermod -d 새홈디렉토리 -m 사용자이름 usermod -s 새로운 쉘 사용자이름 usermod -g 새기본그룹 사용자이름 usermod -e YYYY-MM-DD 사용자 이름 userdel test1 # test1 소유의 파일은 UID로 남는다. sudo vim /etc/profile.d/lastlogin.sh # 계정 접속마다 실행 echo "Your last login was at : " > $HOME/lastlogin date >> $HOME/lastlogin cat lastlogin # 로그인 내역남음 sudo vim /etc/skel/README # 안내사항
Bash
복사