0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[obsolete] net/samba* AD に参加しないユーザの登録と削除スクリプト

Posted at

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

結び

チョットしたスクリプトの分岐とかのお手本になると筆者は喜びます✌

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?