본문 바로가기

스터디/리눅스 커맨드라인

[리눅스] 9. 퍼미션

 

퍼미션

: 네트워크나 인터넷에 연결딘 컴퓨터라면, 원격 사용자가 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