티스토리 뷰
#ifconfig
account와 identifier(ID)의 차이
- account: 시스템에 진입 가능
- identifier
모든 시스템에서 0은 무한대를 나타냄. 숫자가 작을수록 우선순위가 높음
1. 사용자 계정
1) 사용자 관련 파일 및 디렉터리
[계정명]:[패스워드]:[UID]:[GID]:[Comment]:[사용자홈디렉터리]:[셸 종류]
2) 사용자 정보 수정
#usermod [옵션] [설정값] [계정명]
#usermod -c pse user7
<옵션>
-l: 계정명
-u: UID
-g: GID
-c: 설명
-d: 홈디렉터리
-s: 셸
3) 패스워드 일시 정지
1️⃣ #passwd -l [계정명] (잠금) -> #passwd -u [계정명](해제)
2️⃣ #usermod -s /bin/false [계정명] -> #usermod -s /bin/bash [계정명]
3️⃣ #usermod -s /sbin/nologin [계정명] -> #usermod -s /bin/bash [계정명]
4) /etc/shadow 파일
[계정명]:[패스워드(암호화)]:[패스워드 변경 후 지난 일수(1970년 1월 1일 이후 날짜)]:[최소 변경일]:[최대 유효기간]:[만료 경고일]:[(만료일이 지났을 때)비활성화 기간]:[계정 만료일]::
user1:$6$G9PE3HascWvjjlpM$YlZ78tGvT0U/FKjkzWVm/PPMNyPmAnFQWJ7EZhTU9Eu1CR1Ms8SHPS9JP0j0HvsJvrxKdl97sXoUnpt0bNYuK/:19792::::::
$6: Hash ID($1:MD5, $2: Blowfish, $5: SHA-256, $6: SHA-512) - 암호 알고리즘
$G9PE3HascWvjjlpM : Salt(계정을 만들때마다 랜덤)
$YlZ78tGvT0U/FKjkzWVm/PPMNyPmAnFQWJ7EZhTU9Eu1CR1Ms8SHPS9JP0j0HvsJvrxKdl97sXoUnpt0bNYuK/
: Salt -> Password(암호화된 패스워드)
5) 패스워드 정보 변경
> /etc/shadow
#chage [옵션] [설정값] [계정명]
#chage -m 10 user1 -> 패스워드를 변경했다면, 최소 10일이 지나야 다시 변경할 수 있음
<옵션>
-m: 패스워드 최소 변경일
-M(대문자): 최대 유효기간 변경
-W(대문자): 경고일
-l(대문자 i): 비활성화 기간
-E: 계정 만료일
6) 그룹 사용자 생성/수정/삭제
> 디폴트 그룹, 일반 그룹
1️⃣ 생성
#groupadd [그룹명]
2️⃣ 삭제
#groupdel [그룹명]
3️⃣ 그룹에 사용자 추가
#usermod [옵션] [그룹명] [사용자명]
#usermod -G study user1
#usermod -G study,dance user1 : study, dance 그룹에 user1 사용자 동시에 추가/소속 시키기
#gpasswd -a [사용자명] [그룹명] : 단, 한 사용자를 여러 그룹에 동시에 소속시킬수는 없음
#gpasswd -a user4 user3
4️⃣ 그룹에서 사용자 삭제
#gpasswd -d [사용자명] [그룹명]
#gpasswd -d user4 user3
<옵션>
-G: 그룹에 추가
7) 소유자 변경
#chown [변경할 사용자명] [변경할 대상(파일/디렉터리)]
#chown user1 file.txt
8) 그룹 변경
#chgrp [변경할 그룹명] [파일/디렉터리명]
#chgrp user1 file.txt
9) 허가권 변경
#chmod [허가권] [파일/디렉터리명]
#chmod 777 file.txt
-----------------------------------------------------------------------------------------------------------------
[속성 /파일유형] |
[허가권] | [링크수] | [소유자명] | [그룹명] | [파일크기] | [수정 날짜] | [파일 /디렉터리명] |
d | rwxr-xr-x. | 2 | root | root | 6 | 2월 18 16:10 | test |
- | rw-r--r--. | 1 | root | root | 0 | 2월 18 16:10 | test.txt |
[허가권]
rwx(소유자)r-x(그룹)r-x(제3자)
구분 | symbol | 8진수 |
읽기(read) | r | 4 |
쓰기(write) | w | 2 |
실행(execute) | x | 1 |
-소유자(u): 해당 디렉터리나 파일의 소유자
-그룹(g): 해당 디렉터리나 파일의 그룹에 속한 자
-제3자(o): 해당 디렉터리나 파일의 소유자도 아니고, 그 그룹에 속한 자도 아닌 자
[디렉터리]
> 읽기: 해당 디렉터리 "내에서의" 하위 목록 출력 권한
> 쓰기: 해당 디렉터리 "내에서의" 하위 파일/디렉터리 생성/수정/삭제 권한
> 실행: 디렉터리의 진입
* full permission : 4+2+1=7
* 따라서 최대 허가권은 다음과 같다. "rwxrwxrwx" = "7(user)7(group)7(other)"
[파일]
> 읽기: 파일 내용 읽기(vi 에디터, cat, head, tail ... 등)
> 쓰기: 파일 내용 생성/수정/삭제
> 실행: 파일 내용 실행(셸 script 만들기 등)
* full permission : 4+2=6
* 따라서 최대 허가권은 다음과 같다. "rw-rw-rw-" = "6(user)6(group)6(other)"
* 실행권은 왜 6이 최대일까? : 초기에는 파일에는 실행 권한을 주지 않았음.
[특수 비트]
- Sticky(1): other (x - 실행권한) → t (보안 강화)
▶ 해당 파일이나 디렉터리에 쓰기 권한이 부여되어 있어도 삭제만큼은 해당 파일의 소유자만 가능
▶ 각 사용자의 실행 권한에 설정이 됨
▶ 기존에 실행 권한이 부여되어 있으면 '소문자'로 표시됨(실행 권한이 없으면 '대문자') - SetGID(2) - SUID : group (x - 실행권한) → s (보안 취약)
▶ 파일을 실행하는 동안만 그 파일의 소유주 권한을 획득 - SetUID(4) - SUID : user (x - 실행권한) → s (보안 취약)
▶ 파일을 실행하는 동안만 그 파일의 소유주 권한을 획득
Stichy 비트 예시)
-------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
1. study 그룹에는 user1과 user2만 소속된 상태
2. 제3자에겐 아무런 권한이 부여되지 않은 test 디렉터리
3. test 디렉터리의 소유자와 그룹 변경
4. root 계정은 무조건 test 디렉터리에 rwx 접근 가능
5. user1 계정은 소유자로서, rwx 권한이 부여되어 있으므로 rwx 접근 가능
6. study 그룹에 있었던 user1과 user2 모두 rwx 권한이 부여되어 있으므로 rwx 접근 가능
7. 하지만 소유자도 아니며, study 그룹에도 소속되어 있지 않은 제3자 계정인 user3는 어떤 권한도 부여되어 있지 않다.
(---)아래의 사진 참고.
----------------------------------------------------------------------------------------------------------------------------------------------------------
#chmod [u/g/o]=[r/w/x] [권한 변경 대상]
chmod g=r dir1 -> dir의 group 권한이 r 권한만 남기고 없어짐.
----------------------------------------------------------------------------------------------------------------------------------------------------------
mask : 안 좋은 것으로부터 나를 제한한다, 차단한다
umask(특수 허가권 + 일반 허가권 rwx) - 파일이나 디렉터리 생성 시 초기 권한 관여(설정)
0022
0(특수)0(소유자)2(그룹)2(제3자)
[디렉터리의 권한]
777
- 022
_____
755(rwxr-xr-x)
[파일의 권한]
666
- 022
_____
644(rw-r--r--)
[/home/사용자 디렉터리의 권한]
777
- 077
_____
700(rwx------)
#umask 055
rwx | rw- | r-x | |
2진수 | 111 (2^2+2^1+2^0) | 110 (2^2+2^1) | 101 (2^2+2^0) |
8진수 | 421 | 420 | 401 |
10진수 | 7(4+2+1) | 6(4+2) | 5(4+1) |
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
1. 상황 세팅: 상위 데릭터리 test 안에 제3자 w 권한 없는 file 생성
2. 다른 제3자 계정에서 test 디렉터리에 w 권한이 없을 때 file.txt를 vi 에디터로 수정해보기
3. test 디렉터리에 제3자 w권한 부여
4.다른 제3자 계정에서 test 디렉터리에 w 권한이 있을 때 file.txt를 vi 에디터로 수정해보기
==>>>> 중요!!! file.txt와 file.txt~의 소유주명과 그룹명이 변경되어서 둘다 수정 및 수정사항 저장ㅊ까지 가능해지게 되었다.... 그러므로 상위 디렉터리의 제3자 w권한은 부여하지 않는것이 좋다 !
- Total
- Today
- Yesterday
- 데이터구조
- 프론트엔드
- 브라우저뜻
- Abstraction
- 앱개발
- 비주얼스튜디오
- 기계어
- 익스플로러
- 소스파일
- 알고리즘
- 구글크롬
- 브라우저
- D&C
- 사이트만들기
- jvm
- 개발계발
- SW생명주기
- ADL
- 구현
- vscode
- 웹개발자
- 크롬
- jre
- VisualStudio
- javase
- SWLIfeCycle
- 프로그래밍언어
- 의사코드
- 데이터추상화
- 바이트코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |