>> Edit article
이름
제목
패스워드
% 제가 성급하게 보는 바람에 /root 와 /를 혼동했네요 ^^ % 한가지 주의하셔야 할 점은 그 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 : : -- : 숭구리당당 숭당당 --;; -- ㅍ 프 플 프로 프록 프로그 프로글 프로그래 프로그램 프로그래머
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved