1、安装samba
yum install samba
yum install samba*
2、检查SMB服务状态
systemctl status smb //查看状态
systemctl start smb //启动smb
systemctl restart smb //重启服务
systemctl stop smb //停止smb服务
3、开放防火墙对应端口
firewall-cmd --zone=public --add-port=445/tcp --permanent
firewall-cmd --reload
4、关闭SELinux
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
5、修改smb.conf文件配置共享文件夹
vim /etc/samba/smb.conf
#全局配置
[global]
workgroup = SAMBA
security = user
netbios name = 10.1.1.10 //这个根据服务器IP地址修改对应的参数
server string = SAMBA SERVER
log file = /var/log/samba/log.%m
max log size = 50
passdb backend = tdbsam
map to guest = Bad User
guest ok = yes
printing = cups
printcap name = cups
load printers = yes
cups options = raw
#公共共享文件夹
[public]
comment = Public Stuff
path = /home/public
create mask = 0664
directory mask = 0775
public = yes
writable = yes
read only =no
6、使用create_user.sh 快速创建共享文件夹及用户
调用方式为:create_user.sh <用户名> <密码> <用户组>
例如:sudo sh create_user.sh wlzx wlzx samba
代码逻辑如下:
- 定义变量接收用户名,密码,用户组这3个参数
- 判断用户组是否存在,如果不存在则创建
- 判断用户组的共享目录是否存在,如果不存在则创建并赋予770权限然后更改文件所属用户组
- 判断用户是否存在,如果不存在则创建,如果存在则退出脚本
- 创建私人文件夹 更改文件夹所属用户(用户组和用户同名)
- 赋予文件夹700权限
- 写入samba的配置文件
- 重启samba服务
create_user.sh完整代码如下:
#!/bin/bash
username=$1
password=$2
group=$3
#-----------用户组创建--------------
#检测输入检测用户组是否存在
#如果用户组存在提示已存在继续执行下一步
#如果用户组不存在则执行创建用户组 创建用户组目录
egrep "^$group" /etc/group >& /dev/null
if [ $? -ne 0 ];then
groupadd $group
fi
if [ ! -d "/home/$group" ]; then
mkdir -p /home/$group
chmod 770 -R /home/$group
chown -R :$group /home/$group
fi
#------------创建系统用户并添加到samba共享系统中----------------
#根据输入参数检测用户是否存在
#用户不存在且参数完成的情况下提示创建成功
#用户不存在参数不完整提示错误结束进程
#用户存在提示用户已存在
pdbedit -L | grep "^$username:" &>/dev/null
if [ $? -ne 0 ]; then
useradd -s /sbin/nologin -G $group $username
echo "$password" | passwd --stdin $username 1>/dev/null 2>>addsmbuser.log
echo -e "$password\n$password" | pdbedit -a -t -u $username 2>>addsmbuser.log
if [ $? -eq 0 ]; then
echo "$username 创建成功"
else
echo "错误"
exit 1
fi
else
echo -e "$username 已存在"
fi
#---------------创建共享文件夹-----------
#继承上面进程完成的参数创建对应的文件夹
mkdir -p /home/$username
chown -R $username:$group /home/$username
chmod 700 -R /home/$username
#---在smb.conf文件中追加对应的配置参数,并重启smb服务
cat <<EOF>> /etc/samba/smb.conf
[$username]
security = user
path = /home/$username
valid users = @$username
read list = @$username
write list = @$username
writable = yes
create mask = 0777
directory mask = 0777
EOF
systemctl restart smbd
注意:本文归作者所有,未经作者允许,不得转载