티스토리 뷰

#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: 셸

 

없던 comment가 생겼다 !

 

홈 디렉터리는 변경하면 안된다. 만약 변경하게 될 경우 아래와 같은 상황이 일어난다.
아무리 올바른 비밀번호를 입력하더라도, 로그인 되지 않는다.

 

 

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(암호화된 패스워드)

/etc/passwd 파일에서 확인해보기
passwd 명령어로 확인해보기

 

5) 패스워드 정보 변경

> /etc/shadow

 

#chage [옵션] [설정값] [계정명]

#chage -m 10 user1 -> 패스워드를 변경했다면, 최소 10일이 지나야 다시 변경할 수 있음

 

<옵션>

-m: 패스워드 최소 변경일

-M(대문자): 최대 유효기간 변경

-W(대문자): 경고일

-l(대문자 i): 비활성화 기간

-E: 계정 만료일

 

가상콘솔에서 사용자 계정으로 비밀번호를 변경할 때. root(관리자) 계정으로 비밀번호를 변경할 때와 상황이 다르다.

 

 

패스워드 최소 변경일이 아직 다 지나지 않았을 때 사용자가 비밀번호를 변경하려고 하면 다음과 같이 비밀번호 변경을 막는다.
무한 권력자 0
만일 사용자 계정의 UID를 0으로 바꾸고 로그인한다면, 사용자에게는 root 권한이 부여된다. 분명 user8로 로그인하였는데도 프롬프트에는 root라고 계정명이 적히는 것을 알 수 있다.

 

 

 

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: 그룹에 추가

 

그룹 생성 & 그룹 삭제. 가장 앞에 있는 것은 계정명이 아닌 그룹명이다.

 

디폴트 그룹은 편집기(에디터)로는 삭제 가능하지만, 명령어로는 삭제 불가능하다.

 

그룹에 사용자 추가. vi 에디터에서 직접 작성하여 추가할 수도 있지만 다음과 같이 명령어를 입력할 수도 있다.

 

한 번에 추가 가능

 

2개 이상에 동시에 소속시키는 것도 가능하다.
#gpasswd 명령어로 그룹에 소속/소속해제 시키기
깔끔하게 해제되는 모습

 

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 비트 예시)

해당 파일의 소유자만이 삭제 권한 있음

 

-------------------------------------------------------------------------------------------------------------------------------------

제3자 실행 권한 제거
결과 : 실행 거부됨
다시 권한 부여

 

제3자 읽기 권한 제거

 

결과 : 읽기(목록 출력) 거부됨
다시 권한 부여

 

제3자의 쓰기 권한 제거
결과: 쓰기(여기에선 파일 생성) 거부됨
다시 권한 부여
제3자의 모든 권한 한 번에 박탈
동시에 여러 권한 설정 가능

-----------------------------------------------------------------------------------------------------------------

소유자와 그룹 한 번에 변경 가능
허가권은 뒤에서부터 적용됨

-----------------------------------------------------------------------------------------------------------------

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)

 

----------------------------------------------------------------------------------------------------------

 

 

일반 사용자는 shadow 파일을 읽을 수 없음

-----------------------------------------------------------------------------------------------------------------------------------------

디렉터리의 w 권한도 굉장히 중요하다.. 그래서 디렉터리는 생성될 때 디폴트가 w 권한이 없는 것이다.

 

1. 상황 세팅: 상위 데릭터리 test 안에 제3자 w 권한 없는 file 생성

 

2. 다른 제3자 계정에서 test 디렉터리에 w 권한이 없을 때 file.txt를  vi 에디터로 수정해보기

처음부터 읽기 전용으로 뜬다.
wq! 안 먹음. q!만 먹으며, 다시 열었을 때는 저장되지 않고 나갔기 때문에 아무것도 없는 첫 상태가 다시 뜨게 됨

 

3. test 디렉터리에 제3자 w권한 부여

 

4.다른 제3자 계정에서 test 디렉터리에 w 권한이 있을 때 file.txt를  vi 에디터로 수정해보기

 

파일이 변경되었다는 안내 문구가 뜸
. wq!는 여전히 안먹지만, q!나와보니 file.txt의 소유자와 그룹이 user1으로 바뀌었을 뿐더라 file.txt~ 라는 백업파일까지 생성됨

==>>>> 중요!!! file.txt와 file.txt~의 소유주명과 그룹명이 변경되어서 둘다 수정 및 수정사항 저장ㅊ까지 가능해지게 되었다.... 그러므로 상위 디렉터리의 제3자 w권한은 부여하지 않는것이 좋다 !

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함