생활코딩 생활코딩 리눅스 강좌 내용을 들으면서 정리하는 노트
- 강의 듣기 (같은 강의이니 편한 곳을 선택해서 공부하면 된다!)
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)
- root user의 홈디렉토리는
# 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 권한을 추가하기
chmodoctal modes- e.g.
$ chmod 111 [filename]: 모든 사용자가 실행만 가능하게 변경
- e.g.
| 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 권한 추가