需求:在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进行访问

03-13 23:23