강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
파일과 디렉토리의 퍼미션 정복하기 4편
조회 : 3,662  


파일과 디렉토리의 퍼미션 정복하기 4



ㅇ 작성자 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 박성수


ㅇ 본 자료의 자세한 모든 정보는 http://www.superuser.co.kr/linuxcommandbible/ 에서 확인하시기 바랍니다.

ㅇ 본 자료의 수정 및 편집은 허용되지않습니다.





5: 모든파일과 디렉토리의 퍼미션 한번에 설정하기


다음은 현재 디렉토리에 존재하는 모든 파일과 디렉토리의 퍼미션을 동시에 설정하는 예입니다. 현재 디렉토리에는 보시는 바와 같이 여러개의 파일이 존재합니다.



현재 디렉토리에 존재하는 모든 파일들의 퍼미션을 동시에 모두 700으로 설정 하였습니다. 그런 다음 "ls -l"로 변경된 퍼미션설정을 확인한 것입니다.





6: 특정디렉토리내의 모든파일과 서브디렉토리퍼미션 한번에 설정하기


다음은 특정 디렉토리내에 존재하는 모든 파일과 서브디렉토리내의 모든 파일과 디렉토리까지 한꺼번에 퍼미션을 설정하는 예를 보겠습니다.


현재 디렉토리내에는 보다시피 www라는 디렉토리가 존재합니다. 지금 www라는 디렉토리와 그 안에 존재하는 모든 파일과 디렉토리의 퍼미션을 한번에 755로 동일하게 설정 하였습니다.


이 경우 서브디렉토리내의 모든 파일과 디렉토리까지도 한번에 동일한 퍼미션을 설정하고자 한다면 아래의 예와 같이 -R옵션을 사용하셔야 합니다.



위의 결과로 www 디렉토리자체의 퍼미션과 www내에 존재하는 파일들과 서브디렉토리들까지 모두 755로 퍼미션이 변경 되었습니다.




7: 특정파일에 SetUID Bit 설정하기


이번에는 특정파일에 SetUID Bit를 설정하는 방법에 대해서 설명 하겠습니다. 특정 파일에 SetUID Bit가 설정되어 있다면 다른 사용자들이 그 파일을 실행하였을 경우 실행되는 동안에는 실행시킨 사용자의 권한이 아닌 파일의 소유자권한으로 실행이 됩니다.


이 퍼미션을 설정하는 방법은 4755, 4644, 4750등과 같이 지금까지 설명한 일반퍼미션앞에 4를 붙이시면 됩니다.


아래의 예는 testfile에 일반 퍼미션 755와 함께 SetUID Bit(4)를 설정한 예입니다.



위의 결과를 보시면 testfile의 퍼미션설정의 소유자 실행퍼미션 자리에 s라는 문자가 설정된 것을 보실 수 있을 것입니다. 파일의 소유자 실행퍼미션 자리에 s라는 문자가 있다면 다른 사용자들이 이 파일을 실행하더라도 파일의 소유자권한으로 실행이 됩니다.


참고로 다음의 예에서 설명하는 SetGID는 일반퍼미션앞에 2를 붙이시면 되고 Sticky Bit1을 붙이시면 됩니다.




8: 특정 파일에 SetGID bit설정하기


이번에는 SetGID를 설정해 보도록 하겠습니다. 앞의 SetUID와 동일한 방법으로 설정하지만 일반 퍼미션앞에 4가 아니라 2를 붙이면 SetGID가 설정됩니다.


아래의 예는 testfile에 일반퍼미션 755와 함께 SetGID Bit(2)를 설정한 예입니다.



chmod 명령어가 실행된 후에 testfile의 그룹소유자의 실행퍼미션 자리를 보시면 s라는 문자가 설정된 것을 확인할 수 있습니다.


그룹소유자의 실행퍼미션자리에 s로 설정되면 SetGID로 설정되었음을 의미합니다. SetGID가 설정된 파일을 다른 사용자가 실행을 시키면 실행시킨 사용자의 권한으로 파일실행이 되는 것이 아니라 파일의 소유자그룹권한으로 실행이 됩니다.





9: 특정 디렉토리에 Sticky Bit설정하는 퍼미션 설정하기


이번에는 특정 디렉토리에 Sticky Bit를 설정하는 예를 보도록 하겠습니다. Sticky Bit라고 하면 조금은 생소하게 느끼시는 독자분이 계실지는 모르겠습니다.


리눅스에서는 흔히 /tmp 디렉토리를 Sticky Bit로 설정 합니다. /tmp디렉토리내에서 특정 파일을 생성하면 생성한 사용자의 소유로 파일이 생성됩니다.

그리고 다른 사용자가 /tmp디렉토리에 다른 파일을 생성하면 역시 생성한 사용자의 소유로 파일이 생성됩니다. 파일을 삭제할 때에도 생성한 사람만이 삭제를 할 수가 있습니다.


이런 디렉토리를 흔히 공유디렉토리라고 합니다. , 파일생성을 아무나 할 수 있으며 생성된 파일은 각각 생성한 사람의 소유로 되며 수정, 삭제 또한 생성한 사람만이 그 파일을 수정하고, 지울 수 있도록 되어 있습니다. 이런 "공동장소"로 사용되는 디렉토리설정을 하기 위하여 Sticky Bit를 설정합니다.


설정하는 방법은 일반퍼미션앞에 1을 붙이시면 됩니다.


다음의 예를 보시기 바랍니다.



위의 예에서 testdir이라는 디렉토리의 퍼미션을 1755로 설정하면서 Sticky Bit를 부여하였습니다. 부여한 결과 다른사용자 실행 퍼미션자리에 보시면 t라는 문자로 셋팅된 것을 확인하실 수 있습니다. t라는 문자의 의미가 Sticky Bit라는 것을 의미합니다.


이제부터 testdir이라는 디렉토리는 공유목적으로 사용할 수 있도록 Sticky Bit 설정이 된 것입니다.


, bible이라는 사용자가 testdirbiblefile이라는 파일을 생성하였다고 하면 이 biblefilebible이라는 사용자의 소유로 생성되고, 삭제와 변경도 bible이라는 사용자만이 할 수가 있습니다.


그리고 sspark이라는 사용자가 testdirssparkfile이라는 파일을 생성하였다고 하면 이 ssparkfilesspark이라는 사용자의 소유로 되고, 삭제와 변경도 sspark이라는 사용자만이 할 수가 있습니다. 물론 다른 사용자들도 모두 동일하게 적용이 됩니다.


하지만, Sticky Bit가 설정된 디렉토리내의 파일들에 대하여 root는 언제든 마음대로 변경,삭제등이 가능합니다.


여러분 이제 파일과 디렉토리의 퍼미션에 대해서 어느정도 자신감이 생겼으리라 생각합니다. 파일과 디렉토리의 퍼미션설정에 대한 필자의 소임을 마치고 이제 실무에서 적용하는 것에 대해서는 여러분들께 맡기도록 하겠습니다. 부디 필자의 소망처럼 정확한 이해와 효율적인 사용으로 힘있고 강력한 서버관리자가 되시길 바랍니다.


리눅스포털 –수퍼유저코리아- www.superuser.co.kr



[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1235


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
박성수
파파
헐렁고수