我有两台Ubuntu计算机,可以通过Windows计算机上的终端(通过PuTTY)访问。
我在一台Ubuntu计算机上使用脚本创建网络共享(用户可以访问它们),而在另一台Ubuntu计算机上使用脚本安装这些共享。共享创建脚本对要创建的每个共享使用以下代码行:
chmod -R 777 /media/hdd/shares/$Username
useradd $Username
(echo $Password; echo $password) | smbpasswd -a -s $Username
echo >> /etc/samba/smb.conf
echo [$Username] >> /etc/samba/smb.conf
echo path = /media/hdd/shares/$Username >> /etc/samba/smb.conf
echo browsable = yes >> /etc/samba
echo read only = no >> /etc/samba/smb.conf
echo writable = yes >> /etc/samba/smb.conf
echo valid users = $Username >> /etc/samba/smb.conf
(在发生任何这种情况之前,脚本会将smb.conf文件恢复为其默认的无共享状态)
两次使用不同的$ Username和$ Password遍历此代码两次。$ Username和$ Password值存储在两台Ubuntu计算机均可访问的文件中,以便另一台可以使用相同的值并挂载共享。一切顺利。两个共享都安装在另一台计算机上。
但是,在Windows上,我只能挂载两个共享文件之一。我完全不知道如何解决此问题。我怀疑两个用户帐户之间可能有区别,但是我不知道在哪里检查。
我需要两个共享才能安装在Windows上。我该如何解决?
编辑:解决。通过将“有效用户”切换为“强制用户”,它现在可以按预期运行。不知道这有什么区别。
编辑2:尚未真正解决。切换为“强制用户”将允许任何有效凭据集访问任何共享。我已经回到使用“有效用户”了。在一个朋友使用另一台Windows PC(我们都是Win10 1709)尝试连接到共享并且他只能连接到我无法访问的共享后,该问题变得更加有趣。
有效用户和强制用户是两个非常不同的事物。强制用户意味着所有文件操作均以该用户身份执行。这意味着您的任何一个用户现在都可以连接到任一共享,但是他们执行的所有操作都将显示为强制用户。
—
米勒
旁注(提示):在此处研究文档。语法
—
卡米尔Maciorowski
cat >>/etc/samba/smb.conf <<EOF
将使您的代码更加清晰。
谢谢,米勒。这很重要,我不打算进行测试。卡米尔(Kamil),我并不是在所有地方的StackExchange上都打些暖手/冷手。我在这里是因为我尝试了我能想到的所有其他东西,并且我需要答案,而不是游戏。
—
汤普森