我有一个非常简单的、纯粹的 Ubuntu 22.04 网络 - 没有混合操作系统 - 没有 Windows。2 台相同的笔记本电脑,笔记本电脑 A 有一个共享文件夹,我可以从笔记本电脑 B 访问。两台机器上的用户名和密码相同。
尽管我没有在任何地方使用 Windows,但 Ubuntu 坚持安装 Samba 以便共享我的文件夹。
我可以将文件从 B 传输到 A,并从任一笔记本电脑上查看 A 上共享文件夹中的所有文件 - 太棒了!
我遇到的问题是,如果我通过笔记本电脑 B 将任何文件从 B 传输到 A,或编辑 A 上共享文件夹中的文件 - 则在笔记本电脑 A 上查看所有文件时,所有文件都会显示一个红色挂锁。在 A 上检查时,它们都显示权限为所有者 = 无人,组 = 无。如果我尝试使用笔记本电脑 B 查看权限,它会说无法确定权限。
因此,我无法访问 A 上从 B 传输、编辑或创建的任何文件。在 BI 上可以完美访问共享文件夹并编辑文件,但在共享文件夹实际存在的机器 A 上,我可以用挂锁看到所有文件,但无法编辑它们。
如果我在AI上创建文件,可以从任意一台机器上编辑,但是当我在B上编辑时,它们就会被锁定在A上
我希望共享文件夹中的所有文件都可以从两台机器上完全访问,并且理想情况下是一个永久的解决方案,即每次添加新文件时我都不需要运行命令。
提前谢谢大家
答案1
尝试运行 chmod 命令。
sudo chmod -Rf 777 ~/Shared Folder
已编辑 =============================
最常见的许可证类型如下:
666(RW/RW/RW)—允许所有用户读取和写入文件。
777(RWX/RWX/RWX)—允许所有用户读取、写入和执行文件。
755(RWX/RW/RW)— 允许文件所有者读取、写入和执行文件,而其他人只能读取和写入文件。
644(RW/R/R)- 允许所有者读取和写入文件,而其他人只能读取。
700(RWX /---)-允许所有者读取、写入和执行文件,而其他人无权访问。
答案2
好的,终于找到了解决方案(也许是一种解决方法)!
chmod 和 chown 只允许访问,直到文件被编辑或新文件被传输 - 它没有持久性,所以我必须继续运行它。
反而 -
我编辑了“服务器”机器(物理上具有共享文件夹的机器)上的 /etc/samba/smb.conf 文件。
首先,我将“映射到访客 = 坏用户”行(我的安装中为 100 行)更改为“映射到访客 = 从不”。
那时我只能以“匿名”或换句话说“访客”身份登录。这让我意识到 Samba 实际上并没有接受我的登录凭据,而是始终以访客身份登录,导致我创建或编辑的文件具有 nobody/none 属性。更令人恼火的是,没有任何警告或错误消息,我可以输入任何内容,只需以访客身份登录即可,无需任何通知。
然后我发现一行引用说有一个由行“guest account = nobody”定义的默认设置,但这行没有出现在我的 smb.conf 中。所以我把它添加到 smb.conf 的 [global] 部分末尾(我的安装中是第 34 行),但将其更改为“guest account = John”。John 是我在两台笔记本电脑上的用户名(其实不是,只是举个例子)。我在每台机器上都有相同的用户名、密码和组。
现在我只能以匿名(访客)身份访问共享,但它将我标识为 John。所以现在我可以从任意一台机器创建、读取、编辑、删除共享文件夹中的文件。中央笔记本电脑上的属性显示正确的权限,但通过卫星笔记本电脑查看时,我收到一条消息,提示无法确定权限 - 对我来说这不是什么大问题。
对于注重安全性的人来说,这可能不是一个理想的解决方案,但对于我来说,以访客(匿名)身份通过网络访问文件不是问题。无论如何,我都必须登录到每台机器。对我来说,更重要的是能够从任何机器访问和完全控制共享文件夹及其内容,无论它们是从哪里创建或传输的。
我需要调查为什么 Samba 无法识别我的凭据,但我已经启动并运行,并且可以从我登录的所有机器完全访问我的文件。我留下了“映射到访客 = 坏用户”行来提醒我,并限制我只能以匿名身份登录。