History: 권한 검사
Source of version: 8 (current)
Copy to clipboard
{syntax type="markdown" editor="wysiwyg"} # 권한 검사 티키 권한 검사 (Tiki Permission Check, TPC): 티키 설치가 실패할 경우 정보의 추가 소스. 2012 년 10월 이후, (본 페이지에 첨부된) 독립형으로 존재하며, 또한 ((Tiki10)) 에 기능으로서 포함됨. #$ 개요 ## 티키 권한 검사란 무엇인가? 만약 터키 설치관리자와 tiki-check.php 가 실패한다면, 티키 권한 검사를 사용하여 웹서버가 요구로 하는 파일시스템 권한에 관한 추가 상세내역을 발견하여 제대로 작동하도록 설정되도록 사용될 수 있습니다. 티키 권한 검사에 대한 권한은 수동적으로 고정될 수 있거나 (FPT 혹은 SSH 를 통하거나 다른 쉘 접근방식을 통하여 작은 갯수의 파일 전송 필요) 혹은 포함된 스크립트를 통할 수 있습니다. 티키 권한 검사는 티키를 웹서버 상에서 실행히기 위하여 어떤 파일 시스템 권한이 필요한지를 알아내기 위하여 사용될 수 있습니다. 이 권한 설정은 독특할 필요가 없습니다, 그렇기 때문에 귀하는 귀하게서 원하시거나 필요에 희아혀 보안 등급에 의존하여 제한을 더 두거나 덜 두도록 선택할 수 있습니다. 티키 권한 검사는 티키 자신으로부터 독립적인 파일 권한 문제들을 알아내는데 사용될 수 있습니다. 이러한 경우, 파일 권한은 수동적으로 조절되거나 다른 프로젝트에 적절한 어떠한 방식을 통하여 조절되어야만 합니다. 티키를 설치하는데 정보를 사용하기에 가장 편리한 방식은 setup.sh 수정을 통하는 것입니다. (곧 출시 예정) ## 사전 정의된 권한 모델 다양한 웹서버 설정 및 사례로 인하여, TPC는 다양한 사전 정의된 모델들을 제공하여 설치가 그들과 작동할지 여부를 확인하도록 합니다. 올바른 모델(들)이 알려지게되면, 적절한 명령어와 함께 설치 슼릡트를 실행하는데 사용될 수 있습니다. 내장 권한 모델 (2012-11-11 부터 효력있음) - insane - mixed - morepain - moreowrry - pain - paranoia - paranoia-suphp - risky - sbox - worry 쉘 접근 없다면, 권한은 FTP 혹은 다른 방식에 의하여 설정되어야 합니다. 이는 많은 작업이 될 수도 있습니다, 그 이유는 어떤 파일과 서브디렉토리들이 쓰기가능해야하지만, 쓰기가능할 필요가 없는 것들은 쓰기 권한이 주어지면 안되기 때문입니다. 이상적이라면, 이러한 설치들 (예: 공유 호스팅)이 SuPHP 웹서버 보호를 사용하여 권한을 유용한 단계까지 (비록 이론적 최적상태가 아닐지라도) 설정하는 것이 손쉽게 되는 것입니다. ## 어디에서 구할 수 있나? 티키 권한 검사는 트렁크에 제공되며 독립형으로 다운로드 될 수 있습니다. Tiki10 내부에도 제공됩니다 (2012-10-22 이후부터). 독립형 버전은 티키의 그 어떠한 버전과도 작동을 할 것입니다 (현재 예측은 작동을 해야한다고 보고 있습니다) 본 페이지의 하단에, 알파 버전이 첨부되어 있습니다. 가장 최신 버전의 코드는 다음 위치에 있습니다: - [https://svn.code.sf.net/p/tikiwiki/code/trunk/permissioncheck/] - https://svn.code.sf.net/p/tikiwiki/code/branches/11.x/permissioncheck/] - https://svn.code.sf.net/p/tikiwiki/code/branches/10.x/permissioncheck/] #$ 티키 권한 검사 활성화 및 비활성화 하기 중요한 문제는 티키 권한 검사를 활성하 및 비활성화 하는 것입니다. 필요한 정보를 취득했으면, 비활성화하는 것을 강력 추천합니다, 이는 몇몇 하위디렉터리들이 테스트 목적으로 전역 쓰기 가능하게 설정되며 파일들의 소유권 ( (*user*/*group*) 이 대중에게 노출되기 때문입니다 (하지만, 웹서버의 설정에 따라, 가능하다면 htaccess 보호를 사용할 수도 있으실 것입니다). ##$ 티키 권한 검사를 쉘에서 이용 *sh* (혹은 *bash*, *dash*) 와 같은 쉘을 사용하여 티키 문서 루트에 있는 `prepare_permissioncheck.sh` 스크립트를 실행하십시오. ###$ 스크립트 권한 설정 티키의 문서 루트에 있음: `chmod 600 prepare_permissioncheck.sh` ###$ htaccess 권한 설정 티키의 문서 루트에 있음: `chmod 644 permissioncheck/.htaccess` 만약 **.htaccess** 이 존재하지만 웹서버에서 읽을 수 없다면, 문제가 발생할 수도 있습니다. 이는 티키 권한 검사가 쉘 스크립트에 의하여 활성화 혹은 비활성화 될 때마다 진행됩니다. 그러므로 대부분의 경우, 수동으로 진행할 필요가 없습니다. ###$ 쉘을 통하여 활성화 티키의 문서 루트에 있음: `sh prepare_permissioncheck.sh enable` ###$ 쉘을 통하여 비활성화 티키의 문서 루트에 있음: `sh prepare_permissioncheck.sh disable` ##$ 티키 권한 검사를 FTP 를 통하여 사용 쉘 접근이 없이 권한을 설정하는 것은 쉬운 것이 아닙니다. 지역 파일 권한을 설정하고 업로드를 하거나 FTP를 통하여 파일을 설정할 수 있습니다 (두 경우 모두: **enable**/**disable**). 추가로 티키 권한 검사를 **활성화** 하려면 `permissioncheck/yes.bin` 를 `permissioncheck/permission_granted.bin` 로 복사하고 **비활성** 하려면 `permissioncheck/no.bin` 를 `permissioncheck/permission_granted.bin` 로 복사하여야 합니다. (두 경우 모두: 그 후 FTP 로 다음을 업로드 합니다 `permissioncheck/permission_granted.bin`). ###$ FTP chmod 를 통한 일반 설정 `chmod 755 permissioncheck` `chmod 644 permissioncheck/check.php` `chmod 644 permissioncheck/functions.php.inc` `chmod 600 permissioncheck/_htaccess` `chmod 644 permissioncheck/.htaccess` if it exists `chmod 600 permissioncheck/.htpasswd` `chmod 644 permissioncheck/index.php` `chmod 444 permissioncheck/no.bin` `chmod 444 permissioncheck/permission_print.php.inc` `chmod 644 permissioncheck/permission_granted.bin` `chmod 644 permissioncheck/permission_granted.php.inc` `chmod 644 permissioncheck/usecases.php.inc` `chmod 644 permissioncheck/usecases.txt` `chmod 444 permissioncheck/yes.bin` **htaccess 권한 설정** 만약 티키 권한 검사가 *permissioncheck/* 내부의 기존의 **.htaccess** 에 의하여 보호된다면, 티키 문서 루트에 다음을 확인하십시오: `chmod 644 permissioncheck/.htaccess` 만약 **.htaccess** 가 존재하지만 웹서버에서 읽어들일 수 없다면, 문제가 발생할 수도 있습니다. ###$ via FTP chmod 를 통하여 활성화 `permissioncheck/new_htaccess` 를 (임의의 내용으로) 생성, `permissioncheck/yes.bin` 를 `permissioncheck/permission_granted.bin` 에 복사하고 둘 다 업로드, 다음과 같이 FTP 서버에서 파일 권한 변경: `chmod 644 permissioncheck/create_new_htaccess.php` `chmod 777 permissioncheck/insane` `chmod 777 permissioncheck/insane/check.php` `chmod 700 permissioncheck/mixed` `chmod 660 permissioncheck/mixed/check.php` `chmod 705 permissioncheck/morepain` `chmod 606 permissioncheck/morepain/check.php` `chmod 705 permissioncheck/moreworry` `chmod 604 permissioncheck/moreworry/check.php` `chmod 666 permissioncheck/new_htaccess` `chmod 701 permissioncheck/pain` `chmod 606 permissioncheck/pain/check.php` `chmod 770 permissioncheck/paranoia` `chmod 600 permissioncheck/paranoia/check.php` `chmod 701 permissioncheck/paranoia-suphp` `chmod 600 permissioncheck/paranoia-suphp/check.php` `chmod 775 permissioncheck/risky` `chmod 664 permissioncheck/risky/check.php` `chmod 701 permissioncheck/worry` `chmod 604 permissioncheck/worry/check.php` ###$ FTP chmod 를 통하여 비활성화 `permissioncheck/no.bin` 를 `permissioncheck/permission_granted.bin` 로 복사하고 업로드, FTP 서버에서 다음과 같이 권한 설정 변경: `chmod 000 permissioncheck/create_new_htaccess.php` `chmod 700 permissioncheck/insane` `chmod 600 permissioncheck/insane/check.php` `chmod 700 permissioncheck/mixed` `chmod 600 permissioncheck/mixed/check.php` `chmod 700 permissioncheck/morepain` `chmod 600 permissioncheck/morepain/check.php` `chmod 700 permissioncheck/moreworry` `chmod 600 permissioncheck/moreworry/check.php` `chmod 600 permissioncheck/new_htaccess` `chmod 700 permissioncheck/pain` `chmod 600 permissioncheck/pain/check.php` `chmod 700 permissioncheck/paranoia` `chmod 600 permissioncheck/paranoia/check.php` `chmod 700 permissioncheck/paranoia-suphp` `chmod 600 permissioncheck/paranoia-suphp/check.php` `chmod 700 permissioncheck/risky` `chmod 600 permissioncheck/risky/check.php` `chmod 700 permissioncheck/worry` `chmod 600 permissioncheck/worry/check.php` #$ 권한 개요: 예제 [http://example.org/permissioncheck/|http://example.org/permissioncheck/] [http://demo.tiki.org/pd/permissioncheck/|http://demo.tiki.org/pd/permissioncheck/] [http://demo.tiki.org/10x/permissioncheck/|http://demo.tiki.org/10x/permissioncheck/] [http://demo.tiki.org/trunk/permissioncheck/|http://demo.tiki.org/trunk/permissioncheck/] ##$ 티키 권한 검사 사용하기 자신의 티키 설치 경로 /permissioncheck/ 를 방문하면 TPC 메인 페이지를 보게 될 것입니다. 위의 예제에서 example.com 도메인을 귀하의 도메인으로 교체하십시오. 페이지가 이것은 비활성화 되어있습니다 라고 말하면, 활성화를 해주셔야 합니다. 이러한 권한들에 대하여 모든 권한 모델, 사용자, 그룹 및 파일 권한 이 보여야 하며, 이 모델이 작동을 할 것인지 여부에 대한 힌트도 보여야 합니다. 작동을 할 것 같은 모델명을 기록해두십시오. 후에 필요하게 될 것입니다 #$ 티키 권한 검사로부터의 정보 사용하기 ##$ 쉘 접근 티키 루트 디렉터리로 가서 설치 스크립트를 작동할 것처럼 보이는 모델명 중 하나와 함께 실행하십시오: `sh setup.sh $model`↵ 여기서 `$model` 를 위에 적어놓으신 것으로 교체하십시오. 이 모델이 여전히 작동하지 않는다면, 다른 것으로 시도하십시오. 작동하는 모델이 없다면, 하나씩 번갈아 가며 모든 사전 정의된 모델들을 시도해 보시고 결과를 지켜보십시오 #$ setup.sh 의 명령어 ##$ 일반 명령어 - default - menu - nothing ##$ 전통 명령어 - fix - open ##$ 사전정의된 모델들 - insane - morepain - moreworry - pain - paranoia - paranoia-suphp - risky - sbox - worry ##$ 미세 조절 가능한 권한 부분들 ###$ 전체 티키 트리 - gmr - gmw - gmx - gpr - gpw - gpx - omr - omw - omx - opr - opw - opx - umr - umw - umx - upr - upw - upx ###$ 특수 디렉터리 (웹서버 쓰기 접근) - sdgmw - sdgpw - sdomw - sdopw - sdumw - sdup↵ #$ 사용자 지정된 사용 케이스 **경고: 초보자에게는 권장되지 않습니다** 임의의 사용자 케이스가 추가될 수 있습니다. 이는 3단계를 통하여 빠르고 쉽게 이루어집니다: **1)** 사용 케이스명을 정의하고 이 이름을 서브디렉터리 `permissioncheck/` 의 밑에 이 이름으로 디렉터리를 추가하고 `permissioncheck/check.php` 를 새 사용자 케이스 서브디렉터리로 복사하십시오. **2)** 8진법의 서브디렉터리 읽기 (기본) 권한, 8진법의 서브디렉터리 쓰기 권한 및 8진법의 파일 쓰기 권한을 정의하십시오. A`permissioncheck/usecases.bin` 에 이름과 권한을 콜론으로 구분하여 추가하십시오. 줄 끝부분에서 조심하십시오, 애플 (CR) 과 윈도우 (CR+LF) 는 아직 시험하지 않았습니다. **3)** 사용자 케이스를 티키의 주 디렉터리 내부의 `setup.sh` 에 추가하십시오. 주 프로그램 내부의 스크립트의 마지막 부분: copy the line `php) permission_via_php_check ;;` 줄을 복사하시고 (*새 줄에서 해야만 합니다*) 시작하는 `php)` 를 `name)` 으로 교체하십시오, 여기서 *name* 은 위의 1)에서 선택한 것입니다. #$ 관련 컨텐츠 - [https://dev.tiki.org/Permission+Check] - ((Check|서버 검사)) - ((htaccess)) - [https://dev.tiki.org/How+to+avoid+direct+access+of+a+file]↵