15. Multi-user

여러 명이 컴퓨터를 같이 사용하게 되는 경우!


id : 현재 접속중인 내가 누구인지 알려줌

  • uid : user id
  • gid : 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로 돌아오기
  • 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 : directory
  • rw-rw-r-- : access mode
    • rw- : owner의 권한 ( OOX )
    • rw- : group의 권한 ( OOX )
    • r-- : others의 권한 ( OXX )
  • lee lee :
    • 앞의 lee : owner
    • 뒤의 lee : group


rwx

  • r : read
  • w : write
  • x : 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 : Recursive
  • chmod -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는 다를 수 있다! )


Tags:

Categories:

Updated: