samba は踊る方🪇じゃありませんw
HDD のデータ整理してたら、懐かしいスクリプト出てきよったけぇ、👋しおるのも寂しいけんココに貼っとく📝
対象📯
FreeBSD 10.3-RELEASE 以降でその時点での net/samba* が対象😆
何気に見易いスクリプト(自画自賛)
useradd.sh
userdel.sh
上記のファイルネームで動きを変えたモダンな作り(大嘘)
cp でヤルも良し、inode 節約するなら ln でハードリンクなりスタティックリンク張って、使う様に作ったスクリプト🙌
ご本尊😊
useradd.sh
#!/bin/sh
#
# SAMBA user add and delete script.
# used in the UID root
#
# 2016/04/22 by JE3KMZ
#
CRUNCH=`/usr/bin/basename $0`
SEARCHGROUP()
{
OK=0
for a in `( /usr/bin/awk -F: '{print $1}' /etc/group | /usr/bin/grep -Ev '^$|^#' )`
do
if /bin/test "_$a" = "_$INGROUPNAME"
then
OUTGROUPNAME=$INGROUPNAME
OK=1
fi
done
if /bin/test "_0" = "_"$OK
then
echo Unknown groupname.
exit 2
fi
}
CREATE()
{
SWITCHCHECK
SEARCHGROUP
echo "--Adduser "$USERNAME
/usr/sbin/pw adduser -n$USERNAME -g$GROUPNAME -c$USERNAME -s/usr/sbin/nologin -d/nonexistent
if /bin/test ! "$PASSWORD"
then
PASSWORD=$USERNAME
fi
# /usr/bin/printf "$PASSWORD\n$PASSWORD\n" | /usr/local/bin/smbpasswd -a -s $USERNAME
/usr/bin/printf "$PASSWORD\n$PASSWORD\n" | /usr/local/bin/pdbedit --create --user=$USERNAME --group=$GROUPNAME --password-from-stdin
}
DESTROY()
{
SWITCHCHECK
echo "--Deleteuser "$USERNAME
# /usr/local/bin/smbpasswd -x $USERNAME
/usr/local/bin/pdbedit --delete --user=$USERNAME
/usr/sbin/pw deluser -n$USERNAME
}
USAGE()
{
case $CRUNCH in
useradd*)
PRINTMSG=" -g GROUP <-p PASSWORD>"
;;
userdel*)
PRINTMSG=""
;;
*)
echo The shell script file name is invalid.
exit 2
;;
esac
echo $CRUNCH" SAMBA User add and del Tools"
echo "Usage: "$CRUNCH" -u USERNAME"$PRINTMSG
exit 1
}
SWITCHCHECK()
{
OK=0
while /bin/test ! "_$1" = "_"
do
case $1 in
-[Uu]*)
shift
USERNAME=$1
OK=1
;;
-[Pp]*)
shift
PASSWORD=$1
OK=2
;;
-[Gg]*)
shift
INGROUPNAME=$1
OK=4
;;
*)
echo Unknown parameter.
exit 2
;;
esac
shift
done
if /bin/test "$OK" = "0"
then
USAGE
else
# echo "UID => "$USERNAME
# echo "GID => "$INGROUPNAME
# echo "PWD => "$PASSWORD
fi
}
MAIN()
{
case $CRUNCH in
useradd*)
CREATE
;;
userdel*)
DESTROY
;;
*)
echo The shell script file name is invalid.
;;
esac
}
MAIN
exit
結び
チョットしたスクリプトの分岐とかのお手本になると筆者は喜びます✌