需求:在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
参数说明
使用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_FILE
done
echo "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
$PASSWORD
EOF
echo "Created Samba user: $USERNAME with password: $PASSWORD" >> $OUTPUT_FILE
done
echo "Samba user accounts and passwords written to $OUTPUT_FILE"
执行改脚本命令
执行命令 sudo bash build_samba_user.sh
重启samba服务
service smbd restart
在windows上输入用户名和密码可直接通过文档输入框输入ip进行访问