Search

리눅스(Linux) - 사용자와 권한

Created at
2019/02/11
Updated at
2021/02/21
Tags
Keywords
Linux 기초
3 more properties
생활코딩 생활코딩 리눅스 강좌 내용을 들으면서 정리하는 노트
강의 듣기 (같은 강의이니 편한 곳을 선택해서 공부하면 된다!)

1. 다중 사용자

유닉스 계열 운영체제는 여러 명이 함께 사용할 수 있는 기능을 가지고 있음
다중 사용자 시스템이 되면 시스템의 복잡도가 높아짐
$ id: uid(유저아이디), gid(그룹아이디)
$ who: 현재 접속한 사용자 리스트

2. 관리자와 일반 사용자 (Superuser vs. User)

관리자: superuser(root user)
$ sudo [명령어]: 일시적으로 super user의 권한으로 명령 실행
super user 되는 방법
$ sudo passwd -u root: unlock
$ sudo passwd -l root: lock
$ su -root: superuser 되기
root user의 홈디렉토리는 /root (일반사용자의 홈디렉토리는 /home/username)
$ exit: logout

3. 사용자의 추가 (Add User)

$ sudo useradd -m username: username으로 사용자 추가
m: 홈 디렉토리를 같이 만들어줌 (`/home/username)
$ sudo passwd username: username의 password 지정
$ su -username: username으로 접속
$ sudo usermod -a -G sudo username: (sudo 가능한 유저로 접속해서 실행할 것) username이 sudo 명령을 할 수 있도록 지정
sudo group에 username을 추가하는 것
sudo deluser username sudo: username의 sudo 권한을 삭제하기

4. 권한 (Permission)

User가 파일/디렉토리에 대해 읽기/쓰기/실행을 할 수 있는 권한을 지정
ls -l: 파일의 권한, 소유자 등의 정보 확인 가능
권한: rw-rw-r--와 같은 형태 (10자리가 아래와 같이 나눠짐)
첫번째 자리=type: -(파일) d(디렉토리)
다음 세자리=owner의 access mode: r(읽기), w(쓰기), x(실행)
다음 세자리=group의 access mode: r(읽기), w(쓰기), x(실행)
다음 세자리=other의 access mode: r(읽기), w(쓰기), x(실행)
권한 변경: chmod 명령어 사용
$ chmod [options] mode file 형태
$ chmod o-r [filename]: [filename]에 대해 other의 read 권한을 빼기
$ chmod o+r [filename]: [filename]에 대해 other의 read 권한을 추가하기
$ chmod o+w [filename]: [filename]에 대해 other의 write 권한을 추가하기
$ chmod u-r [filename]: [filename]에 대해 user(소유자)의 read 권한을 빼기
$ chmod u+r [filename]: [filename]에 대해 user(소유자)의 read 권한을 추가하기
실행(execute) 권한
$ chmod u+x [filename]: user가 해석기 프로그램 없이 [filename]을 바로 실행할 수 있게 함
directory에 대한 권한
read 권한: 해당 디렉토리 안의 파일/디렉토리를 볼 수 있는가
write 권한: 해당 디렉토리 안에 파일/디렉토리를 생성/삭제/변경할 수 있는가
execute 권한: 해당 디렉토리에 들어갈 수 있는가 (cd 명령)
$ chmod -R o+w [dirname]: [dirname] 안의 모든 디렉토리에 대해 재귀적으로 other의 write 권한을 추가하기
chmod octal modes
e.g. $ chmod 111 [filename]: 모든 사용자가 실행만 가능하게 변경
num
Permission
rwx
7
read, write and execute
rwx
6
read and write
rw-
5
read and execute
r-x
4
read only
r--
3
write and execute
-wx
2
write only
-w-
1
execute only
--x
0
none
---

5. 그룹 (Group)

특정한 사용자 그룹에 대해서 파일/디렉토리에 대한 권한을 지정할 수 있음
$ useradd -G [group_name] [username]: group에 사용자를 생성해서 추가
$ sudo groupadd [group_name]: 그룹 생성
/etc/group파일에 해당 그룹이 추가되었는지 확인
$ sudo usermod -a -G [group_name] [username]: username을 group_name에 추가하기
shell에 다시 로그인
$ sudo chown [owner_name:group_name] [file or dir]: owner & group 변경
$ sudo chmod g+w [file or dir]: group에 w 권한 추가
참고자료