System

리눅스 권한

hololo 2019. 9. 21. 20:44

1. 리눅스
서버용으로 만들어진 운영체제이기에, 여러 사용자가 들어와 사용하는 멀티유저 시스템이다
->여러 사용자가 들어오면 서버에 올려진 자료를 마음대로 변조, 수정, 삭제를 할 우려가 높아짐

2. 퍼미션 (permission)
특정 파일이나 디렉토리에 대하여 읽기, 쓰기, 실행하기 등의 권한을 설정해 놓은 것
- r : 읽기 권한 (파일 읽기)
- w : 쓰기 권한 (파일 저장, 삭제)
- x : 실행 권한 (파일 실행)
- 실제 퍼미션 확인해보기
   : ls -l을 입력

ls -l

한 줄씩 보자면,
파일에 대한 퍼미션 / 파일에 연결되어 있는 파일의 수 / 파일의 사용자 (생성자) / 파일을 생성한 계정이 속해 있는 그룹
그 뒤로는,
용량 / 생성날짜 / 파일이름

여기서 중요한 건, "파일에 대한 퍼미션"
맨 위의 buf를 예로 들면,

r w x r w x r - x
소유자 권한 그룹 소유자 권한 일반 사용자 권한

소유자는 읽고 쓰고 실행할 수 있으며, 그룹 소유자도 읽고 쓰고 실행이 가능하고, 일반 사용자는 읽고 실행만 가능하다

- 그룹 소유자? 해당 파일을 소유한 그룹, 특별한 변경이 없으면 소유자가 속한 그룹이 소유그룹으로 지정된다
(ex. 파일 소유자 syj1198은 그룹 syj1198로 생성이 되었다 && 특별한 변경은 없었다 )
위의 예로는, 파일의 그룹에 속하는 사용자들은 rwx이 가능하다는 의미

- Crypto의 퍼미션 맨 앞의 'd'는 디렉토리를 뜻한다
(l은 링크파일, s는 소켓파일 등)


3. 퍼미션 변경
파일이 생성될 때 기본적인 퍼미션이 부여되지만, 파일을 다른 사용자에게 공개하는 등의 경우가 생기면
퍼미션을 변경해야 한다

<chmod 명령어>
chmod [변경될 퍼미션 값] [변경할 파일]
(변경될 퍼미션 값 앞에 옵션이 추가될 수도 있다)

- 옵션
  -c : 실제로 파일의 권한이 바뀐 파일만 자세히 기술한다
  -f : 파일의 권한을 바꿀 수 없는 경우에도 에러 메시지 출력 X
  -v : 변경된 권한에 대해서 자세히 기술
  -R : 디렉터리와 그 하위 파일들의 권한을 모두 바꾼다 (제일 많이 사용)

-권한(문자모드)

Class 연산자 권한
u : user = : 권한 설정 r : read
g : group + : 권한 추가  w : write
o : other - : 권한 삭제 x : execute
a : all    

예를 들어, chmod g+w bof.c  --> 그룹 소유자 권한에 w를 더해라!라는 의미
             chmod u+x,g+rw,o+rwx bof.c  --> 유저에 실행권한, 그룹에 읽기쓰기, 일반 사용자에 읽기쓰기실행권한을!

- 권한(숫자모드)

소유자 그룹 소유자 일반 사용자
r w x r w x r w x
400 200 100 40 20 10 4 2 1
700 70 7

예를 들어, chmod 777 bof.c --> 모두에게 모든 권한을! 이라는 의미

나중에 퍼미션을 계속 다루면 익숙해질 것 이라는...말이 있다...
제발 그러길