패스워드 정지/ 패스워드 정보 변경
03. 패스워드 일시 정지
1) #passwd
2) /bin/false
usermod -s /bin/false user1 --> 로그인 안된다.
3) sbin/nologin
usermod -s /sbin/nologin user1 --> 로그인 안된다.
usermod -s /bin/bash user1
04. /etc/shadow 파일
[계정명]:[패스워드(암호화)]:[패스워드 변경 후 지난 일수]:[최소 변경일]:[최대 유효기간]:[경고일]:[비활성화기간]:[계정 만료일]::
user2:$6$mBTM1eD2VX0tjNJv$VAzVqkF/W6kTzJa7VQ4jN08IMQkGGs7S5VG4amF79HcPpA4Uz2tEialYbENUULTfYKF.Zar7YkJ4qIJFrW.ye.:19792:0:99999:7:::
$6 : Hash ID($1: MD5, $2: Blowfish, $5 : SHA-256, SHA-512)
$K.1pSPa40dilDMrm : Salt
$VvZmGALWw: Salt + Password = 암호화된 패스워드
chage -l user1
- shadow 안들어가도 설정값 확인할 수 있음
=========================================
05. 패스워드 정보 변경
> /etc/shadow
#chage [옵션][설정값][계정명]
#chage -m 10 user1
<옵션>
-m: 패스워드 최소 변경일
-M: 최대유효기간
-W:경고일
-I: 비활성화기간
-E: 계정 만료 일
06. 그룹 사용자 생성/수정/삭제
>그룹 두가지 종류 : 디폴트그룹, 일반그룹
1)생성
#groupadd [그룹명] --> 일반그룹
디폴트그룹은 명령어로 삭제가 불가능하다.
2)삭제
#groupdel [그룹명]
3)그룹에 사용자 추가
#usermod -G [옵션] [사용자명]
#usermod -G study user3
#usermod -G dance,study user1 <--study, dance 그룹에 user1사용자 동시 추가/소속시키기.
#usermod -G sports,dance,user1,user2 user4 <-- user4를 sports, dance, user1, user2에 소속시키기.
#usermod -G sports,user1 user2<----sports에 user1, user2를 다 넣기
#gpasswd -a [사용자명] [그룹명] <--한번에 여러명을 소속시킬 수는 없다.
#gpasswd -a user4 user3 <---user3를 user4에 소속시킨다.
4) 그룹에서 사용자 삭제
#gpasswd -d [사용자명] [그룹명]
#gpasswd -d user4 user3
07. 소유자 변경
#chown [변경할 사용자명] [변경할 대상(파일/디렉터리)]
#chown user1 file.txt
08. 그룹 변경
#chgrp [변경할 그룹명] [파일/디렉터리명]
#chgrp user1 file.txt
drwxrwxr-x. 4 root study 47 3월 10 18:22 dir1
#[root@localhost home]# chgrp root dir1
>drwxrwxr-x. 4 root root 47 3월 10 18:22 dir1
[root@localhost home]# chown root:sports dir1
>drwxrwxr-x. 4 root sports 47 3월 10 18:22 dir1
09. 허가권
#chmod [허가권] [파일/디렉터리명]
#chmod 777 file.txt <---file.txt에 777의 허가권을 준다.
-rwxrwxrwx. 1 root root 0 3월 10 17:35 file.txt
-----------------------------------------
[파일 유형][허가권][링크 수][소유자명][그룹명] [파일크기][수정일][파일/디렉터리 명]
drwxr-xr-x. 2 root root 6 3월 10 16:19 dir1
-rw-r--r--. 1 root root 0 3월 10 16:19 file.txt
drwx(7)r-x(5)r-x(5). 2 root root 6 3월 10 16:19 dir1
-rw(6)-r(4)--r(4)--. 1 root root 0 3월 10 16:19 file.txt
[허가권]
rwx(소유자 허가권)r-x(그룹 허가권)r-x(제 3자 허가권)
>읽기(read): r : 4
>쓰기(write): w : 2
>실행(eXecute): x : 1
[디렉터리] 에 있는 권한
>읽기 : 디렉터리 내에서 목록 출력권한 ex)ls 명령어로 확인할 수 있느냐 없느냐.
>쓰기 : 디렉터리 내에서의 파일/디렉터리 생성/수정/삭제
>실행 : 디렉터리 진입
7(user)7(group)7(other) <----디렉터리 최고의 허가권
rwx(user)rwx(group)rwx(other)
(4+2+1 = 7)
[파일]
>읽기: 파일 내용을 읽을 수 있느냐 없느냐.
>쓰기: 파일 내용 생성/수정/삭제
>실행: 파일 내용 실행
[특수 비트] 그 파일을 싱행하는 동안만 그 소유자의 권한을 얻는다.
> 기존에 실행 권한이 부여되어 있으면 '소문자' -> t, s
> 기존에 실행 권한이 부여되어 있지 않았으면 '대문자' -> T, S
Sticky(1): other(x) : t : 쓰기 권한이 부여되어 있어도 삭제만큼은 해당 파일의 소유자만 가능 <-권한 강화역할
SetGID(2): group(x) : s : <-권한 약화
SetUID(4): user(x) :s <-권한 약화
[root@localhost home]# chmod u+s,g+s,o+t dir1
>drwsrwsrwt. 4 root sports 47 3월 10 18:22 dir1
[root@localhost home]# chmod o-x dir1
>drwsrwsrwT. 4 root sports 47 3월 10 18:22 dir1
[root@localhost home]# chmod 7777 dir1 <---허가권 부여(7777):특수비트,사용자,그룹,제3자
>drwsrwsrwt. 4 root sports 47 3월 10 18:22 dir1
[root@localhost home]# chmod u-x dir1
>drwSrwsrwt. 4 root sports 47 3월 10 18:22 dir1
root@localhost home]# chmod u+x dir1
>drwsrwsrwt. 4 root sports 47 3월 10 18:22 dir1
[root@localhost home]# chmod g-x dir1
>drwsrwSrwt. 4 root sports 47 3월 10 18:22 dir1
--------------------------------------------------------------------------------------------------------------------
umask(universal mask)
-0022 <------0(특수)0(소유자)2(그룹)2(제3자)
=====================================================
[심볼]
>사용자 : u
>그룹 : g
>제 3자 : o
>권한부여 : +
>권한제거 : -
> 설정/해당 비트만 적용 : =
#chown [사용자].[그룹][대상]
#chown [사용자]:[그룹][대상]
#chown .[그룹][대상] <-- 그룹만 바꾸기
#chown :[그룹][대상]
##chown [사용자]:[대상]
[파일 권한]
666
022
----
644
666
rw-(user)rw-(group)rw-(other)
-------------------------------------------
[디렉터리 권한]
777
022
-----
755
계정을 생성했을 때의 허가권이랑
root에서 생성했을때의 허가권이 다르다.
-------------------------------------------
umask = 077
777
077
----
700
-------------------------------------------
umask = 055
777
055
----
722
------------------------------------
umask = 033
777
033
----
744
421 421 421
111 111 111
7 7 7
---------------------------------------------------------------------------------------
[제 3자에 대한 허가권 변경] 3자는 o(other)
r(읽기),w(쓰기),x(실행)
#실행(x) 권한 빼앗기
[root@localhost home]# chmod o-x dir1 <-- 실행(x) 권한 빼앗기
>[user1@localhost home]$ cd dir1
>bash: cd: dir1: 허가 거부
#실행(x) 권한 주기
[root@localhost home]# chmod o+x dir1
-----------------------------------------
# 쓰기(w) 권한 빼앗기
[root@localhost home]# chmod o-w dir1
[user1@localhost dir1]$ mkdir ttt.txt
mkdir: `ttt.txt' 디렉토리를 만들 수 없습니다: 허가 거부
# 쓰기(w) 권한 주기
[root@localhost home]# chmod o+w dir1
-----------------------------------------------
# 읽기(r) 권한 빼앗기
[root@localhost home]# chmod o-r dir1
[user1@localhost dir1]$ rm -rf ttt.txt
[user1@localhost dir1]$ ll
ls: cannot open directory '.': 허가 거부
# 읽기(r) 권한 주기
[root@localhost home]# chmod o+r dir1
[user1@localhost dir1]$ rm -rf ttt.txt
[user1@localhost dir1]$ ll
합계 0
---------------------------------------------------
[root@localhost home]# chmod 777 dir1
drwxrwxrwx. 4 root study 47 3월 10 18:22 dir1
[root@localhost home]# chmod g=r dir1
drwxr--rwx. 4 root study 47 3월 10 18:22 dir1
[root@localhost home]# chmod o=rx dir1
drwxrwxr-x. 4 root study 47 3월 10 18:22 dir1
chgrp study dir1
쓰기권한(생성/수정/삭제) 중 삭제는 파일을 생성한 사용자(소유자)만이 할 수 있다.
user2가 생성한 ttt.txt 파일에 대해
user1은 삭제할 권한이 없다.
[root@localhost etc]# pwunconv
[root@localhost etc]# ls -l shadow
ls: cannot access 'shadow': 그런 파일이나 디렉터리가 없습니다
[root@localhost etc]# pwconv
[root@localhost etc]# ls -l shadow
-r--------. 1 root root 1830 3월 10 19:06 shadow