总结:我想配置一个运行 Ubuntu Desktop 并有两个用户的盒子,以便当一个用户登录时它自动挂载受密码保护的 Samba 共享,并且没有当对方登录时。
长版本
在我的家庭网络上,我有两个盒子:一个运行 Ubuntu 桌面,另一个是我的文件服务器,包含两个受密码保护的 samba 共享(无访客访问权限)。
用户和账户:有两个用户,Bob 和 Jane。Bob 和 Jane 在三个地方都有自己独立的用户名和密码(即桌面和文件服务器上的独立 Unix 账户以及独立的 samba 账户)。
Samba 共享:文件服务器有两个 Samba 共享,Secrets 和 Shared。Secrets 的配置使得 Bob 是唯一可以连接到它的用户(在 smb.conf 下的[Secrets]
、write list = bob
、guest ok = no
等中)。我的问题不是关于如何配置 Samba 共享(抱歉,设置我的问题花了这么长时间)。
自动挂载 samba 共享:当 Bob 登录到 Ubuntu 桌面时,Secrets 会使用 Bob 自己的 samba 凭据自动挂载,Nautilus 将 Secrets 显示为左侧导航栏中“计算机”下的一个位置,这样 Bob 无需动一根手指即可访问它,该共享下的文件和文件夹显示为归 Bob 所有 ( ls -l /media/Secrets
),文件权限显示为 ,-rw-------
文件夹权限显示为drwx------
。我通过将以下内容添加到我的 /etc/fstab 中以及包含 Bob 的 samba 凭据的单独文件来实现这一点。
//centaroo.local/Secrets /media/Secrets cifs uid=bob,gid=bob,credentials=/home/bob/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700 0 0
问题就在这里,我的问题也来了:当 Jane 登录时,她也会看到 Nautilus 左侧导航栏中突出显示的标签“Secrets”,这并不是世界末日,因为当她尝试单击它时,她仍然会被拒绝访问,但我更希望她甚至看不到 Nautilus 中的 Secrets 共享。换句话说,我想以某种方式更改设置,以便当 Jane 登录时,她甚至不知道 Secrets 在那里,它不会尝试自动挂载等。
我该怎么做?因为我想为一个用户自动挂载 Secrets,而不是另一个用户,fstab 是不是错了?我是不是该研究一下 autofs,或者有没有办法做我想做的事?我关注了永久安装 Windows 共享的说明并瞥了一眼autofs 文档,但我不清楚 autofs 是否是答案。如果有人能给我指出正确的方向,我将不胜感激。此外,如果您需要任何额外信息来帮助我,请在评论中指出。谢谢!
答案1
我找到了如何在不触碰 fstab 的情况下做到这一点的方法,正如我在评论中提到的那样。我解决这个问题的方法是在启动应用程序中添加一个脚本,以便在我的用户登录时运行它(但当其他用户登录时不会运行),然后我设置该脚本,以便它可以以 root 身份运行而无需输入密码。有关我采取的步骤以及如何以 root 身份运行启动脚本而无需提供密码的更多详细信息,请参阅“使用启动脚本(不是 fstab)在登录时挂载 samba 共享“ 和 ”如何在脚本中执行 sudo 命令而不要求输入密码“”。