리눅스는 서버용으로 만들어진 운영체제이기때문에 여러사용자가 들어와 사용하는 멀티유저 시스템이다.
여기서 한가지 문제가 발생합니다.
여러 사용자가 들어오면 서버에 올려진 비밀자료 열람과 그것을 변조,수정,삭제를 할 우려가 높아지게된다.
그리고 그 비밀자료는 일부 사용자에게만 공개해야 하는 경우가 발생하게 된다.
이 문제가 극복하기위해 리눅스에 한가지 기능을 추가되게 되는데 바로 퍼미션(권한)이라는 기능을 추가된다.
퍼미션은 말그대로 시스템에서 유지되는 권한기능이다.
참고로 윈도우도 퍼미션기능이 있긴하지만, 여러사용자들이 들어오는 서버용이 아니기에 리눅스처럼 활성화되어있지않다.
이 기능으로 사용자들은 자신한테 읽기퍼미션이 부여된 파일만 읽을 수 있고, 쓰기퍼미션이 부여된 파일만 쓰기와 수정이 가능하고, 실행퍼미션이 부여된 파일만 실행이 가능하게 된다.
이로써 비밀자료는 퍼미션이 부여된 사용자들에게만 공개할 수 있게 권한을 부여하게 된다.
그리고 "이 파일은 누구꺼지?"라는 문제에서 소유자 개념도 생겨난다.
즉. 파일을 만든 소유자, 즉 이 파일의 주인이 결정 된다.
1) 파일정보 보기
일단, 퍼미션 조정하려면 파일에 부여된 퍼미션확인
먼저 "ls -al" 명령어를 사용하여 권한을 확인 한다. 현재위치에 있는 파일들을 자세히보여주는 명령어이다.
drwxr-xr-x 2 root root 4096 Apr 22 16:59 conory
파일Type 퍼미션정보 링크수 소유자 소유그룹 용량 생성날짜 파일이름
- 파일 Type : "d" -> 디렉토리 , "l" -> 링크파일 , "-" -> 일반파일 등등..
- 퍼미션정보 : 해당 파일에 어떠한 퍼미션이 부여되어있는 지 표시
- 링크수 : 해당 파일이 링크된 수! 링크는 윈도우의 "바로가기"와 같습니다. "in [대상파일] [링크파일]" 명령으로 링크파일
- 소유자 : 해당 파일의 소유자이름
- 소유그룹 : 해당 파일을 소유한 그룹이름! 특별한 변경이 없을 경우 소유자가 속한 그룹이 소유그룹으로 지정됩니다.
- 용량 : 파일의 용량
- 생성날짜 : 파일이 생성된 날짜!
- 파일이름 : 파일이름
퍼미션 정보
rwxr-xr-x
일단은 알아두어야 할게 있는데 퍼미션 종류에는 3가지가 있다. 그리고 퍼미션의 사용자 지정에도 3가지가 있다.
* 퍼미션 종류 , () 괄호에 있는 것이 해당 퍼미션 기호
- 읽기 ( r ) : 파일의 읽기권한
- 쓰기 ( w ) : 파일의 쓰기권한
- 실행 ( x ) : 파일의 실행권한
* 퍼미션의 사용자지정
- 소유자 : 소유자에 대한 퍼미션지정
- 그룹 : 소유그룹에 대한 퍼미션지정
- 공개 : 모든사용자들에 대한 퍼미션지정
그런데 기호의 종류는 ( r w x ) 3개인데.. 퍼미션정보에는 총9개가 표시되네요.. 뭔지?
일단 세자리씩 끊어봅시다.. ( rwx r-x r-x )
"소유자 : rwx , 그룹 : r-x , 공개 : r-x" (이때 '-' 기호는 그 퍼미션은 없다는 기호)
해석해보면 " 이 파일에 대해서 소유자는 읽기(r),쓰기(w),실행(x)을 허용하고,
파일의 소유그룹에 속하고 있는 사용자들은 읽기(r),실행(x)만 허용하고,
이외에 나머지 모든 사용자들도 읽기(r),실행(x)만 허용한다. "
2) 퍼미션 변경하기
파일이 생성될때 기본적인 퍼미션이 부여된다.
하지만, 퍼미션을 변경하고 싶을 때가 발생하게 된다. (가령 이 파일을 모두에게 공개한다거나 하는...)
퍼미션 변경에는 여러가지 방법이 있지만, 여기서는 가장 쉬운방법은 바로 "chmod" 명령을 사용하면 아주 손쉽게 퍼미션을 변경할 수 있다.
chmod [변경될 퍼미션값] [변경할 파일]
여기서 [퍼미션값]을 지정해 줘야한다.
퍼미션값을 구하는 방법은 다음과 같다.
- 각 퍼미션 기호를 숫자로 변환 ( r = 4 , w = 2 , x = 1 )
예) r - x 인 경우 4 0 1
- 변환한 숫자를 합산
예) 4 0 1 인 경우 4+0+1 = 5
이런식으로 하나의 퍼미션을 숫자값으로 변환한다.
예) rwxr-xr-x 이면 rwx r-x r-x 세자리씩 끊고, 4+2+1 | 4+0+1 | 4+0+1 숫자변환 뒤 합산하면 "755" 라는 퍼미션값이 나오게된다.
그래서 " chmod 755 conory.text " 명령을 실행하면 conory.text 파일이 755에 해당되는 퍼미션으로 변경.
그리고 디렉토리도 이 방법으로 퍼미션을 변경할 수 있다.
디렉토리의 경우 "-R" 옵션을 사용하면 하위 디렉토리의 모든 디렉토리및 파일의 퍼미션이 변경된다.
예) " chmod -R 777 conory " conory 디렉토리의 하위에 위치한 모든 파일및 디렉토리 퍼미션이 777로 변경
3) 소유자 변경하기
파일의 소유자 양도를 해야 될 경우 소유자 변경을 할 수 있다.
아래 명령으로 손쉽게 변경할 수 있다.
chown [변경할 소유자] [변경할 파일]
이 명령으로 소유자뿐만 아니라 소유그룹도 변경할 수 있다.
[변경할 소유자]란에 ".그룹이름" 형식으로 입력하면 된다. " .conory "
예를 들어 conory.text의 소유자를 "conory"로, 소유그룹을 "conory2"로 동시에 변경할 경우 " chown conory.conory2 conory.text "
* 실습
conroy.text이란 파일을 만들어 퍼미션을 rwxrwxrwx(777)로 변경하고, 소유자및 소유그룹을 "conory"로 변경해보자.
단, conory라는 사용자계정이 생성되어 있어야한다.
'Server' 카테고리의 다른 글
[Server] Hosts 적용이 안될 경우 (0) | 2021.03.12 |
---|---|
[Linux] netstat 명령어 (0) | 2019.08.14 |
[Linux] 소유자와 함께 권한을 포함하여 파일 복사하기 (0) | 2019.07.11 |
[Linux] 파일 찾기 명령어 - find (0) | 2019.07.11 |
[Linux] Address already in use (Bind failed) 에러 (0) | 2019.07.11 |