# 본 게시글은 작성자 본인이 스터디한 내용을 바탕으로 작성된 글입니다.
# 이에, 이 글에는 일부 잘못된 정보가 포함되어 있을 수 있습니다.
# 이 글을 열람하는 것은 위 사항에 동의한 것으로 간주합니다.
# 잘못된 정보를 발견하면 댓글로 알려주시면 감사하겠습니다.
이번 포스팅에서는 파일 및 디렉토리의 권한을 확인하는 방법과 이 권한을 변경하는 몇 가지 방법과 관련된
명령어를 다뤄볼 것이다.
Step 1 : 권한 조회
리눅스에서 파일이나 디렉토리의 권한을 확인해보기 위해서는 지난 글에서 소개한 글에서 소개한 ls 명령어를 사용하면 된다. 아직 해당 글을 읽어보지 않았다면 아래 링크를 통해 읽어보길 권한다.
ls 명령어를 아무 옵션도 없이 그냥 사용하면 파일명과 디렉토리명만 나온다.
권한정보를 포함한 기타 다른 정보를 확인하려면 -l 옵션을 사용해야 한다.
자 그럼, 권한에 대한 설명을 위해 이번에도 어김없이 /usr/share/nmap 디렉토리로 이동하고,
ls 명령어를 -l 옵션과 함께 사용해보자.
# ls -l
/usr/share/nmap 디렉토리안에 있는 파일과 디렉토리의 목록을 보여준다.
권한, 파일 및 디렉토리 소유자, 소유그룹, 파일용량 및 생성/수정시간, 그리고 파일이나 디렉토리명을
확인할 수 있다.
여기서 파일인지 디렉토리인지는 맨 앞에 나온 권한정보(-rw-r--r-- 요렇게 생긴...)를 보면 알 수 있다.
권한정보의 맨 앞자리의 값이 파일은 하이픈(-)으로 표시되면, 디렉토리는 d로 표시된다.
또한, 파일이나 디렉토리에 설정된 권한 역시 권한정보를 통해 확인 할 수 있다.
위의 스크린샷에서 보이는 scripts 디렉토리의 권한정보는 어떻게 나와있나?
보시다시피 drwxr-xr-x 이다.
맨앞의 d는 파일/디렉토리 여부를 나타내는 값이고, 이것을 제외하고 보자면
총 9자리인데 이걸 3자리씩 끊어서 봐야 한다.
3자리씩의 그룹은 각각 소유자 / 그룹 / 전체(그외 사용자들)의 권한을 나타낸다.
다른 사람의 블로그에 잘 표현한 그림이 있어 빌려 왔다.
(그림 출처 : http://blog.naver.com/pk920207/110146983473)
scripts 디렉토리의 권한을 3자리씩 보면 rwx와 r-w, 그리고 또 r-w이다.
즉, script 디렉토리에 부여된 각 사용자들에 대한 권한은 아래와 같이 설명할 수 있다.
소유자권한 : 읽기(r), 쓰기(w), 실행(x) 모두 가능
그룹권한 : 읽기(r), 실행(x)만 가능, 쓰기(w) 불가
전체권한 : 읽기(r), 실행(x)만 가능, 쓰기(w) 불가
Step 2 : 권한 변경 (chmod)
권한변경을 하기 위해 사용되는 명령어로는 chmod 명령어가 있다.
chmod 명령어를 사용하려면 이에 맞는 권한 표현 방식을 먼저 알아야 한다.
chmod 명령어에서는 각 읽기,쓰기,실행 권한을 아래와 같이 숫자로 표현한다.
읽기(r) : 4
쓰기(w) : 2
실행(x) : 1
위의 표현방식대로 보자면 Step 1에서 살펴본 scripts 디렉토리의 권한(rwxr-xr-x)은
소유자권한은 rwx로 421... 4+2+1=7 이고, 그룹 및 전체권한은 r-x로 401... 4+1 = 5 이다.
즉, 755가 되는 것이다.
그럼, scripts 디렉토리의 권한을 소유자와 그룹은 읽기,쓰기,실행 모두 가능하고, 전체는 읽기만 가능하도록
변경해보도록 할 것이다.
소유자, 그룹 : 읽기(r),쓰기(w),실행(x) 모두 가능 = 4+2+1 = 7
전체 : 읽기(r)만 가능 = 4
즉, 변경될 권한은 774이고, chmod 명령어를 통해 변경을 해보자.
# chmod 774 scripts
스크린샷에서 보이는 바와 같이 ls -l 명령을 통해 rwxrwxr--로 변경되었음을 확인할 수 있다.
모든 사용자에게 모든 권한을 열어주려면 chmod 777 scripts 명령어로 하면 될 것이다.
지금까지 설명한 777 방식말고도 chmod를 이용해서 다른 방식으로도 가능하다.
소유자(u), 그룹(g), 전체(o) 즉, UGO를 사용한 방법이다.
권한 추가와 제거는 '+'와 '-'기호를 사용하고, '=' 기호는 지정된 권한으로 셋팅한다.
예를 들어 설명하자면 위에서 변경된 scripts 디렉토리의 권한 중
그룹에서 쓰기 권한을 제거하기 위한 표현 방식은 g-w 이다.
전체사용자에게 쓰기와 실행 권한을 추가하려면 o+wx를 사용하면 된다.
# chmod g-w scripts
# chmod o+wx scripts
위의 명령어처럼 각각 실행해도 되고, 아래 명령어처럼 한 줄로 입력해도 상관없다.
# chmod g-w,o+wx scripts
그룹에서 쓰기(w) 권한이 제거되었고, 전체에는 쓰기(w)와 실행(x) 권한이 추가되었다.
기존 권한을 무시하고 지정된 권한만 새로 셋팅하는 방식은 = 기호를 사용한다.
scripts 디렉토리의 권한을 다시 원상복귀시키기 위해 이 방법을 사용해보자.
원래대로 변경하려면 전체에게 부여된 권한을 읽기(r), 실행(x) 권한만 부여하면 된다.
# chmod o=rx scripts
이 포스팅을 작성하기 전의 권한대로 변경되었다.
여기저기서 알게된 쓸만한 해킹툴을 리눅스에 새로 설치하고,
권한을 변경할 때 이 글에서 배운 것을 적절히 써먹길 바란다.<끝>
'HOW TO HACK > Basics' 카테고리의 다른 글
해커라면 알아야 할 리눅스 기초-8 : 환경변수 조회, 추가, 수정 (0) | 2016.04.14 |
---|---|
해커라면 알아야 할 리눅스 기초-7 : 프로세스 관리 (0) | 2016.04.14 |
해커라면 알아야 할 리눅스 기초-5 : 네트워크 명령어 (0) | 2016.04.14 |
해커라면 알아야 할 리눅스 기초-4 : 파일 찾기, 파일 검색 (1) | 2016.04.14 |
해커라면 알아야 할 리눅스 기초-3 : 디렉토리와 파일 복사/이동/열람 (3) | 2016.04.14 |