사용자 와 ACL 권한 을 관리 하 는 셸 스 크 립 트 를 만 들 고 자동 으로 포맷 하고 마 운 트 를 켜 고 마 운 트 합 니 다.


어제 정오 에 ACL 과 마 운 트 를 마치 고 작은 스 크 립 트 를 써 보 았 습 니 다. 한 그룹 이 프로젝트 를 개발 한다 고 가정 하면 한 프로젝트 그룹 에 3 명의 사용자 가 있어 야 합 니 다. 그들 은 공유 폴 더 를 만 들 고 서로 수정 하거나 상대방 의 파일 을 삭제 하지 않도록 이 폴 더 에 SGID 와 STICKY 를 설치 해 야 합 니 다. .      
 
스 크 립 트 기능 은 다음 과 같 습 니 다.
1. 10GB 논리 파 티 션 을 자동 으로 만 들 고 ext 3 파 티 션 형식 으로 포맷 할 수 있 습 니 다.
2. 첫 번 째 로 만 든 파 티 션 을 자동 으로 마 운 트 하고 마 운 트 를 시작 합 니 다.
3. 사용자 가 수 동 으로 3 명의 사용 자 를 만 들 고 비밀 번 호 를 각각 만 들 며 지정 한 연구 개발 팀 을 만들어 이 세 명의 사용자 가 자동 으로 가입 하도록 합 니 다.
4. 사용자 에 게 디 렉 터 리 를 지정 하고 그 디 렉 터 리 의 속 그룹 을 방금 세 번 째 로 만 든 그룹 으로 자동 으로 변경 하 며 SUID 권한 과 STICY 스티커 위 치 를 추가 합 니 다.
5. 지정 한 파일 의 ACL 권한 을 설정 할 수 있 습 니 다.
6. 전체 과정 에서 사용자 의 ctrl 캡 처  + c. 작업 을 취소 하고 종료 저장 하지 않 습 니 다.
 
#!/bin/bash
#: Title:acl.sh 
#: Synopsis: 
#: Date:2011-07-30 01:48:01
#: Version: 1.0
#: Author: Dean 
#: Options:
function FS {                                        //                                      
fdisk /dev/sda << End
n

+10G
w
End
  partprobe /dev/sda
  F=`fdisk -l /dev/sda | tail -1 | cut -d/ -f3 | awk '{print $1}'`
  mkfs -t ext3 /dev/$F
  read -p "which dir your want mount?" FILE
  mkdir $FILE  &> /dev/null
  mount /dev/$F $FILE -o acl
  echo '/dev/$F              $FILE                 ext3    defaults        0 0' >> /etc/fstab
}
function GU {                                        //      
  read -p "which gruop you want make?" GP            //             
  grep $GP /etc/group || groupadd $GP                //        ,     ,    
  read -p "input 3 username:" U1 U2 U3               //          
  grep $U1 /etc/passwd || useradd $U1 && echo "$U1" | passwd -stdin $U1 &> /dev/null       //                 
  grep $U2 /etc/passwd || useradd $U2 && echo "$U2" | passwd -stdin $U2 &> /dev/null
  grep $U3 /etc/passwd || useradd $U3 && echo "$U3" | passwd -stdin $U3 &> /dev/null
  chown :$GP $FILE                                   //       
  chmod g+s o+t $GP                                  //  SGID STICKY

}
function ACLW {                                      //ACL      
  read -p "please input a file path:" P
  if [ -e $P ] ;then                                 //              
     echo "The file is not exist!" 
  else
     exit
  fi
  echo "which kind of perssition you want add the file:1)r--    2)rw-  "               //        ,r-- rw--  
  read -p 'chose:' N
  read -p "which user influced:" UN
  case $N in
    '1')
        setfacl -m u:$UN:r-- $P
        ;;
    '2')
        setfacl -m u:$UN:rw- $SP

        ;;
      *)
        echo "Wrong input!"
        ;;
  esac
}

echo "======================================================="
echo "            Program for an object team"
echo "         made by dean     version 1.0                  "
echo "======================================================="
echo "Which mode your want user: 1)FS 2)ADDUSER 3)ACL 4)ALL"      //          
echo "Useage: The FS will creat a 10G filesystem."                //     10G   ,         
read -p "Choise:" C
case $C in
    '1')trap 'echo "exit unsaved"&&exit' 2                  //trap        ,    ,   unsaved
        FS  

        ;;
    '2')trap 'echo "exit unsaved"&&exit' 2
        GU
        ;;
    '3')trap 'echo "exit unsaved"&&exit' 2
        ACLW
        ;;
    '4')trap 'echo "exit unsaved"&&exit' 2
        FS
        GU
        ACLW
        ;;
      *)
        exit
esac

좋은 웹페이지 즐겨찾기