Linux用Samba共享两个用户共享一个文件夹

文章介绍了如何配置Samba以创建共享文件夹并设定访问权限,包括在smb.conf中设置参数,如writable和validusers。当遇到用户写入权限问题时,应检查文件夹权限、用户所属组和所有者设置,确保用户有正确的读写权限。通过修改配置并重启Samba服务,以及调整用户和文件夹的属组关系,可以解决权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 配置Samba

编辑Samba配置文件(通常是/etc/samba/smb.conf)

sudo nano /etc/samba/smb.conf

在配置文件中,您可以创建共享文件夹,并定义每个共享文件夹的访问权限和用户访问控制。

例如,创建一个名为shared_folder的共享文件夹并定义访问权限可以这样设置:

[shared_folder]

comment = Shared Folder

path = /path/to/shared_folder

browseable = yes

writable = yes

valid users = user1 user2

在上述配置中,/path/to/shared_folder是实际的共享文件夹路径,user1和user2是被允许访问该共享文件夹的用户。

2.配置用户共享组权限

如果在Samba中两个用户可以访问共享文件夹,但另一个用户无法创建文件,这可能是因为文件夹的写入权限设置不正确。请确保在Samba配置文件(smb.conf)中为该共享文件夹设置了正确的写入权限。以下是一些可能导致这个问题的原因和解决方案:

1. 检查共享文件夹的权限

确保共享文件夹设置了可写入权限。

在Samba配置文件(smb.conf)中确保以下参数被正确设置:

writable = yes

create mask = 0664

directory mask = 0775

force create mode = 0664

force directory mode = 0775

这些参数将允许用户创建和写入文件,并设置新建文件和文件夹的默认权限。

保存并关闭配置文件后,重启Samba服务以使更改生效:

sudo service smbd restart

2. 检查用户权限

确保另一个用户在系统中具有正确的操作权限和属组。

确保另一个用户属于与共享文件夹相同的用户组,并且该用户对共享文件夹有足够的权限(至少应该具有读写权限)。

# 将用户添加到共享用户组

sudo usermod -aG shared_group username

3. 检查文件夹的所有者和组

确保共享文件夹的所有者和组与其他用户的文件夹相同。

# 设置共享文件夹的所有者和组

sudo chown -R shared_user:shared_group /path/to/shared_folder

其中,shared_user是共享文件夹的所有者,shared_group是确保两个用户都属于的用户组。

### 如何在 Linux Samba 服务器中设置和创建共享文件夹 #### 安装 Samba 为了在 Linux 上配置 Samba 文件共享功能,首先需要确认系统已安装 Samba 软件包。可以通过以下命令查询是否已经安装 Samba[^1]: ```bash dpkg --get-selections | grep samba ``` 如果未安装,则可以使用以下命令来完成安装操作: ```bash sudo apt-get update && sudo apt-get install samba ``` 此过程会自动下载并安装所需的依赖项。 --- #### 创建共享目录 接下来,在系统中创建一个用于共享的目录。例如,可以在 `/srv` 下新建一个名为 `shared_folder` 的目录,并赋予适当的权限以便访问该目录的内容[^3]: ```bash sudo mkdir -p /srv/shared_folder sudo chmod 777 /srv/shared_folder ``` 上述命令设置了最宽松的权限(仅适用于测试环境),实际部署时应根据需求调整权限设置以保障安全性。 --- #### 修改 Samba 配置文件 Samba 的主要配置文件位于路径 `/etc/samba/smb.conf` 中。编辑此文件并向其中添加一个新的共享部分定义如下所示[^4]: ```ini [SharedFolder] path = /srv/shared_folder public = yes writable = yes valid users = your_username create mask = 0644 force create mode = 0644 directory mask = 0755 force directory mode = 0755 available = yes browseable = yes guest ok = no read only = no ``` 在此示例中: - `[SharedFolder]` 是共享名称; - `path` 指定了要共享的实际物理位置; - `public=yes` 表示任何经过身份验证的用户都可以访问它; - `writable=yes` 允许写入到这个共享资源里; - `valid users=your_username` 替换为具体的用户名,限定谁能够连接至这一共享区域。 保存更改后重启 Samba 服务使新设定生效: ```bash sudo systemctl restart smbd nmbd ``` 或者对于某些版本可能适用的是: ```bash sudo service smbd restart sudo service nmbd restart ``` --- #### 添加 Samba 用户账户 为了让特定用户能通过网络登录并利用所设好的共享资料库,需先将其加入到 Samba 数据库之中。假设目标用户的本地账号叫作 `your_username` ,执行下面两条指令即可达成目的[^2]: ```bash sudo smbpasswd -a your_username ``` 这一步骤将会提示输入密码两次用来初始化新的 Samba 密码记录条目关联于指定的 UNIX 系统级别的使用者名之下。 完成后再次启动或重新加载守护进程确保一切正常运作: ```bash sudo systemctl reload smbd ``` 现在应该可以从其他计算机上成功浏览以及读取/写入刚才建立起来的那个公共存储空间了! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值