创建samba共享文件夹脚本

原创 2016年08月29日 11:22:34

创建samba共享文件夹的脚本,也可以删除创建的samba共享文件夹。创建时输入参数为用户名和密码;删除时为用户名。


#!/bin/sh

DATA_FOLDER_PATH=/var/cache/share_folder
SMB_CONFIG=/etc/samba/smb.conf

# 检查参数个数
if [ $# -ne 2 ] && [ $# -ne 3 ] ; then
	echo "ERROR:parameters number is $# !"
	echo "usage: $0 [add/del] username password"
	exit 1
fi

add_system_user()
{
	useradd $1
}

del_system_user()
{
	userdel $1
	rm -rf /home/$1
}

add_smb_user()
{
	smbpasswd -a $1 -s <<EOF
$2
$2
EOF
}

del_smb_user()
{
	smbpasswd -x $1
}

add_smb_config()
{
	mkdir -p $2
	chown $1:$1 $2

	echo "[$1]" 								>> $SMB_CONFIG
	echo "comment = private homework"			>> $SMB_CONFIG
	echo "path = $2" 							>> $SMB_CONFIG
	echo "browseable = no"						>> $SMB_CONFIG
	echo "public = no"							>> $SMB_CONFIG
	echo "printable = no"						>> $SMB_CONFIG
	echo "writable = yes"						>> $SMB_CONFIG
	echo "write list = $1"						>> $SMB_CONFIG
}

del_smb_config()
{
	if [ -d "$DATA_FOLDER_PATH/$user_name" ];then
		rm -rf $DATA_FOLDER_PATH/$user_name
	fi

	start=`sed -n "/\[$1\]/=" $SMB_CONFIG`
	end=$(($start+7))
	if [ -z "$start" ] || [ -z "$end" ];then
		echo "Not found line."
		exit 0
	fi

	sed -i "${start},${end}d" $SMB_CONFIG
}

option=$1
user_name=$2
password=$3

add_samba_user()
{
	if [ ! -d $DATA_FOLDER_PATH ]; then
		mkdir -p $DATA_FOLDER_PATH
	fi
	
	if [ -d "$DATA_FOLDER_PATH/$user_name" ];then
		echo "Student data folder $DATA_FOLDER_PATH/$user_name exist"
		exit 0
	fi
	
	add_system_user $user_name
	add_smb_user $user_name $password
	add_smb_config	$user_name $DATA_FOLDER_PATH/$user_name
	service smb restart
}

del_samba_user()
{
	del_system_user $user_name
	del_smb_user $user_name
	del_smb_config	$user_name $DATA_FOLDER_PATH/$user_name
	service smb restart
}

case "$option" in
	"add")
	add_samba_user $1
	;;
	"del")
	del_samba_user $1
	;;
	*) echo "parameters error!"
	;;
esac

exit 0


centOS7 建立samba服务器,实现目录共享

建立samba服务器,实现共享centOS系统的目录 第一步: 通过yum库安装samba 。因为安装samba服务器,需要安装很多依赖文件,yum源安装的时候会自动安装相关依赖文件。 运行 yum ...
  • lanju2012
  • lanju2012
  • 2016年12月01日 14:50
  • 851

在CentOS上配置SAMBA共享目录

SAMBA 是linux下的一个服务,在Linux服务器上设置一个共享目录,让windows主机可以访问(rw)这个目录 首先查看系统上有没有安装samba服务器端,使用命令rpm -qa | gr...
  • qiumei1101381170
  • qiumei1101381170
  • 2016年11月21日 23:21
  • 5153

samba配置window共享文件夹

在Ubuntu安装好samba,具体步骤为: 安装samba:sudo apt-get install samba 安装smbclient:sudo apt-get install...
  • u011784994
  • u011784994
  • 2017年07月20日 11:48
  • 729

用Samba创建配置共享文件夹 (无用户名密码验证)

什么是Samba? https://www.samba.org/samba/what_is_samba.html 以下摘选网络上对Samba的几个权威描述 samba.org的描述: Samb...
  • feilianbb
  • feilianbb
  • 2016年01月21日 16:51
  • 2039

ubuntu利用samba共享文件夹给windows

1.安装samba sudo apt-get install samba 2.修改samba的配置文件 sudo vi /etc/samba/smb.conf 新增配置如下: [sh...
  • rongyongfeikai2
  • rongyongfeikai2
  • 2015年05月25日 21:01
  • 915

Linux(Ubuntu版本)下配置samba实现文件夹共享的方法:

虽然有很多这方面的资料,但是都存在很大的缺陷,要不就是太过于简单,要不就是存在错误。自己亲身实践过的,遇到的问题也附有相应的解决方法。 首先需要先安装samba: A、 sudo apt-get i...
  • chencangui
  • chencangui
  • 2015年09月14日 20:46
  • 2420

samba共享文件夹

由于之前用的vmware共享,总是会出现修改代码之后,在linux里面编译,代码又没有改过来,总是会有延迟,或者需要重新保存几遍才可以,效率低下; 故现在想把samba共享搭建起来,在windows下...
  • mz454619501
  • mz454619501
  • 2015年03月10日 11:23
  • 599

搭建samba文件服务器,与Windows共享

smb.conf的配置 [global]  workgroup=WORKGROUP  Server string=myserver  netbios name=wispserver  sec...
  • zeng_84_long
  • zeng_84_long
  • 2012年11月07日 13:42
  • 938

samba共享目录

原文链接: http://forum.ubuntu.org.cn/viewtopic.php?t=20852 首先要安装samba:  代码: sudo apt-get i...
  • songqingxi
  • songqingxi
  • 2011年08月23日 08:56
  • 5470

Debian上简单的Samba文件共享服务器设置

这是一个最小的Samba设置使其他机器能够访问让Debian机器上的文件。 安装 Samba # aptitude install samba 配置Samba守...
  • Kevinlou2008
  • Kevinlou2008
  • 2014年04月03日 13:17
  • 1165
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:创建samba共享文件夹脚本
举报原因:
原因补充:

(最多只允许输入30个字)