共享文件夹时权限被拒绝

Jam*_*ury 6 samba 14.04

出于某种原因,我一直无法在 Ubuntu、12.04 或 14.04 上获得网络共享。虽然我有桌面版本,但我没有运气在这里遵循服务器共享建议。我妻子的电脑和笔记本电脑上的问题是一样的。这不应该开箱即用吗?

我什至无法通过我自己机器上的“浏览网络”链接访问我的共享文件夹。我应该放弃并使用 NFS 吗?

在此处输入图片说明

这是我的smbtreesmbstatus输出。

    WORKGROUP
    \\JAMES-UBUNTU          james-ubuntu server (Samba, Ubuntu)
        \\JAMES-UBUNTU\IPC$             IPC Service (james-ubuntu server (Samba, Ubuntu))
        \\JAMES-UBUNTU\Photosmart_Plus_B210 Photosmart_Plus_B210
        \\JAMES-UBUNTU\print$           Printer Drivers
        \\JAMES-UBUNTU\shareme          James Public Share
james@james-ubuntu:~$ smbstatus

Samba version 4.1.6-Ubuntu
PID     Username      Group         Machine                        
-------------------------------------------------------------------
Failed to initialize session_global: NT_STATUS_ACCESS_DENIED

Service      pid     machine       Connected at
-------------------------------------------------------
Failed to initialize session_global: NT_STATUS_ACCESS_DENIED
Failed to traverse sessions: NT_STATUS_ACCESS_DENIED

No locked files
Run Code Online (Sandbox Code Playgroud)

Tea*_*afx 3

我的答案与错误没有直接关系,而是与如何进行共享有关。顺便说一句,我在此期间遇到了错误,所以它最终修复了它。只是不太清楚所以...

对于 Ubuntu 14.04 samba 服务器和 Ubuntu 客户端,可以使其正常工作。我想要的方法不需要登录...

由于进行了大量的配置测试和试验,我对此的注释有点混乱,不知道此时是否需要其中部分或全部,并且还有添加用户名和密码的步骤。一切都失败了,直到我发现 smb:// 的最后一行是唯一有效的方法。另外,不想缩小范围:

您应该首先尝试最后一行或在整个过程中使用它直到它起作用。简单地浏览网络似乎永远行不通,因为它会弹出一个似乎不允许访问的登录窗口。


获取当前在 ubuntu 软件包中找不到的最新 samba (4.1.11)(可能是必要的):

samba -V 
sudo add-apt-repository ppa:martinx/ig
sudo apt-get update
sudo apt-get upgrade samba
samba -V
Run Code Online (Sandbox Code Playgroud)
Ubuntu Applications "Personal file sharing":
check "Share public files on network"
Require password "always"
Password "thesamepassword" used for user below
Run Code Online (Sandbox Code Playgroud)

获取桑巴图形用户界面:?????? 可能需要通过此处进行配置。真的不知道这是否有所作为。我重新启动让它出现在 ubuntu 应用程序中:

sudo apt-get install samba libpam-smbpass samba-dsdb-modules samba-vfs-modules python-samba samba-common-bin samba-common samba-libs nautilus-share libgnomevfs2-extra
Run Code Online (Sandbox Code Playgroud)

桑巴图形用户界面:

  • 首选项 -> 服务器设置 -> 安全选项卡:身份验证模式:用户,加密密码:是,访客:无人

  • 首选项 -> samba 用户:与下面添加的用户相同。如果之前添加过,则可以通过将 -a 更改为 -x 来删除下面的用户。


如果您遇到权限错误,这应该可以修复它 - 尽管不是最安全的方法,而且我个人并不关心我的电脑上的这个问题:

sudo chmod 777 -R /var/log/samba/* Needed????? No reason unless you need to.
Run Code Online (Sandbox Code Playgroud)

如果尚未安装,请安装:

sudo apt-get install libpam-smbpass
Run Code Online (Sandbox Code Playgroud)

创建samba用户和密码(我使用我的linux帐户用户和密码):

sudo smbpasswd -a user_to_add
Run Code Online (Sandbox Code Playgroud)
sudo gedit /etc/samba/smb.conf
Run Code Online (Sandbox Code Playgroud)

(从新的默认 smb.conf 文件开始,并进行以下更改(如果需要,将 /usr/share/samba/smb.conf 复制到 /etc/samba/ )(顺便说一句,分号行被忽略):

[global]
force user = user_to_add #<---------------- ********** CHANGE **********

###authentication###
; passdb backend = tdbsam

###misc###
usershare allow guests = yes
username map = /etc/samba/smbusers
security = user
; encrypt passwords = yes
; guest account = user_to_add

[home] 
; comment = Home Directories
; browseable = yes
read only = no
create mask = 0755 
; directory mask = 0755
guest ok = yes
Run Code Online (Sandbox Code Playgroud)

差不多了:

sudo samba restart
sudo restart smbd && sudo restart nmbd
or restart pc?

Go to a folder in home dir
right click -> local net share
Check "share this folder"
Check "Allow others to create..."
Check "Guest access"
Click create share
Run Code Online (Sandbox Code Playgroud)

最后一行:重要。

browser or file explorer -> connect to server then:
smb://IP address of pc with samba server. (smb://192.168.1.99)
Run Code Online (Sandbox Code Playgroud)

然后您也可以将其添加为书签。在文件资源管理器和书签左侧的网络下右键单击它。


可能还有另一种方法,可以缩小混乱的范围,但几个小时后,这是它第一次起作用,希望在下一个 LTS 左右之前不需要碰它——如果有的话。

这在 Android 上也可以使用,无需登录。

在 Windows 上,需要转到网络资源管理器并在位置字段中输入 \\具有 samba 服务器的电脑的 IP 地址 (\\192.168.1.99),无需登录。

玩得开心:-D

更新:我不得不再次执行此操作,这次是使用 16.04 每日构建执行的

对于 16.04 预发布版来说,它基本上是相同的,但有一些细微的差异......

sudo systemctl restart smbd.service && sudo systemctl restart nmbd.service
Run Code Online (Sandbox Code Playgroud)

Ubuntu 应用程序中的“个人文件共享”是不需要的,并且无法正常工作。

Samba 是最新版本,不需要 ppa(在我输入此内容时),但是,请确保通过任何必要的方式安装 samba。

不需要 Samba gui,因此 14.04 也可能不需要

我按照上面留下的内容进行操作,共享文件夹在 Linux 14.04(连接:匿名)和 Windows 10 中显示并可浏览、写入和读取。

Windows 10:文件资源管理器 -> 右键单击​​“网络” -> 映射网络驱动器 -> \IPaddress\共享文件夹名称(或 \IPaddress,然后单击浏览 - 但看起来每个驱动器号只有一个共享文件夹)

如果使用 Windows 10 网络备份和恢复,则需要用户名和密码,只需输入 samba 即可(但可能是任何内容),让人们备份!:-)