15. Multi-user
여러 명이 컴퓨터를 같이 사용하게 되는 경우!
id
: 현재 접속중인 내가 누구인지 알려줌
uid
: user idgid
: group id
who
: 현재 누가 접속해있는지 알려줌
1) Super(Root) User vs User
-
sudo
: super user do#
: super 유저$
: 일반 유저
-
super user가 되기 위해서
su
명령어 사용- ex)
su - root
- 비밀번호 입력 후, super user로 변경!
-
가급적 super user 지양하기! (꼭 필요할때 말고는)
exit
: 로그아웃 후, 일반 user로 돌아오기
- ex)
-
lock & unlock
sudo passwd -u root
: super user를 unlock하기sudo passwd -l root
: super user를 lock하기
2) Add user
sudo useradd -m tom
sudo
: super user만이 새로운 user를 추가를 할 수 있다-m
: home directory도 함께 만들어줌
sudo passwd tom
tom
이 사용할 password를 생성해줌
tom
이 sudo 권한을 쓸 수 있게 해주려면?
- 방법 1) 유저 생성 시
sudo adduser tom sudo
- 방법 2) 유저 이미 생성 한후
sudo usermod -a -G sudo tom
su - tom
이 잘 실행됨을 알 수 있다.
3) Permission
File & Directory에 대해서..
- 1) 읽기
- 2) 쓰기
- 3) 실행
에 대한 권한을 부여/제한할 수 있다.
-rw-rw-r-- 1 lee lee 0 Dec 4 23:19 temp.txt
해석 :
-
: file ,d
: directoryrw-rw-r--
: access moderw-
: owner의 권한 ( OOX )rw-
: group의 권한 ( OOX )r--
: others의 권한 ( OXX )
lee lee
:- 앞의
lee
: owner - 뒤의
lee
: group
- 앞의
rwx
r
: readw
: writex
: execute
4) chmod
change mode : for 권한 변경
chmod o-r temp.txt
-
o
: other의 -
-r
: read 권한을 제거(
+r
: ~을 부여 )
chmod u-w temp.txt
u
: user의-w
: write 권한을 제거
[TIP] rwx : 총 8가지 ( 2^3 =8 ), 0~7의 숫자로도 control 가능!
5) directory 권한
파일은 읽기/쓰기/실행하기 가 명확하다. 그렇다면 directory는?
( 실습 준비 )
-
mkdir perm; cd perm; echo 'hi' > perm.txt
-
cd ..
other에 대해, perm 경로의 읽기/쓰기 권한 부여
chmod o+r perm
chmod o+w perm
touch test
: test 파일이 잘 생성될 수 있음
실행(x
)를 빼버리면, 아예 해당 경로에 접속도 불가!
특정 디렉토리 밑에 있는 “모든 하위 디렉토리/파일”에 대해 권한을 부여하려면?
R
: Recursivechmod -R o+w perm
# 16. Group
file을 만든 사람 : user (u)
file을 만들지 않은 사람 : other (o)
수 많은 other 중 일부를, 묶을 수 없을까? “GROUP”
“GROUP”단위로 권한을 부여/제거할 수 있다!
- ex) GROUP 1 : developer
- ex) GROUP 2 : designer
1) groupadd
같은 group에 대해서, 권한 통일시키기!
-
user1, user2 : deveoper
-
user3 : designer
cd /var
: 이 곳에, developer들이 사용할 공용 directory 만들자!
sudo mkdir developer
멤버를 그룹에 추가하기
-
1) 사용자 새로 생성시
useradd -G groupname username
-
2) 기존 사용자를 추가 시
-
2-1) 그룹 생성 :
sudo groupadd developers
(
nano /etc/group
을 확인해보면, 그룹이 새로 생성된 것을 알 수 있음 ) -
2-2) 그룹에 추가 :
sudo usermod -a -G developers lee
-
현재 directory의 소유자/그룹을 변경하기
sudo chown root:developer .
: root에서 developer로sudo chgrp root:developer .
: root에서 developer로
그런 뒤, sudo chmod g+w .
17. Internet / Network / Server
client ———(request)———> server
client <——–(response)——- server
google의 ip address는?
ping google.com
현재 접속중인 컴퓨터의 ip를 알아내기
- 방법 1)
ip addr
- 방법 2-1) ipinfo.io/ip 로 접속하기
- 방법 2-2)
curl ipinfo.io/ip
but 방법 1) & 방법 2)의 ip가 다르다! 왜?
- 방법 1) 컴퓨터의 부여된 실제 ip …………. private IP
- 방법 2) 온라인 서비스가 인식한, 현재 내 컴퓨터의 ip ……….. public IP
( 내 고유의 ip와, 접속할때 사용하는 ip는 다를 수 있다! )