퍼미션
: 네트워크나 인터넷에 연결딘 컴퓨터라면, 원격 사용자가 ssh(secure shell) 를 통해 로그인해서 컴푸터를 조작할 수 있다.
이 뿐만 아니라, 다양하게 조작할 수 있는 방법이 있는데, 이러한 경우들 처럼 다른 사용자로 부터 보호하기 위한 방법이 필요한데 이러한 기능을 퍼미션이라고 한다.
- id : 사용자 ID 정보를 표시한다.
- chmod : 파일 모드를 변경한다.
- umask : 기본 파일 퍼미션을 설정한다.
- su : 다른 사용자로 쉘을 실행한다.
- sudo : 다른 사용자로 명령어를 실행한다.
- chown : 파일 소유자를 변경한다.
- chgrp : 파일 그룹 사용자를 변경한다.
- passwd : 사용자 비밀번호를 변경한다.
1. 소유자, 그룹 멤버, 기타 사용자
$ file /etc/shadow
/etc/shadow: reqular file, no read permission
$ less /etc/shadow
/etc/shadow: Permission denied
위 오류 메시지의 원인은 이 파일을 읽을 권한이 없는 일반 사용자이기 때문이다.
유닉스 보안 모델에서 사용자는 파일과 디렉토리를 소유할 수 있다. 사용자가 파일 또는 디렉토리를 소유할 때, 그 사용자는 소유물의 접근을 제어한다. 또한, 한 명이상의 그룹으로 구성될 수 있고 그룹에 접근을 허용하는 것도 가능하다.
소유자는 모든 사용자에게 접근 권한 이룹를 줄 수 있다. 자신의 사용자 ID 정보를 확인하기 위해서는 id 명령어를 사용한다.
iseungmin@iseungmin-ui-MacBookAir ~ id
uid=501(iseungmin) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),701(com.apple.sharepoint.group.1),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),400(com.apple.access_remote_ae)
사용자들은 사용자 ID(user ID) 또는 uid라 불리는 번호를 할당 받는다. 그러고 나서 사용자는 주 그룹ID(gid)를 할당 받고 추가로 다른 그룹에도 속할 수 있다.
사용자 계정은 /etc/passwd 파일에 정의되어 있고, 그룹은 /etc/group 파일에 정의되어 있다.
2. 읽기, 쓰기, 실행
: 파일과 디렉토리의 접근권은 읽기, 쓰기, 실행 권한이란 용어로 정의된다.
-rw-r--r-- 1 iseungmin staff 61446 4 11 14:51 ls-output.txt
# 파일 속성 내역
# - : 파일 종류
# rw- : Owner 퍼미션
# r-- : Group 퍼미션
# r-- : World 퍼미션
파일 종류
- - : 일반 파일
- d : 디렉토리
- l : 심볼릭 링크
- c : 문자 특수 파일
- b : 블록 특수 파일 ( 하드 드라이브 등 )
퍼미션 속성
- r : 파일 열기와 읽기를 허용
- w : 파일 쓰기 또는 잘라내기는 허용하지만, 이름 변경이나 파일 삭제는 허용되지 않는다.
- x : 파일이 프로그램으로 처리되고 파일이 실행되도록 허용한다.
chmod - 파일 모드 변경
: 파일 또는 디렉토리의 모드를 변경하기 위해서는 chmod 명령어를 사용한다. 변경은 오직 파일 소유자나 슈퍼유저만 가능하다.
chmod 기호 표기법
- u : user의 약자, 파일이나 디렉토리 소유자를 의미한다.
- g : 그룹 소유자
- o : other의 약자, 기타 사용자
- a : all의 약자, u, g, o의 조합
chmod 기호 표기법 예제
- u+x : 소유자에게 실행 권한을 추가한다.
- u-x : 소유자에게 실행 권한을 제거한다.
- +x: 모든 사용자에게 실행 권한을 추가한다.
- o-rw : 소유자와 그룹 소유자가 아닌 사용자의 읽기, 쓰기 권한을 제거한다.
umask
: 파일이 생성될 때 주어진 기본 퍼미션을 제어한다.
iseungmin@iseungmin-ui-MacBookAir ~ umask
022
# 0002 나 0022가 기본 값이다.
## 의미
# --- rw- rw- rw-
# 000 000 000 010
# --- rw- rw- r--
# 기타 사용자 쓰기 권한이 제거되었다.
마스크에 1이 나타나는 곳을 보니 속성이 제거되었다.
3. 사용자 ID 변경
: 관리 작업을 실행하기 위해 슈퍼유저 특권을 얻기를 원하거나, 테스트 계정으로 이러한 작업을 수행하기 위해 일반 사용자가
"되는 것" 또한 원한다. 다른 사용자의 ID를 사용하는 방법은 세 가지가 있다.
- 로그아웃 후 다른 사용자로 로그인하기
- su 명령어 사용하기
- sudo 명령어 사용하기
su - 다른 사용자의 ID와 그룹 ID로 쉘 실행
: 다른 사용자로 쉘을 시작하기 위해 멍령어를 사용한다.
# 슈퍼유저 쉘 사용
$ su -
password:
$ #
슈퍼유저의 비밀번호를 입력하고 쉘 프롬프트를 확인해 보면 슈퍼유저의 특권을 가진 쉘 프롬프트 ($가 아닌 #)을 확인할 수 있다.
단일 명령 실행
- su -c 'command'
이 형태를 사용하면 단일 명령 행이 실행을 위한 새로운 쉘에 전달된다.
sudo - 다른 사용자로 명령어 실행
: 일반 사용자가 다른 사용자( 보통은 슈파유저로 많이 사용한다. )로 명령을 실행할 수 있게끔 sudo를 설정한다. sudo 명령어는 su 명령어와는 다르게 슈퍼유저의 비밀번호를 오규하지 않는다.
chown - 파일 소유자와 그룹 변경
: 파일 또는 디렉토리의 소유자와 그룹 소유자를 변경하는 데 사용하는 명령어이다.
- chown [owner][:[group]] file ... : 첫 번째 인자에 필요한 파일 소유자와 파일 그룹 소유자 변경할 수 있다.
chgrp - 그룹 소유권 변경
: 그룹 소유권을 변경하기 위한 명령어이다.
4. 사용자 비밀번호 변경
: 슈퍼유저 특권을 가지고 있다면 자신과 다른 사용자의 비밀번호를 변경할 수 있다.
- passwd [user]
passwd 명령어는 강력한 비밀번호의 사용을 강요하기 때문에 비밀번호가 너무 짧거나 이전 비밀번호와 유사하면 설정을 거부할 것이다.
'스터디 > 리눅스 커맨드라인' 카테고리의 다른 글
[리눅스] 11. 환경 (0) | 2022.04.27 |
---|---|
[리눅스] 10. 프로세스 (0) | 2022.04.25 |
[리눅스] 8. 고급 키보드 기법 (0) | 2022.04.18 |
[리눅스] 7. 확장과 인용 (0) | 2022.04.18 |
[리눅스] 6. 리다이렉션 (0) | 2022.04.11 |