본문 바로가기
Developing../POSIX:Linux

3. Basics - OS로써 LINUX (사용자/네트워크)

by bents 2020. 12. 7.

3. 운영체제의 사용자 관리

  - 사용자 관련 명령어

  - 파일/디렉토리 권한 관련 명령어

  - 사용자그룹

4. 운영체제의 네트워크 관리 ( 인터넷 ) : 네트워크(클라이언트 - 서버)의 모임

  - 서버 : 서버동기화/로그인

  - 네트워크 : 원격제어/포트포워딩

  - 도메인 : DNS Server


3. 운영체제의 사용자 관리

사용자

 # 사용자 종류 : super user (~#) vs user(~$)
  - super user의 home directory : /root
  - common user의 home directory : /home/username
    * 주의 :  ( 동일단어 다른의미 ) : 최상위 directory == root directory 

- 사용자확인 : id, who

# ( 일반사용자 계정에 sudo 사용하는게 안전하다 ) 

```
sudo passwd -u root 
su - root
exit
sudo passwd -l root
```

- 사용자 추가

```
sudo useradd -m egoing
sudo passwd egoing

# 유저계정 수정, append, grouping - sudo 사용가능한 사용자계정으로 변경
sudo usermod -a -G sudo egoing
```

- 사용자 변경

```
su - egoing
# sudo pwd - sudo 사용가능한지 확인
exit
```

사용자권한

- root 권한 실행

```
~$ sudo reboot
~$ sudo halt
```

- root 사용자로 전환 (switch user)

```
~$ sudo su - root ( 현재 사용자계정에서 root 전환 ) 
~$ sudo su -      ( 현재 사용자계정에서 root 전환 ) 
~$ sudo su        ( 현재 위치에 한해서 사용자계정root 권한 ) 
```

파일권한

# 파일 권한 정보

-rw-rw-r-- 1 mine mine 0 dec 4 23:22 perm.txt
type access mode ; 1 ; owner ; group ; 0 ; datetime ; filename

"-rw-rw-r--" : type [1자리수] + access mode [3자리수 + 3자리수 + 3자리수 ]
* type : file , directory 
* access mode : owner's, group's, other's

- : nothing
r : read
w : write
x : execute

# 파일 권한 조회

mine@~$ echo 'hi' > perm.txt
mine@~$ cat perm.txt

yours@~$ ls -l perm.txt  # 파일 상세정보 보기
yours@~$ echo 'hello' > perm.txt # 권한없는 파일에 대해 오류발생

# 파일 권한 변경

touch perm.txt
chmod 111 perm.txt #r
chmod 222 perm.txt #w
chmod 444 perm.txt #x

chmod o+r perm.txt # 나머지 권한 변경
chmod g+w perm.txt # 그룹 권한 변경
chmod u+x perm.txt # 소유자 권한 변경
chmod o-x perm.txt # 나머지 권한 변경

 

# 파일 실행

~$nano hi-machine.sh

#!/bin/bash
echo 'hi hi hi hi'

~$chmode u+x hi-machine.sh
~$./hi-machine.sh

디렉토리 권한

mkdir perm

# 디렉토리의 파일목록 열람
chmod o+r perm
ls -l perm

# 디렉토리의 파일 생성/제거/변경
chmod o+w perm
touch/rm/mv perm.txt

# 디렉토리 cd 변경 
chmod o+ㅌ perm
cd perm

# Recursive 쓰기 권한 
chmod -R o+w perm


​4.
운영체제의 네트워크 관리

네트워크(인터넷)

# 네트워크란? : 컴퓨터간의 대화(통신)

# 구성

  • 클라이언트 : 서비스를 요청(request)하는 컴퓨터 
  • 서버 : 서비스를 제공(response)하는 컴퓨터
    [예제] 웹클라이언트(웹브라우저;chrome) - 웹서버(웹서버:apache)

     

     

# (서버) 주소 

  • 도메인 이름 : google.com := 친구이름
    [참고] DNS server: 도메인과 아이피주소의 짝 정보를 가짐.
  • 아이피 주소 : 172.21.257.78 := 친구전화번호 

# (서버) 주소(IP) 확인방법

- Private
# linux
ip addr 
# mac  
ifconfig | grep inet

- Public
curl google.com
curl ipinfo.io/ip

 Q. public 과 private의 값이 다르게 나오는 이유는?
: 공유기(Router)가 존재하기 때문이다.
- 하나의 외부 회선(외선) = 라우터(공유기)의 주소 (public) : 211.45.23.34
- 여러개의 내부 회선(내선) = 기기별 주소(private) : 10.0.3.3

서버

# 서버의 구성요소

1) 접속주소

2) 포트 

  • 0~1024 표준 인프라 통신시스템
  • 1025~65000 : 비표준/사용자정의 통신시스템
#웹 서버 : 포트 80
#ssh 서버 : 포트 22 

~$ ssh -p 22 egoing@193.12.42.04

3) 대표사례1 : 웹서버

sudo apt-get update; # update list! not program
sudo apt-get install apache2
sudo service apache2 start # start web server / end, stop, restart 재부팅

# 컴퓨터 내 연결주소
localhost / 127.0.0.1

# 내부 네트워크 내 연결주소
ip addr # ifconfig

# 클라이언트에서 웹서버에 연결하기+요청하기
elinks ip-address # web browser request 
curl ip-address

# 서버 확인 방법

- 서버 설정 확인
cd /var/www/html
nano /etc/apache2/sites-enabled/000-default.conf

- 서버 프로그램 로그 확인
cd /var/log/apache2
tail -f /var/log/apache2/access.log  

# 서버 동기화

= 원격 동기화(remote sync)

: 떨어진 컴퓨터간의 파일상태를 같게 유지하는 기능(복사,백업)

 

1) 컴퓨터 내 동기화

mkdir rsync/src
cd rsync/src
touch test{1..10}
cd ..
mkdir dest

rsync -a src/ dest # 권한/파일/메타정보 이동(src/* -> dtest/*) 
rsync -av src/ dest # 변화된 내용만 상세정보 출력

ls -al dest

2) 네트워크 내 원격동기화 ( 백업 목적 )

# archive , zip, process bar 
rsync -avzP ~/rsync/src k88@192.124.24.25:~/rsync/dest

# ssh 로그인 없이 가능하려면 공개키 등록시켜야 함.
# 주기적인 백업 자동화를 위해서 cron,rsync와 ssh-keygen(암호키)이 필요함

# 서버 로그인 방법

1) 보안성 높은 자동로그인 방법

- 공개키/비공개키 만들기
ssh-keygen
#/home/egoing/.ssh/id_rsa
cd ~/.ssh
ls -al
#id_rsa : private key(절대노출금지 - 소유자만 권한)
#id_rsa : public key


- 원격로그인할 서버로 공개키 전송/등록 시키기
ssh-copy-id kems@192.14.0.13
# 192.14.0.13 password 입력
# 192.14.0.13의 ~/.ssh/autorized_keys에 저장됨.

* RSA : 공개키 암호시스템

2) 보안성 낮은 로그인 방법

ssh egoing@192.168.0.10
password:

'Developing.. > POSIX:Linux' 카테고리의 다른 글

맥에서 cron job생성하기  (0) 2021.01.12
GIL - POSIX THREAD  (0) 2020.12.30
4. LINUX CLI - 파일검색 / 텍스트 처리  (0) 2020.12.07
2. Basics - OS로써 LINUX 구조  (0) 2020.12.07
1. Basics - 리눅스 기본  (0) 2020.12.07