>> Read Reply from No. 2473 article  
RE: 계정회원에게 공개자료실 제공 스크립트 (수정)

등록 2002-05-09 20:57:00     조회 4
이름 단n키    

		% 제가 성급하게 보는 바람에 /root 와 /를 혼동했네요 emoticon %
 한가지 주의하셔야 할 점은
그 common디렉토리에 계정회원의 접근 권한이 없으면
--bind로 마운트를 한다고 해도 계정회원이 접근할 수 없습니다.
 바꿔말하면 / 권한이야 어떻게 되도 관계없지만
/common 디렉토리의 권한은 반드시 계정회원이 접근이 가능하도록 해야하고, 만일 그렇지 않
다면 --bind로 마운트를 한다고 하더라도 계정회원은 접근할 수 없습니다.  chmod 777 /$home/$comm
/common # -->  이 과정은 불필요해 보입니다.  그리고 두가지 취약점이 눈에 띄는데요.
 첫번째 스크립트에서 mount할 디렉토리가 비어있는지 비어있지 않은지 확인하지 않는다는 
것하고, 두번째 스크립트에서 그 디렉토리를 umount하근 것이 실패했을 경우에(아래 스크립
트에서는 그 디렉토리에 파일이 존재할 경우) 보면 /디렉토리/* 는.. 여러개의 파라미터로 
확장 됐을 경우 에러가 납니다.. 따라서 정상종료가 되지 못할 가능성이 많습니다.  % 정상
종료라기 보다는.. 그 if ... fi문이 정상 처리가 되지 않습니다. 예를 들어 else문이 끼어있는
 경우에는 문제가 클 수 있습니다. 항상 else문이 실행될 수 있거든요. %  첫번째 문제를 무
시한다면...  if umount /$home/$comm/common 1>/dev/null 2>&1;then    rmdir /$home/$comm/common fi
 는 어떨까요.
  : 루트 디렉토리에 common 디렉토리가 있다고 가정하고 그 안에 공개 자료가
: 있다고 가정.
: mount --bind 옵션을 사용하므로, 커널이 2.4.x 이상일때 가능
:
: 아래 두개의 스크립을 크론 작업으로 적당히 작업을 걸어주면 된다
:
: 예로 00시 부터 08시 까지 공개 자료실을 운영하고 싶을때
: 마운트 스크립을 00시에 크론작업을 걸고
: 언마운트 스크립을 08시에 크론작업을 걸면 된다
:
: 아래는 스크립
:
: 계정내 common 디렉토리 생성 및 마운트 스크립트
: ----------------------------------------------------------
: #!/bin/bash
: ## common 디렉토리 생성 및 마운트
: for home in $(ls -l / |grep ^d|grep "home"|awk '{print $9}');do
:         for comm in $(ls -l /$home|grep ^d|awk '{print $9}'); do
:         if [ ! -d /$home/$comm/common ] ; then
:         mkdir /$home/$comm/common
:         fi
:         chmod 777 /$home/$comm/common
:         mount --bind /common /$home/$comm/common
:         done
: done
:
:
:
:
: 언마운트 및 계정내 common 디렉토리 삭제 스크립트
: ----------------------------------------------------------
: #!/bin/bash
:
: ## ftp process 닫음
:
: kill -9 $(ftpwho|grep "proftpd:"|awk '{print $1}')
:
: ## umount 작업
: for home in $(ls -l / |grep ^d|grep "home"|awk '{print $9}');do
:         for comm in $(ls -l /$home|grep ^d|awk '{print $9}'); do
:         if [ -d /$home/$comm/common ] ; then
:         umount /$home/$comm/common
:         fi
:         if [ ! -f /$home/$comm/common/* ] ; then
:         rm -rf /$home/$comm/common
:         fi
:         done
: done
:
: --
: 숭구리당당 숭당당 --;;
 --
ㅍ 프 플 프로 프록 프로그 프로글 프로그래 프로그램 프로그래머
이름
암호


>> 관련글
2473 계정회원에게 공개자료실 제공 스크립트  풀비누  2002.05.09  ....
  답장 RE: 계정회원에게 공개자료실 제공 스크립트 (수정)  단n키  2002.05.09  ....
  목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.30 초 ] 작업시간: [ 0 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791029220
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.