昨天晚上在centos學(xué)習(xí)Samba配置共享文件服務(wù)器,還算順利:二三個(gè)小時(shí)左右完成了SAMBA服務(wù)的配置,昨天根據(jù)頭條文章依次執(zhí)行和配置,只有一點(diǎn)點(diǎn)小錯(cuò)!
今天事情并不多,在學(xué)習(xí)shell腳本,就想能不能用shell腳本,一次性就把CentOS linux 的文件共享服務(wù)器完成呢?
shell腳本需要完成的實(shí)驗(yàn)需求:

網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
shell腳本運(yùn)行目標(biāo):
- 1、建立WORKGROUP工作組,建立Manage、Human、Salas帳號(hào)和訪問密碼;
- 2、建立拓?fù)鋱D對(duì)應(yīng)的之public、doc、soft共享文件夾、權(quán)限、訪問;
- 3、自動(dòng)完成smb.conf文件的修改,達(dá)到網(wǎng)絡(luò)訪問的目標(biāo);
- 4、自動(dòng)運(yùn)行smb服務(wù),并加載到對(duì)應(yīng)的啟動(dòng)項(xiàng);

shell腳本在CentOS 7運(yùn)行后的歷史命令

Win7訪問CentOS7 Samba文件服務(wù)器示意圖
【Shell文件smbinstall.sh】
#!bai/bin/bash
sourcepack='samba'
smbpw="duoluo123"
group="WORKGROUP"
user1="Manage"
user2="Human"
user3="Salas"
share01="public"
share02="soft"
share03="doc"
#### 建立共享目錄####
if [ -f "/etc/samba/smb.conf" ];then
echo "Samba is install...."
else
yum -y install samba*
fi
###建立共享目錄######
if [ -d "/home/Data" ];then
echo "/home/Data is exist...."
else
mkdir /home/Data
fi
if [ -d "/home/Data/public" ];then
echo "/home/Data/public is exist...."
else
mkdir /home/Data/public
fi
if [ -d "/home/Data/doc" ];then
echo "/home/Data/doc is exist...."
else
mkdir /home/Data/doc
fi
if [ -d "/home/Data/soft" ];then
echo "/home/Data/soft is exist...."
else
mkdir /home/Data/soft
fi
if [ -f "/etc/samba/smb.conf_bak" ];then
cp -f /etc/samba/smb.conf_bak /etc/samba/smb.conf
else
cp /etc/samba/smb.conf /etc/samba/smb.conf_bak
fi
########建立用戶組和對(duì)應(yīng)的用戶#############
egroup "^$group" /etc/group >& /dev/null
if [ $? -ne 0 ]
then
groupadd "$group"
else
echo "hello"
fi
###################################################
##create user if not exists
#id $user >& /dev/null
#if [ $? -ne 0 ]
#then
# useradd -g $group $user
#fi
#create user if not exists
#egrep "^$user" /etc/passwd >& /dev/null
#if [ $? -ne 0 ]
#then
# useradd -g $group $user
#fi
#create user if not exists
##################################################
id $user1>& /dev/null
if [ $? -ne 0 ]
then
useradd "$user1" -g "$group"
else
echo "User is exist...."
fi
id $user2>& /dev/null
if [ $? -ne 0 ]
then
useradd "$user2" -g "$group"
else
echo "User is exist...."
fi
id $user3>& /dev/null
if [ $? -ne 0 ]
then
useradd "$user3" -g "$group"
else
echo "User is exist...."
fi
####################修改密碼################################
#(echo 123;echo 123) | smbpasswd -s -a MySQL
#echo -e "123n123" | smbpasswd -s -a mysql
(echo "$smbpw";echo "$smbpw") | smbpasswd -a -s "$user1"
(echo "$smbpw";echo "$smbpw") | smbpasswd -a -s "$user2"
(echo "$smbpw";echo "$smbpw") | smbpasswd -a -s "$user3"
(echo "$user1" password is "$smbpw")
(echo "$user2" password is "$smbpw")
(echo "$user3" password is "$smbpw")
chgrp "$group" /home/Data
chgrp "$group" /home/Data/soft
chgrp "$group" /home/Data/doc
chgrp "$group" /home/Data/public
chmod 777 /home/Data
chmod 770 /home/Data/soft
chmod 770 /home/Data/doc
chmod 770 /home/Data/public
#########'workgroup = Samba'########
sed -i 's/workgroup = SAMBA/workgroup = '"$group"'/g' /etc/samba/smb.conf
####################################
sed -i '$a ['"$share01"']' /etc/samba/smb.conf
sed -i '$a comment = '"$share01"' Home Directories' /etc/samba/smb.conf
sed -i '$a path = /home/Data/'"$share01"'' /etc/samba/smb.conf
sed -i '$a valid users = '"$user1"','"$user2","$user3"',root' /etc/samba/smb.conf
sed -i '$a browseable = yes' /etc/samba/smb.conf
sed -i '$a read only = no' /etc/samba/smb.conf
sed -i '$a inherit acls = yes' /etc/samba/smb.conf
#########/etc/samba/smb.conf [soft]#######
sed -i '$a ['"$share02"']' /etc/samba/smb.conf
sed -i '$a comment = '"$share02"' Home Directories' /etc/samba/smb.conf
sed -i '$a path = /home/Data/'"$share02"'' /etc/samba/smb.conf
sed -i '$a valid users = '"$user1"','"$user2","$user3"',root' /etc/samba/smb.conf
sed -i '$a browseable = yes' /etc/samba/smb.conf
sed -i '$a read only = no' /etc/samba/smb.conf
sed -i '$a inherit acls = yes' /etc/samba/smb.conf
########/etc/samba/smb.conf [doc]#######
sed -i '$a ['"$share03"']' /etc/samba/smb.conf
sed -i '$a comment = '"$share03"' Home Directories' /etc/samba/smb.conf
sed -i '$a path = /home/Data/'"$share03"'' /etc/samba/smb.conf
sed -i '$a valid users = '"$user1"','"$user2","$user3"',root' /etc/samba/smb.conf
sed -i '$a browseable = yes' /etc/samba/smb.conf
sed -i '$a read only = no' /etc/samba/smb.conf
sed -i '$a inherit acls = yes' /etc/samba/smb.conf
####################################################################################
systemctl restart smb
systemctl enable smb
作者:王維翰,資深I(lǐng)T運(yùn)維工程師,具備20多年IT及相關(guān)技術(shù)支持,為上海近千家中小企業(yè)、家庭用戶提供過專業(yè)的IT技術(shù)支持服務(wù);曾多次獲“中小企業(yè)十佳項(xiàng)目經(jīng)理”、“中小企業(yè)IT專家”!