Sambashare 权限问题和 chgrp

Sambashare 权限问题和 chgrp

我对 Ubuntu 还很陌生,我正在通过设置 NAS 来学习。

我在使用 Sambashare 时遇到一个问题,当我从 Windows 桌面访问 NAS 时,除了根文件夹外,我失去了对每个子文件夹的权限。无法在任何子文件夹中写入任何内容。但我能够通过以下方法更正此问题(似乎是暂时的,但我没有进行太多测试):

sudo chgrp sambashare /mediaserver/data/directory

但这只在我指定的目录中有效,而不适用于任何父/子目录。

我的 SMB 配置如下:

[NAS]
path = /mediaserver
guest ok = No
writeable = Yes
create mask = 0777
directory mask = 0777

编辑:

以下是我设置 Samba 所遵循的步骤:

# Update device:
sudo apt update && sudo apt upgrade -y

# Install Samba
sudo apt-get install samba samba-common-bin
Y

# identify the drive
sudo fdisk -l

# Note the partition ie.: /dev/sda1

# Create directory to share 
sudo su
cd /
mkdir mediaserver
ls -l

# Provide user full access to the directory
chmod 777 mediaserver

- Alt + D to exit root mode

# To configure Samba share:
sudo nano /etc/samba/smb.conf


# Insert new section at bottom of conf
[NAS]
path = /mediaserver 
writeable = Yes 
create mask = 0777 
directory mask = 0777 


# Restart the Samba daemon after making changes
sudo systemctl restart smbd

# Mount ext drive to the share directory
sudo mount -t auto /dev/sda1 /mediaserver

# Enable ext drive to be auto mounted whenever system reboots
sudo nano /etc/fstab

# Add the following line:
/dev/sda1 /mediaserver auto noatime 0 0

# Set group ownership of mediaserver directory to sambashare group
sudo chgrp sambashare /mediaserver

# Add user account to sambashare
sudo smb passwd -a authuser1

# To find systems IP address:
ifconfig

# On Windows map network drive:
\\1.2.3.4\NAS

答案1

采用不同的共享定义方法可能会效果更好:

确保共享文件夹具有 sambashare 作为组:

sudo chown :sambashare /mediaserver

为共享文件夹添加 setgid 位:

sudo chmod 2775 /mediaserver

在这种情况下,setgid 位将强制每个新文件/文件夹具有与 samnbashare 相同的组。

然后将共享定义更改为:

[NAS]
path = /mediaserver
guest ok = No
writeable = Yes
force group = sambashare
create mask = 0777
force directory mode = 2777

并重新启动 smbd:

sudo service smbd restart

编辑:根据您的原始帖子编辑:

# Add user account to sambashare
sudo smb passwd -a authuser1

不,你没有。你所做的就是将该用户(它是 smbpasswd 而不是 smb passwd )添加到 samba 密码数据库。

您需要将您的用户添加到 sambashare 组:

sudo gpasswd -a authuser1 sambashare

该用户需要注销并重新登录才能更新组成员身份。

由于我们都已开始使用 UUID 或 LABELS,因此我们不太喜欢使用 /dev/sda1 安装分区。

lsblk -f如果您想重置 fstab 声明,输出将为您提供该信息。

相关内容