다중 사용자
1. 다중 사용자 소개
- 시스템의 복잡도가 높아짐
2. id와 who
1) id
- 나는 누구인지 알려줌
- uid : user id
- gid : group id
2) who
- 현재 이 시스템에 누가 접속했는지를 보여줌
- ssh -p 3002 k8805@local.host : k8805로 리눅스에 접속
관리자와 일반 사용자
- 유닉스 계열 두가지 형태의 사용자
1) super(root) user
- sudo [명령어]; : 일시적으로 super user의 권한을 사용
- root라는 이름을 가짐
- # : super user
- root 디렉토리 사용
2) user
- 그냥 일반 사용자는 sudo 사용 안됨
- $ : 일반 유저
3) super user가 되기
- su : change user id or become superuser
(1) su - root
(2) 비밀번호 입력
(3) exit : 로그아웃
4) root 사용자 잠금 풀기
(1) sudo passwd -u root
(2) su - root
(3) sudo passwd -l root : root user에 잠금 걸음
사용자의 추가
- unix add user
1) sudo useradd -m duru
2) su - duru
3) sudo passwd duru : duru의 패스워드 생성
4) duru는 sudo 명령어 안됨
5) super user 가능한 사용자에서 sudo usermod -a -G sudo duru : 슈퍼 유저 권한으로 명령 사용 가능
권한 (permission)
1. basic
- Permission : File & Directory에 대해 유저의 Read & Wirte & Excute 유무를 결정
1) touch perm.txt
2) ls -l perm.txt
- -rw-rw-r-- 1 egoing egoing 0 Dec 4 23:19 perm.txt
(1) - : Type
- - 는 기본적인 파일
- d는 디렉토리
(2) rw-rw-r-- : Access mode
- rw- : Owner의 권한
- rw- : Group의 권한
- r-- : Other의 권한, 운영체제에 등록되어 있는 모든 사용자 의미
- r : read, w : write, x : excute
(3) egoing egoing : Owner Group
3) echo 'hi' : echo는 문자를 표준출력으로 출력
4) echo 'hi' > perm.txt : 텍스트가 perm.txt에 출력되어 저장
5) cat perm,txt로 확인 가능
6) du) 다른 사용자에서 cd /home/egoing, ls -l perm.txt
7) du) echo 'hello' > perm.txt 시 권한이 거부됨
2. 권한을 변경하는 방법(chmod)
- Chmod : Access mode를 변경
- chmod o-r perm.txt : perm.txt에서 other의 read 권한 제거
- chmod o+r perm.txt : perm.txt에서 other의 read 권한 부여
- chmod o+w perm.txt : perm.txt에서 other의 write 권한 부여
- chmod u-r perm.txt : perm.txt에서 user의 read권한 제거
3. 실행의 개념과 권한 설정
- excute : 실행
1) nano hi-machine.sh
2) #!/bin/bash : bin/bash의 프로그램을 통해서 실행
3) echo 'hi hi hi hi'
4) ./hi-macine.sh : 현재 디렉토리에서 hi-machine 실행 -> 안됨
5) /bin/bash hi-machine : /bin/bash에서 hi-machine 실행됨
6) chmod u+x hi-machine.sh; : 실행 권한 부여
7) ./hi-macine.sh : 현재 디렉토리에서 hi-machine 실행 -> 실행됨
8) du) chmod o+x hi-machine.sh : other에서 실행 권한 부여
4. directory의 권한
1) mkdir perm; cd perm; echo 'hi' > perm.txt
2) chmod o-r perm : other이 디렉토리 열람 불가능
3) chmod o+r perm : other이 디렉토리 열람 가능
4) chmod o-w perm : other이 파일 생성, 변경, 제거 불가능
5) chmod o+w perm : other이 파일 생성, 변경, 제거 가능
6) chmod o-x perm : other이 cd perm 불가능(cd 권한 불가능)
7) chmod o+x perm : other이 cd perm 가능(cd 권한 가능)
8) chmod -R o+w perm : perm과 그 하위디렉토리에 모두 write 권한 부여
5. chmod 사용법 정리
- chmod [options] mode[,mode] file1 [file2 ...]
- Octal modes(8진법 모드)
1) chmod 111 perm.txt : 1(excute only) -> ---x--x--x
2) chmod 110 perm.txt : 1(excute only), 0(-) -> ---x--x---
3) 0(---), 1(--x), 2(-w-), 3(-wx), 4(r--), 5(r-x), 6(rw-), 7(rwx)
- 문자열 모드
1) chmod 옵션 [reference] [operator] [modes] 파일
2) reference : u, g, o, a(all)
3) operate : +, -, =(해당 권한을 설정한데로 변경)
4) modes : r, w, x, -(사용권한ㅇ벗음)
그룹
1. intro
- user : file를 만든 사람, RWX에 의해 파일 사용
- other : file를 생성하지 않은 사람, RWX에 의해 파일 사용
- group : 특정한 사용자 그룹에게 권한 부여 위해 이름을 주고 파일에 지정, RWX에 의해 파일 사용
2. groupadd - 실습
1) cd /var
2) sudo mkdir developer
3) cd developer/
4) echo 'hi, ehoing' > egoing.txt -> 거부됨
5) sudo groupadd developer
- sudo !! : 직전에 입력했던 명령어 실행
6) nano /etc/group 에서 developer 확인 가능
7) sudo usermod -a -G developer egoing : 추가한다, 그룹에 developer라는, 수정할 사용자로는 egoing을
8) sudo usermod -a -G developer k8805
9) 재로그인(exit, 재접속)
10) cd /var/developer/
11) sudo chown root:developer . : 현재 디렉토리의 소유자를 root에서 developer로 바꿈
12) sudo chmod g+w .
13) echo 'hi, egoing' > egoing.txt : egoing.txt에 hi, egoing 생성