我对 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 声明,输出将为您提供该信息。