需求:在Linux上搭建一个文件共享服务,创建不同的账号给予不同的权限,在windows可以直接访问该共享目录
介绍
Samba 是一个强大的工具,使得不同操作系统之间可以无缝地共享文件和资源,促进了跨平台环境下的协作和通信。
安装samba
apt install samba
创建共享目录
创建的目录就是后面在windows主机上能直接访问的目录
mkdir /home/recall/wenshu/public
编辑配置文件
vi /etc/samba/smb.conf
[public] path = /home/recall/wenshu/public public = yes writable = yes valid users = wenshuuser1,wenshuuser2,wenshuuser3,wenshuuser4,wenshuuser5,wenshuuser6,wenshuuser7,wenshuuser8,wenshuuser9,wenshuuser10,wenshuuser11,wenshuuser12,wenshuuser13,wenshuuser14,wenshuuser15,wenshuuser16,wenshuuser17,wenshuuser18,wenshuuser19,wenshuuser20,wenshuuser21,wenshuuser22,wenshuuser23,wenshuuser24,wenshuuser25,wenshuuser26,wenshuuser27,wenshuuser28,wenshuuser29,wenshuuser30 read list = wenshuuser1,wenshuuser2,wenshuuser3,wenshuuser4,wenshuuser5,wenshuuser6,wenshuuser7,wenshuuser8,wenshuuser9,wenshuuser10,wenshuuser11,wenshuuser12,wenshuuser13,wenshuuser14,wenshuuser15,wenshuuser16,wenshuuser17,wenshuuser18,wenshuuser19,wenshuuser20,wenshuuser21,wenshuuser22,wenshuuser23,wenshuuser24,wenshuuser25,wenshuuser26,wenshuuser27,wenshuuser28,wenshuuser29,wenshuuser30 write list = wenshuuser1,wenshuuser2,wenshuuser3,wenshuuser4,wenshuuser5 admin users = wenshuuser1,wenshuuser2,wenshuuser3,wenshuuser4,wenshuuser5 available = yes
参数说明
read list 只读
write list 可写入
admin users 可进行任意操作
path 共享目录
使用shell脚本批量创建ubuntu系统用户
build_user.sh
#!/bin/bash# 数字前缀PREFIX="wenshuuser"# 起始数字START=41# 结束数字END=45# 输出文件OUTPUT_FILE="user_accounts.txt"# 创建或清空输出文件> $OUTPUT_FILE# 创建账户并写入文件for ((i = START; i <= END; i++)); do USERNAME="$PREFIX$i" PASSWORD=$(openssl rand -base64 12) # 随机生成 12 位密码 # 创建账户 sudo useradd -m -s /bin/bash -p $(openssl passwd -1 $PASSWORD) $USERNAME echo "Created user: $USERNAME with password: $PASSWORD" >> $OUTPUT_FILEdoneecho "User accounts and passwords written to $OUTPUT_FILE"
执行改脚本命令
执行命令 sudo bash build_user.sh
使用shell脚本批量创建samba用户
build_samba_user.sh
#!/bin/bash# 数字前缀PREFIX="wenshuuser"# 起始数字START=41# 结束数字END=45# Samba 用户数据库目录SAMBA_DB_DIR="/var/lib/samba/private"# Samba 配置文件SAMBA_CONF_FILE="/etc/samba/smb.conf"# 输出文件OUTPUT_FILE="samba_accounts.txt"# 创建或清空输出文件> $OUTPUT_FILE # 创建账户并写入文件for ((i = START; i <= END; i++)); do USERNAME="$PREFIX$i" PASSWORD=$(openssl rand -base64 12) # 随机生成 12 位密码 # 创建 Samba 用户 sudo smbpasswd -a $USERNAME -s <<EOF$PASSWORD$PASSWORDEOF echo "Created Samba user: $USERNAME with password: $PASSWORD" >> $OUTPUT_FILEdoneecho "Samba user accounts and passwords written to $OUTPUT_FILE"
执行改脚本命令
执行命令 sudo bash build_samba_user.sh
重启samba服务
service smbd restart
在windows上输入用户名和密码可直接通过文档输入框输入ip进行访问
//106.14.22.xx