웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
퍼미션을 보기좋게 구하자!
2005.01.03 11:43
퍼미션을 보기 좋게 구하는 함수를 만들어 보았습니다.
유닉스 시스템에서
echo `ls -al`;
하면,
대략 아래 예와 같이 출력됩니다.
(서버에서 명령어 막았다면 OTL)
total 16
drwxrwxrwx 4 plorella member 512 12 9 19:08 .
drwxr-xr-x 7 plorella member 512 1 2 15:13 ..
d--------- 2 plorella member 512 12 2 20:54 000
---------- 1 plorella member 0 12 2 20:23 000.php
---------x 1 plorella member 0 12 2 20:44 001.php
--------w- 1 plorella member 0 12 2 20:44 002.php
--------wx 1 plorella member 0 12 2 20:44 003.php
-------rwx 1 plorella member 0 12 2 20:46 007.php
------x--- 1 plorella member 0 12 2 20:47 010.php
-rwxrwxrw- 1 plorella member 0 12 2 20:48 776.php
drwxrwxrwx 2 plorella member 512 12 2 20:54 777
-rwxrwxrwx 1 plorella member 0 12 2 20:47 777.php
-rwxrwxrwx 1 plorella member 239 12 2 20:35 psl_dir.php
lrwxr-xr-x 1 nobody member 11 12 9 19:04 psl_dir.symlink -> psl_dir.php
-rw-r--r-- 1 plorella member 1299 1 3 11:29 test.php
-rw-r--r-- 1 plorella member 59 12 10 19:38 test2.php
-rw-r--r-- 1 plorella member 1287 12 9 19:07 void.php
여기서 앞의 글자 10자리가 퍼미션을 뜻합니다.
고2때 유닉스OS쓰는 DUCT소프트를 사용해서 배운건데...
(아시는 분도 많겠지만)
맨 앞자리가 d면 디렉토리, l이면 심볼릭링크 (위의 예제에 하나 만들어 두었습니다; 찾아보세요;)
-면 일반 파일입니다.(하드링크도 파일로 취급하는듯... 이런건 잘 몰라서;;)
그다음 세자리가 소유자의 권한입니다.
r이면 읽기가능, w면 쓰기가능, x면 실행가능. -는 권한없음
다음 세자리는 그룹의 권한.(같은 방식으로;)
다음 세자리가 유저..라고 되있는데, 일반다른사용자의 권한인.
아래의 함수가 위와같이 파일명을 인수로 문자열로 퍼미션을 반환합니다.
function get_perms($file){
$perms = fileperms($file);
$ans .= ($perms & 0x00004000) ? 'd' : '-'; //디렉토리인지 조사
$ans .= ($perms & 0x00000100) ? 'r' : '-'; //Owner : 읽기
$ans .= ($perms & 0x00000080) ? 'w' : '-'; //Owner : 쓰기
$ans .= ($perms & 0x00000040) ? 'x' : '-'; //Owner : 실행
$ans .= ($perms & 0x00000020) ? 'r' : '-'; //Group : 읽기
$ans .= ($perms & 0x00000010) ? 'w' : '-'; //Group : 쓰기
$ans .= ($perms & 0x00000008) ? 'x' : '-'; //Group : 실행
$ans .= ($perms & 0x00000004) ? 'r' : '-'; //User : 읽기
$ans .= ($perms & 0x00000002) ? 'w' : '-'; //User : 쓰기
$ans .= ($perms & 0x00000001) ? '+ 'x' : '-'; //User : 실행
return $ans;
}
단 fileperms함수로 퍼미션정보를 얻기때문에,
심볼릭링크는 판별하지 못합니다. (심심하신분은 링크판별함수 추가해서 기능을 추가하시는것도..)
유닉스 시스템에서
echo `ls -al`;
하면,
대략 아래 예와 같이 출력됩니다.
(서버에서 명령어 막았다면 OTL)
total 16
drwxrwxrwx 4 plorella member 512 12 9 19:08 .
drwxr-xr-x 7 plorella member 512 1 2 15:13 ..
d--------- 2 plorella member 512 12 2 20:54 000
---------- 1 plorella member 0 12 2 20:23 000.php
---------x 1 plorella member 0 12 2 20:44 001.php
--------w- 1 plorella member 0 12 2 20:44 002.php
--------wx 1 plorella member 0 12 2 20:44 003.php
-------rwx 1 plorella member 0 12 2 20:46 007.php
------x--- 1 plorella member 0 12 2 20:47 010.php
-rwxrwxrw- 1 plorella member 0 12 2 20:48 776.php
drwxrwxrwx 2 plorella member 512 12 2 20:54 777
-rwxrwxrwx 1 plorella member 0 12 2 20:47 777.php
-rwxrwxrwx 1 plorella member 239 12 2 20:35 psl_dir.php
lrwxr-xr-x 1 nobody member 11 12 9 19:04 psl_dir.symlink -> psl_dir.php
-rw-r--r-- 1 plorella member 1299 1 3 11:29 test.php
-rw-r--r-- 1 plorella member 59 12 10 19:38 test2.php
-rw-r--r-- 1 plorella member 1287 12 9 19:07 void.php
여기서 앞의 글자 10자리가 퍼미션을 뜻합니다.
고2때 유닉스OS쓰는 DUCT소프트를 사용해서 배운건데...
(아시는 분도 많겠지만)
맨 앞자리가 d면 디렉토리, l이면 심볼릭링크 (위의 예제에 하나 만들어 두었습니다; 찾아보세요;)
-면 일반 파일입니다.(하드링크도 파일로 취급하는듯... 이런건 잘 몰라서;;)
그다음 세자리가 소유자의 권한입니다.
r이면 읽기가능, w면 쓰기가능, x면 실행가능. -는 권한없음
다음 세자리는 그룹의 권한.(같은 방식으로;)
다음 세자리가 유저..라고 되있는데, 일반다른사용자의 권한인.
아래의 함수가 위와같이 파일명을 인수로 문자열로 퍼미션을 반환합니다.
function get_perms($file){
$perms = fileperms($file);
$ans .= ($perms & 0x00004000) ? 'd' : '-'; //디렉토리인지 조사
$ans .= ($perms & 0x00000100) ? 'r' : '-'; //Owner : 읽기
$ans .= ($perms & 0x00000080) ? 'w' : '-'; //Owner : 쓰기
$ans .= ($perms & 0x00000040) ? 'x' : '-'; //Owner : 실행
$ans .= ($perms & 0x00000020) ? 'r' : '-'; //Group : 읽기
$ans .= ($perms & 0x00000010) ? 'w' : '-'; //Group : 쓰기
$ans .= ($perms & 0x00000008) ? 'x' : '-'; //Group : 실행
$ans .= ($perms & 0x00000004) ? 'r' : '-'; //User : 읽기
$ans .= ($perms & 0x00000002) ? 'w' : '-'; //User : 쓰기
$ans .= ($perms & 0x00000001) ? '+ 'x' : '-'; //User : 실행
return $ans;
}
단 fileperms함수로 퍼미션정보를 얻기때문에,
심볼릭링크는 판별하지 못합니다. (심심하신분은 링크판별함수 추가해서 기능을 추가하시는것도..)
댓글 4
-
Snow
2005.01.06 19:32
-
플로렐라
2005.01.06 20:16
목소리는 여전하십니다 /ㅅ/;; -
앳플군
2005.01.15 18:54
$perms = fileperms('/etc/passwd');
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
// Symbolic Link
$info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
// Regular
$info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
// Block special
$info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
// Directory
$info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
// Character special
$info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
// FIFO pipe
$info = 'p';
} else {
// Unknown
$info = 'u';
}
// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
echo $info; -
플로렐라
2005.01.26 19:57
앳플군 // 정확하게 잘 동작하는것인지요?
심볼릭링크 판별못하던데...
제목 | 글쓴이 | 날짜 |
---|---|---|
엔터키 걸러내고 코멘트 무조건 10자이상으로 하게하는 자바스크립트 소스 [9] | 교행사랑 | 2003.06.06 |
자바스크립트로 두개 이상의 페이지 동시에 열기. [4] | 이성헌 | 2003.06.08 |
Top, Back 함께사용하기 | sharim | 2003.06.11 |
[스크립트]오른쪽 버튼 누르면 메뉴나오기^^ [1] | 처절초보 | 2003.06.16 |
[스크립트] 메뉴에 마우슬 데면 서브 메뉴가 나온다 [2] | 처절초보 | 2003.06.16 |
손쉬운 롤오버 이미지 자동생성 [15] | 행복한고니 | 2003.06.16 |
웹에서그림그리기 [5] | 카이저 | 2003.06.27 |
아이프레임으로 나타낸 문서를 크기에 맞게 자동으로 사이즈 조절 [3] | DODGE | 2003.06.28 |
제로보드 사용시 아이프레임의 크기를 내용에 따라 바꿔주는 스크립트 [7] | 쿨리안 | 2003.06.28 |
마우스 오른쪽 버튼 누르면 원하는 메뉴 뜨게 만들기(다른사이트) [3] | 김주형 | 2003.07.03 |
상태바에 2개의 메세지가 뜨는 태그 | 김주형 | 2003.07.03 |
이미지 필터를 사용한 간단한 소스 [3] | NzeoZen | 2003.07.06 |
한줄씩 올라가는 뉴스티거용 인데요....제로보드하구는 어케...쩝 [12] | 하나비 | 2003.07.08 |
노프레임 홈페이지 수정 편리하게 &용량줄이기. [9] | 세죠위그이 | 2003.07.15 |
초강력 울트라..매가톤 간단...랜덤이미지.. [6] | 김한샘 | 2003.07.24 |
HTML경고창 [수정#2] [14] | [락위듀]아렌티 | 2003.07.26 |
나름대로 만들어본 가운데 팝업 스크립트 [3] | phase | 2003.07.31 |
Marquee 태그를 이용한 간단한 스크립트 [7] | 뒹굴리스트 | 2003.08.06 |
편리한 컴내꺼 포트개방 (com.ne.kr FTP Port Open) [1] | phase | 2003.08.16 |
배경도 이제 선택한다!!? [2] | NzeoZen | 2003.08.16 |
인생 무상~