코딩하는 문과생
[리눅스] 생활코딩, 다중 사용자 본문
[다중 사용자]
여러 명이 하나의 운영체제를 사용하는 방법, 위험성 등을 다룰 것이다.
- 시스템의 복잡도가 높아진다.
- 권한에 대한 체크가 필요해진다.
$ id
# uid: 사용자id, gid: 그룹id
$ who
# 현재 누가 접속해있는가
[관리자와 일반 사용자]
super(root) user VS user
- #: super 유저
- $: 일반 유저
$ sudo apt-get update;
# super user권한으로 해당 명령어를 실행
# ***super user(root)가 되는 법***
$ su - root
# change user ID or become superuser
# password:
~# id
~# exit
# ***root비밀번호 접근 lock을 풀어야 할 때***
$ sudo passwd -u root
# -u: unlock
$ su - root
# password: <- 비밀번호를 입력 안해도 된다.
~# pwd
# /root :root사용자의 홈 디렉토리
~# exit
$ cd ~
$ pwd
# /home/sijune***
*** root비밀번호 접근에 다시 lock을 건다***
$ sudo passwd -l root
# -l: lock
$ su - root
# password: <- 비밀번호를 입력해야한다.
# Authentication failure
[사용자의 추가]
$ sudo useradd -m park
# password: 명령을 실행한 사용자의 비밀번호
$ cd /home
$ ls
# park 사용자 생성
$ sudo passwd park
# Password 설정
$ su - park
# Password:
park@ubuntu~$ sudo pwd
# 사용 불가
# sudoers 파일에 존재하지 않기 때문에
park@ubuntu~$ exit
sijune@ubuntu~$ sudo usermod -a -G sudo park
# sudo를 사용할 수 있는 사용자가 sudo권한 부여
# -a: append, -G: 그룹화
$ su - park
# Password:
park@ubuntu~$ sudo pwd
# OK
[권한]
- 블로그 - 1개의 글(공개 vs 비공개)
- Unix계열 - File & Directory(Read & Write & Execute)
# ***sijune area(rw-)***
$ touch perm.txt
$ ls -l perm.txt
$ echo 'hi' > perm.txt
$ cat perm.txt
# hi
$ pwd
# /home/sijune
# ***park area(r--)***
$ cd /home/sijune
$ cat perm.txt
# hi
$ echo 'hello' > perm.txt
# 소유자가 아닌 사람이 글을 작성하려 할때: Permission Denied
- 권한을 변경하는 방법(chmod)
# other가 파일을 읽지 못하도록 할 것이다.
# ***sijune area***
$ chmod o-r perm.txt
# other에서 r을 뺀다.
$ ls -l perm.txt
# ***park area***
$ cat perm.txt
# Permission Denied
#---------------------------------------
# other가 파일을 읽을 수 있도록 할 것이다.
# ***sijune area***
$ chmod o+r perm.txt
# other에서 r을 더한다.
$ ls -l perm.txt
# ***park area***
$ cat perm.txt
# hello
- 실행의 개념과 권한 설정
$ nano hi-machine.sh
# #!/bin/bash
# echo 'hi hi hi hi'
$ ./hi-machine.sh
# Error
# why: -rw-rw-r--
$ /bin/bash hi-machine.sh
# hi hi hi hi
$ chmod u+x hi-machine.sh
$ ls -l
# why: -rwxrw-r--
$ ./hi-machine.sh
# hi hi hi hi
-디렉토리의 권한
# ***sijune area***
$ mkdir perm;cd perm;echo 'hi' > perm.txt
$ cd ..
$ ls -l
# 읽기 권한 삭제
$ chmod o-r perm
# drwxrwx--x
# ***park area***
$ ls -l perm
$ Error
# ***sijune area***
$ chmod o+r perm
# drwxrwxr-x
# ***park area***
$ cd perm
$ touch a.txt
# Permission Denied
# drwxrwxr-x, 쓰기 권한이 없다.
# ***sijune area***
$ chmod o-x perm
# drwxrwxr--
# ***park area***
$ cd perm
# Permission Denied
# drwxrwxr--, 실행 권한이 없다.
# ***sijune area***
$ chmod -R o+w perm
# 디렉토리 내 모든 파일과 디렉토리를 재귀적으로 수정
$ chmod 111 perm.txt
# 1: --x
$ ls -al
$ chmod 222 perm.txt
# 2: -w-
$ ls -al
$ chmod 333 perm.txt
# 3: -wx
$ ls -al
$ chmod 777 perm.txt
# 7: rwx
$ ls -al
$ chmod a+w perm.txt
# a: all
$ chmod a=rwx perm.txt
# 모든 사용자에 rwx부여
[그룹]
# 3명의 사용자가 필요
# sijune, park: developer
# choi: designer
# ***sijune area***
$ cd /var
$ mkdir developer
# Error
$ ls-al
# 소유자가 root, 따라서 other권한
$ sudo mkidr developer
$ cd developer
$ echo 'hi, sijune' > sijune.txt
# Error
$ sudo groupadd developer
$ nano /etc/group
# developer 그룹이 생성
$ sudo usermod -a -G developer sijune
$ sudo usermod -a -G developer park
$ exit
# 재접속
$ cd /var/developer
# 디렉토리에 접근할 수 있는 그룹 변경
$ sudo chown root:developer .
$ ls -al
# root root -> root developer
$ echo 'hi, sijune' > sijune.txt
# error
$ sudo chmod g+w .
$ echo 'hi, sijune' > sijune.txt
# ***park area***
$ echo 'hi, park' > park.txt
$ ls -al
# ***choi area***
$ echo 'hi, choi' > choi.txt
# error
'개발 관련 지식 > 리눅스' 카테고리의 다른 글
[리눅스] 생활코딩, 리눅스를 서버로 활용하기(2) (0) | 2020.01.02 |
---|---|
[리눅스] 생활코딩, 리눅스를 서버로 활용하기 (0) | 2019.12.20 |
[리눅스] 생활코딩, 실행 (0) | 2019.12.19 |
[리눅스] 생활코딩, 디렉토리, 파일, 프로세스 (0) | 2019.12.18 |
[리눅스] 생활코딩, CLI와 쉘 (0) | 2019.12.18 |