尝试访问 samba 共享时出现以下错误。
[2019/02/24 20:24:48.978082, 0] ../source3/smbd/uid.c:386(change_to_user_internal)
change_to_user_internal: chdir_current_service() failed!
我已经创建了文件夹,并赋予它 777 权限,将其所有者更改为无人用户,但无论我怎么尝试,它都不允许我打开它。
这是 smb.conf
[global]
map to guest = Bad User
workgroup = WORKGROUP
server string = Samba Server
server role = standalone server
dns proxy = no
[Shared]
comment = Allow all users to read/write
path = /home/andrius/Shared
public = yes
guest ok = yes
writable = yes
问题似乎与我尝试共享的文件夹位于我的主目录中有关。只要我将其放在主目录之外,一切就开始正常工作。
smb.service
当我检查进程时,它似乎以 root 服务身份运行。所以我很难理解为什么我不能将它放在我的主目录中。
答案1
我遇到了同样的问题,我找到了解决方案另一个问题。
您需要添加一个force user =
参数。(仔细选择用户,任何创建的文件都将归该用户所有。)
[Shared]
comment = Allow all users to read/write
path = /home/andrius/Shared
public = yes
guest ok = yes
writable = yes
force user = andrius
答案2
我遇到了同样的问题,但我的解决方案不同:samba 用户无法读取我的 smb-shared 文件夹上方的文件夹,因此用户无法通过 cd 进入该文件夹...解决方案是赋予上述文件夹正确的权限。
答案3
这表明 Linux ACL 权限对用户来说过于严格。您可以放宽文件夹的本地权限,并在 Samba 服务设置中配置安全设置。
chmod 777 /home/andrius/Shared
然后,指定具有访问权限的用户或组/etc/samba/smb.conf
[Shared]
path = /home/andrius/Shared
read only = no
valid users = andrius
write list = andrius