리오집사의 기억저장소

07. 파일 접근 권한[chmod 와 chown]

참고: http://eunguru.tistory.com/93

 
 
 

0. 파일 권한

 
ls- al 명령을 실행하면 파일의 자세한 정보를 볼 수 있는데, 가장 왼쪽에 파일 접근 권한이 나타난다.
예를 들면 파일 접근 권한을 다음과 같은 비슷한 형태로 확인이 가능하다. 
 
ex)  drwxr-xr-x
 
각각,
1필드 : 타입 
     - 인 경우 : 파일
     d 인 경우 : 디렉토리
     | 인 경우 : 다른 파일을 가리키는 링크
     p 인 경우 : pipe. 두 개의 프로그램을 연결하는 파이프 파일.
     b 인 경우 : block device. 블럭 단위로 하드웨어와 반응하는 파일
     c 인 경우 : character device. 스트림 단위로 하드웨어와 반응하는 파일
 
2~4필드 : 소유주 (USER) 권한
5~7필드 : 그룹 (Group) 권한
8~10필드 : 나머지 (Others) 권한
을 나타낸다.
 
또한 알파벳은 순서대로 각각,
 
r : 읽기권한(read) = 4
w : 쓰기권한(write) = 2
x : 실행권한(eXecute) = 1
- : 권한 없음 설정 = 0
 
을 나타내며, 해당 권한이 없을 경우 그 위치에 - (권한없음) 으로 표기된다.
 
 
위의 예를 다시 보자.
 
ex)  drwxr-xr--
 
1필드는 파일의 형식을 나타내므로, d 이기 때문에 이 파일은 디렉토리를 의미한다.
 rwx / r-x / r-- 로 끊어서 해석하면 되며,

해석해보면 

소유자는 해당 파일에서 읽기, 쓰기, 실행의 모든 권한을 가지고,

그룹은 해당 파일에서 읽기, 실행 권한만 가지며,
기타 사용자는 해당 파일에서 읽기만 가능하다. 
 
 
 

 

1. 명령어 chmod ( change mode ) 

  • 기존 파일 또는 디렉토리에 대한 접근 권한(파일 모드)을 변경할 때 사용
  • 파일 모드의 변경은 파일 소유자나 슈퍼 유저만 가능
  • 파일 모드는 기호(문자)나 8진수로 지정

 

사용 방법 : chmod [권한][파일]
chmod o+rw a_file     // others에게 읽기, 쓰기 권한을 추가(+)한다. 
 
chmod o-x test    // test 파일에, 나머지 사용자(o)의 실행(x) 권한을 제거(-)한다.
 
 
여러 심볼을 묶어서 권한을 할당하는 것도 가능.
chmod ugo+rx a_file     // user, group, others에 읽기, 쓰기 권한을 추가한다 
 
chmod u+x,g+rw,o-r test    // user에게 쓰기 권한을 추가하고, group에게 읽기,쓰기 권한을 추가하고, others에게 읽기 권한을 제거한다.
 
 
그룹에 대한 권한을 숫자를 합한 값으로 한자리로 표현할 수도 있다.
     0 = --- = 0+0+0
     1 = --x = 0+0+1
     2 = -w- = 0+2+0
     3 = -wx = 0+2+1
     4 = r-- = 4+0+0
     5 = r-x = 4+0+1
     6 = rw- = 4+2+0
     7 = rwx = 4+2+1  
     
chmod 755 a_file     // 소유자에겐 7(rwx), 그룹과 나머지에겐 5(r-x) 권한부여
 
chmod 700 *     //현재 위치의 모든 파일과 폴더 권한 수정
 
chmod -R 654 test     // 옵셕 -R : 하위 디렉토리와 파일의 권한까지 변경
 
 
 
 

 

2. umask (접근 권한 마스크)

  • chmod가 기존 파일의 접근 권한을 변경할 때 사용 했다면,
  • umask는 앞으로 만들어질 파일에 미치는 명령
  • umask 명령으로 지정한 8진수는 새로 만들어질 파일에서 제거될 권한을 명시
  • 보통 group과 other의 쓰기권한에 제한을 두는 022를 많이 사용
 
ex) # umask 022
 
                
 

 

 

3. chown

 
  • 파일 또는 디렉토리의 소유자, 소유그룹 수정에 사용
  • 명령을 실행하고 나면 파일에 대한 이전 소유주는 해당 파일에 이 명령을 다시 실행할 수 없음
  • 명령어를 사용하기 위해서는 슈퍼유저 권한이 필요함(보안의 특성상 슈퍼유저만 사용)
  
chown prankster file1     //file1 파일의 소유자를 prankster로 수정
 
chown user1:user2 file2     //file2 파일의 소유자를 user1로 그룹을 user2로 수정
 
chown -cR nobody:nobody dir     //dir 폴더와 그안의 모든 파일,디렉토리의 소유자,소유그룹 변경
 
chown -R prankster:webhost uploads --from=nobody:nobody
 
(uploads디렉토리 내의 파일중 소유자가 nobody이고 소유그룹이 nobody로 되어 있는 파일의 소유자를 prankster로 변경하고 소유그룹을 webhost로 변경 )
 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band