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 |