소유권 확인
먼저 소유권을 확인하기 위해서는 아래 명령어로 확인이 가능하다.
ls -al위 명령어를 입력하면 아래와 같은 형태로 결과물이 나온다.
-rw-r--r-- 1 kimkc staff 36864 5 10 2015 Currency.db여기서 소유권자가 kimkc이고, 그룹 식별자가 staff이다.
파일 소유권 변경
root 권한에에서 아래 명령어를 실행한다.
명령어
chown {소유권자}:{그룹식별자} {소유권을 변경하고 싶은 파일명}test.sh 파일명의 소유권자를 aaa로 하고, 그룹식별자를 bbb로 변경하는 명령어는 아래와 같다.
예제
chown aaa:bbb test.sh디렉토리 소유권 변경
root 권한에에서 아래 명령어를 실행한다.
명령어
chown {소유권자}:{그룹식별자} {소유권을 변경하고 싶은 디렉토리명}/home/test 디렉토리만 소유권자를 aaa로 하고, 그룹식별자를 bbb로 변경하는 명령어는 아래와 같다.
예제
chown aaa:bbb /home/test위 명령어로 디렉토리 소유권은 변경하게 되면 /home/test 디렉토리만 소유권이 변경되고, 이하 디렉토리는 소유권이 변경되지 않는다.
하위 디렉토리까지 모두 소유권 변경
root 권한에에서 아래 명령어를 실행한다.
명령어
chown -R {소유권자}:{그룹식별자} {소유권을 변경하고 싶은 디렉토리명}/home/test 디렉토리와 이하 모든 디렉토리 및 파일들의 소유권자를 aaa로 하고, 그룹식별자를 bbb로 변경하는 명령어는 아래와 같다.
예제
chown -R aaa:bbb /home/test위 명령어로 디렉토리 소유권은 변경하게 되면 /home/test 디렉토리는 물론 이하 모든 디렉토리 소유권이 변경된다.
윈도우에서도 특정 폴더 등은 시스템 관리라던지 중요한 것들은 실행이나 편집 등에 권한을 요청하게끔 되어 있습니다.
당연히 리눅스에도 관련 기능이 있고, 윈도우보다 더 강력하다고 생각이 되네요.
그래서 처음 리눅스를 접하고 이것저것 하다보면 막힐 때가 있는데 그 중 하나가 permission denied 어쩌고 저쩌고가 됩니다.
root 권한이 없는 상태로 root 권한을 요하는 것을 수정할 때는 sudo 명령어로 해결을 하면 되는데
그게 아닌 경우에는 참 난감하기도 하죠
쨌든
0. chmod, chown
A. chmod
chmod 는 Change Mode의 약자입니다.
권한을 변경하는데 사용되는 명령어입니다.
다소 복잡할수도 있는데 중요한 거니 좀 더 자세한 건
ko.wikipedia.org/wiki/Chmod
chmod - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 chmod(change mode의 축약어)명령어는 유닉스와 유닉스 계통 환경 안에서 쓰이는 셸 명령어이다. 이 명령어는 파일들이나 디렉터리
ko.wikipedia.org
요기를 참고해 주세요.
B. chown
chown 는 Change Owner의 약자입니다.
소유자를 변경하는데 쓰는 명령어이고 마찬가지로 중요한 거니
ko.wikipedia.org/wiki/Chown
chown - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전.
ko.wikipedia.org
자세한 건 여기를 봐 주세요.
1. 폴더 혹은 파일의 권한 확인하기
터미널에서 해당 폴더나 파일이 있는 경로까지 이동한 후
ls -al를 입력하게 되면 권한을 비롯한 소유자 정보 등이 나오게 됩니다.
요런 식으로요.
다른 파일들을 건드리는 건 좀 저어되니
아무 파일이나 하나 만들고 권한을 변경하는 걸 해 보도록 하겠습니다.
터미널에
vi chmodtest.txt를 입력하고 아무거나 입력하고 저장한 후 종료해 주세요.
그리고나서 터미널에 ls -al 을 입력하면
이런식으로 나오게 됩니다.
일단 봐야 될 건 맨 왼쪽에 나오는 권한 정보 와 3,4번째에 나오는 소유자 정보 입니다.
2. 권한 변경
터미널에
sudo chmod 777 chmodtest.txt를 입력하고 암호를 입력한 후 다시한번 권한을 확인해 보면(ls -al)
맨 왼쪽의 권한이 바뀌어 있는 것을 확인할 수 있습니다.
이제 해당 파일은 소유자만이 아니라 누구든 읽고 수정하고 실행할 수 있게 되었다는 의미인데요.
보안상으로는 안 좋은 거긴 한데 별 상관 없는 경우에는 사용을 하기도 합니다.
근데 실행은 좀 그렇다 싶으면 777을 766 으로 바꿔주면 되고 읽게만 하고 싶다면 744로 바꿔주면 됩니다.
이 숫자가 처음에는 뭔소리야 이게 했는데 이해하니 뭔 소린지는 알겠더군요.
ls -al 을 입력했을 때 나오는 정보의 제일 왼쪽 정보는 권한에 관한 거라고 말을 했었는데요
rwxrwxrwx 요렇게 되어 있는 부분(2번째 글자부터)
이걸 좀 더 보기 편하게 하면 rwx rwx rwx 로 표시할 수 있는데요
각각 소유자, 소유자그룹, 공개사용자 의 권한을 나타냅니다.
r 은 read 의 r 이고
w 는 write 의 w 이며
x 는 excute 의 x 입니다.
이렇게 생각하면 권한을 표시하는 것을 이해하는 거까지는 되는데 숫자는?
x => 1, w=> 2, r=>4 로 환산이 되고
세자리 숫자인데 8진법입니다. 즉 각 권한을 더한 것이 위 숫자가 된다는 거지요
가령 읽기와 쓰기만 주려고 한다면 6이 rw- 가 되는 겁니다.
이 숫자를 각 자릿수 에 표시한 게 777 이든 755든 요렇게 되는 거죠.
3. 소유자 변경
소유자를 변경할 일은 별로 없긴 할텐데
chown 소유자:소유자그룹 대상
이 기본 형태가 됩니다.
앞에서 만든 chmodtest.txt 파일을 대상으로 변경을 해 본다면
sudo chown root:root chmodtest.txt를 터미널에 입력하고 암호를 입력하면
요렇게 변경된 것을 알 수 있습니다.
이제 소유자가 변경이 되었기 때문에 root 이외의 사용자가 파일을 편집하려고 하면 읽기전용으로 되어 편집은 불가능하게 됩니다.
그럼 변경하려고 하면 다시 권한을 줘야 되는데 임시로 할 거면 sudo를 하면 되고 권한 변경은
sudo chown rexter:rexter chmodtest.txt를 입력해주면 됩니다.