一個自己寫的自動格式化,開機掛載,建立使用者和管理ACL許可權的shell指令碼

來源:互聯網
上載者:User

 

昨天中午,剛學完ACL和掛載,試著寫了一個小指令碼,假設一個小組開發一個項目,需要建立1個項目小組裡面有3個使用者,他們一個共用資料夾,為防止互相之間修改甚至刪除對方的檔案,給這個檔案夾設立SGID和STICKY .      

 

指令碼功能如下:

1. 可以自動建立一個10GB的邏輯分區,並格式化為ext3分區格式

2. 自動掛載第一步建立的分區,並且開機掛載

3. 讓使用者手動選擇建立3個使用者,自動建立並分別密碼為他們的使用者名稱,並讓建立一個指定的研發組,讓這三個使用者自動加入。

4. 讓使用者指定一個目錄,自動更改那個目錄的屬組為剛才第3步建立的組,並且加入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 << Endn+10GwEnd  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:" Ccase $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        ;;      *)        exitesac

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.