پیرو پست «دیدن share ویندوز تحت دامنه» توی شرکت نیاز شد که تمام سیستم های لینوکسی عضو دامنه بشند. من چون اصلا نمی تونستم به این فکر کنم که پای ۴ ۵ تا سیستم بشینم و یه روند هی تکرار کنم ، اون را تبدیل به اسکریپت کردم. خیلی کامل نیست ولی از بازخورد ها استقبال می شه.
#!/bin/bash
if [ “$(whoami)” != “root” ]
then
echo “You must run this script with root.”
exit 1
fi
aptitude update
aptitude install libkrb53 krb5-config krb5-user samba winbind ntpdate ntp smbclient cifs-utils || exit 2
read -p “Enter domain name: ” DOMAIN
read -p “Active directory ip address: ” AD_IP
DOMAINU=$(echo $DOMAIN | tr ‘[a-z]’ ‘[A-Z]’)
DOMAINL=$(echo $DOMAIN | tr ‘[A-Z]’ ‘[a-z]’)
echo “$AD_IP $DOMAINL ad ad.$DOMAINL” >> /etc/hosts
mv /etc/samba/smb.conf /etc/samba/smb.conf.$(date +”%Y-%m-%d-%H-%M”)
cat <<- EOF > /etc/samba/smb.conf
realm = $DOMAINU
security = ADS
encrypt passwords = yes
password server = ad.$DOMAINL
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
workgroup = ${DOMAINL%%\.*}
EOF
mv /etc/krb5.conf /etc/krb5.conf.$(date +”%Y-%m-%d-%H-%M”)
cat <<- EOF > /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5lib.log
[libdefaults]
ticket_lifetime = 24000
clock_skew = 300
default_realm = $DOMAINU
[realms]
$DOMAINU = {
kdc = AD.$DOMAINL
admin_server = AD.$DOMAINL
default_domain = $DOMAINL
}
[domain_realm]
.$DOMAINL = $DOMAINU
$DOMAINL = $DOMAINU
EOF
echo “You must enter password of domain adminitrator: ”
net ads join -S AD.$DOMAINU -U administrator