정보통신공학과 노선변경기
리눅스 관리 1일차 사용자, 그룹 , 특수 권한 본문
*사용자 확인 명령어
id: 현재 로그인 사용자 정보확인
ls -l : 파일 및 디렉토리의 소유자 확인가능
ps -au : 프로세스를 사용중인 사용자 확인가능
사용자 정보는 /etc/passwd 에 등록된다
user: x : 1000 : 1000 : user: /home/user: /bin/bash
사용자, 비밀번호 , UID, GID, 사용자에 대한 설명, 유저의 홈디렉토리, 유저가 사용하는 쉘
쉘 부분에 /nologin 되어있다면 로그인 할 수 없는 계정..
*그룹
계정 만들어지면 그룹은 자동생성, GID 있음
etc/group 에서 확인, user : x : 1000 : user
그룹이름, 패스워드, GID, 보조그룹 (주 그룹이 할 수 있는걸 다 할 수 있다)
*root 사용자
UID가 0인 사용자, 모든권한 갖고있고 소유자의 권한 수정할 수 있음
*su ==> substitute user , 사용자 바꾼다는 뜻
그냥 su만 하면 계정만 바꾸는거고 su - 붙이면 계정으로 로그인한다.
su – cccr1 ==> cccr1으로 로그인
그냥 su cccr1 ==> PATH값이 그대로고 cccr1의 PATH로 적용이 안된다.
*sudo: super user의 권한대행 역할, su를 사용하는것과 차이가 있다.
su, su - , sudo, sudo -i , sudo -s 차이를 구분할 수 있어야한다.
Su ==> PATH값이 그대로
su - ==> PATH값을 지정한 사용자로부터 가져와서 수행한다.
Sudo ==> sudo 하고 사용자 지정이없다면 root로 명령을 수행 …ex) sudo cat /etc/shadow
환경을 바꾸지 않고 지정사용자의 권한으로만 명령을 수행한다.
Sudo -i ==> root사용자의 홈디렉토리등 환경을 가져온다.
Ifex) user01로 접속하여..
1. sudo touch fileA ==> 권한은 root root 이고 home/user01/fileA 저장
2.sudo -i touch fileB==> 권한도 root root 이고 rootfileB 저장
ls 누르면 PATH 환경변수에 저장된 경로에서 ls 프로그램이 있는지 다 찾아낸 다음 그 경로의 ls프로그램을 실행
계정이 생길 때마다 환경변수가 바뀐다..는거 알아두기
*useradd
계정생성
로그인하고싶어 ==> su or su -
su는 로그인은 안함. PATH를 root에서 su cccr1 했다면 root의 PATH를 그대로 상속받음
su - 는 로그인해 , PATH를 자기 PATH 사용
로그인 내역은 /var/log/messages에 저장됨
[options]
-D: 유저의 default 설정값 알 수 있다. 무슨 쉘, 홈 디렉토리,
-u : uid 지정
-c : 코멘트 작성
-d : 홈디렉토리 지정
-s : 쉘 지정
****Quiz************************************************
cccr3 계정을 생성하시오, 홈디렉토리 /home/guest 쉘은 /bin/sh 로 로그인되게 생성하시오.
Ans) useradd -d /home/guest -s /bin/sh cccr3
*userdel
계정 삭제 명령어, userdel cccr3 ==> 계정은 UID그대로 남아있게 된다..
-r : remove 옵션, 홈디렉토리도 함께 지워주는 옵션,
userdel -r cccr3 이렇게 해야 홈디렉토리까지 모두 지워진다.
*패스워드 만들어주기 passwd [username]
루트에서 다른사용자 갈 때 패스워드 안물어봐, 사용자에서 다른 사용자로 갈 때 패스워드 물어봐
passwd cccr1 ==> cccr1의 패스워드 지정
*usermod
계정 생성후 계정정보 modify해주는 것, 생성이 아닌 수정
cccr3 를 /home/guest로 useradd 해주고, usermod -d /home/guest2 로 바꿔줄 때 ls -al /home에서 cccr3의 홈디렉토리는 guest2로 생성은 안된다, 하지만 cat //etc/passwd 로 확인해봤을 때 cccr3의 홈디렉토리는 변경.
**************Quiz*************
cccr3 계정 uid 2010, 보조그룹에 wheel을 추가하시오
ANS > usermod -u 2010 -G wheel cccr3
uid 바뀐거 ==> /etc/passwd 로 확인
그룹 바뀐거 ==> /etc/group 로 확인
usermod -aG wheel cccr3 ==> G만 놓고쓰면 보조그룹이 그냥 변경되기만하고 보조그룹 새로 넣는다면 기존의 보조그룹 속하던것에서 cccr3 안나온다. 따라서 append 옵션으로 보조그룹을 append 할 수 있다.
참고: wheel의 보조그룹에 추가시켜주면 sudo 명령어를 사용할 수 있게 계정을 바꿀 수 있다.
*sudo: super user의 권한대행 역할, su를 사용하는것과 차이가 있다.
su, su - , sudo, sudo -i , sudo -s 차이를 구분할 수 있어야한다.
*groupadd(잘 안씀)
그룹을 추가하는 명령어
groupadd –help로 옵션 확인하고 진행
*/etc/passwd 파일
passwd 저장해두는 파일
user:$6$TnOJrvVXvEokzqJs$1oSBnlfaE2loyMdU9akf08cJIv.wAfOrCHsr8UBlPUUFGmTycGlbnd1zfm/wWkWqrKbLewvo28.JiaOkb3a8S.::0:99999:7:::
$6$ ==> SHA-256으로 암호화 되었다는 뜻
TnOJrvVXvEokzqJs==> salt, 임의로 선택되는 값
1oSBnlfaE2loyMdU9akf08cJIv.wAfOrCHsr8UBlPUUFGmTycGlbnd1zfm/wWkWqrKbLewvo28.JiaOkb3a8S. ==> 암호화된 passwd
salt + <사용자 지정 pw> → 암호화
*패스워드 기간 지났을 때..
chage -d 0 test_passwd ==> 남은 패스워드 교체기간을 0일로 해줘서 바로 바꾸라고 뜨게끔 하는 명령어
test_passwd 의 비밀번호 == jh14031403 으로 내가 임의설정해줌..
*특수권한, setuid, setgid, sticky bit
파일 디렉토리
setuid 소유자 권한으로 실행 XX chmod u+s
setgid 소유 그룹의 권한으로 실행 ?????? chmod g+s
sticky bit X 해당 디렉토리에서 파일 삭제시 본인소유 파일만 삭제가능 chmod o+t
user → passwd → 패스워드 변경(변경하는 순간 root가 개입하여 변경, shadow업데이트) → /etc/shadow update
usr/bin/passwd 에 user권한 s 없애면 root권한으로 passwd 실행이 안되므로 비밀번호 변경못한다.
Setuid 되어있으므로 user에서 passwd 변경할 때 root의 권한으로 변경가능한 것이다.
*Setuid ==> 바이너리 또는 스크립트 파일에 적용, 실행한 사용자가 아닌 파일소유자의 권한으로 실행된다
실행권한이 x대신 s로 표시된다.
Setuid 설정해주고 user의 실행권한 박탈해주면 Large S로 표시
-rwSr-xr--. 1 root root 31 May 10 16:08 /tmp/test.sh
*setgid
일반적으로 디렉토리에 설정하고 사용하는 경우가 많다. 주로 데몬프로세스가 사용하는 그룹의 권한을 사용한다.
*Sticky bit
디렉토리 기타사용자 권한이 rwx면 모든 사용자가 해당 디렉토리에서 파일 생성, 삭제 가능
생성은 문제없지만 삭제시에는 문제가 있다. sticky비트 설정시 파일생성가능 but 다른 사용자의 파일 삭제 불가능
***예제*****
1) /usr/bin/passwd 파일의 setuid 확인
chmod u-s & u+s 의 차이점 확인
/tmp or /var/tmp 는 sticky bit 부여된 디렉토리
user01 생성후 /tmp/fileA생성 ->
Q1. user 은 /tmp/fileA 삭제 가능????
ANS1. sticky bit 가 설정 되어있으므로 user01이 /tmp/ 생성한 파일에 대한 삭제는 user가 할 수 없다.
Q2. chmod o-t /tmp/ 이후 user 은 /tmp/fileA 삭제 가능????
ANS2. Sticky bit 없으므로 user01이 /tmp에서 생성한 파일에 대해 user가 삭제할 수 있다.
'Sub3_리눅스 관리' 카테고리의 다른 글
리눅스 관리 6일차 find OpenSSH NTP Firewall 방화벽(firewall-config, firewall-cmd) (0) | 2021.05.18 |
---|---|
리눅스 관리 5일차 로그관리 journalctl 로그규칙 yum (0) | 2021.05.14 |
리눅스 관리 4일차 systemd systemctl 부트프로세스 네트워크관리(nmcli) (0) | 2021.05.13 |
리눅스 관리 3일차 swap, 볼륨관리, fstab 작성, LV, PV, VG 관련명령어 (0) | 2021.05.12 |
리눅스 관리 2일차 ACL, setfacl, getfacl, at, crontab, partitioning, mount (0) | 2021.05.11 |