AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1162100
Accepted
bomben
bomben
Asked: 2019-07-31 02:46:20 +0800 CST2019-07-31 02:46:20 +0800 CST 2019-07-31 02:46:20 +0800 CST

为什么使用 cifs 时服务器和客户端上的 UID 必须匹配?

  • 772

我从一个用户(1000)的 linux 客户端连接到服务器。

两台机器上的用户名相同,但 UID 不同。

当我连接文件时,文件显示为归所有,1001而不是USER我期望的那样。我希望 cifs 将原始用户转换为我在客户端使用的用户。但这种情况并非如此。似乎我必须在客户端和服务器上都有类似的用户,并且还要让他们在两者上都分配相同的 UID。但我无法想象这是唯一的解决方案。

客户端有 mount.cifs 6.4 版。

我的 fstab 是

//192.168.111.190/hgst /home/ben/hgst cifs vers=1.0,noauto,users,uid=1001,username=USER,password=PASSWORD.

我已经将其更改为包含vers=1.0and uid=1001。

该手册说我可能会forceuid在客户端上使用来强制某个用户。如果我将此选项包含在我的 fstab 中,我会得到一个invalid argumenton mount,两者都有 1000 和 1001。我不在forceuid服务器上使用。

我的服务器正在运行 openmediavault 3,我的客户端是 Lubuntu 16.04 LTS。

fstab samba mount cifs
  • 3 3 个回答
  • 3699 Views

3 个回答

  • Voted
  1. Best Answer
    Morbius1
    2019-07-31T03:36:27+08:002019-07-31T03:36:27+08:00

    服务器和客户端上的 UID 不必匹配。这就是您使用 samba 服务器的全部原因。

    这有点像安装 NTFS 分区。如果没有 uid 规范,挂载的共享将由 root 拥有。如果客户端有具有该 uid的用户,则 uid=1001 指的是客户端上用户的 uid,而不是服务器上的用户。

    到服务器:无论您如何在客户端中安装它,您所做的一切都以您在 cifs 安装表达式中的 username=USER / password=PASSWORD 组合中登录的用户身份完成。

    致客户端:如果客户端是 Linux,它将使用您在挂载表达式中定义的方式挂载。

    并且不需要 forceuid 参数。

    所以这应该是:

    //192.168.100.90/hgst /home/ben/Benshare/hgst cifs vers=1.0,noauto,users,uid=1000,username=USER,password=PASSWORD
    

    编辑

    CIFS 挂载表达式中的 uid 参数将挂载共享的所有权从 root 更改为 uid 指定的所有权。在您的原始挂载中,您将 uid 设置为 1001,这是针对客户端上不存在的用户的。您应该将 uid 设置为 1000,因为那是客户端用户的 uid。forceuid 不应该是必需的。

    • 2
  2. Rinzwind
    2019-07-31T02:58:48+08:002019-07-31T02:58:48+08:00

    为什么使用 cifs 时服务器和客户端上的 UID 必须匹配?

    不知道。不过不应该是这样。如果它们相同,它应该在一端使用用户名,在另一端使用用户名。请注意:

    uid=arg

    当服务器不提供所有权信息时,设置将拥有已安装文件系统上的所有文件或目录的 uid。它可以指定为用户名或数字 uid。未指定时,默认为 uid 0。 mount.cifs 帮助程序必须为 1.10 或更高版本,以支持以非数字形式指定 uid。有关详细信息,请参阅下面的文件和目录所有权和权限部分。

    ...

    两台机器上的用户名相同,但 UID 不同。

    如果这些相同,为什么不使用用户名?uid接受名称和用户 ID。

    该手册说我可能会在客户端上使用 forceuid 来强制某个用户。

    您将使用user=oruid=与用户名或credentials=具有用户名和密码的文件名forceuid

    • 1
  3. bomben
    2019-07-31T02:59:43+08:002019-07-31T02:59:43+08:00

    我的问题是,我使用forceuid了错误的方式。

    该选项必须像这样包含:

    uid=1000,forceuid
    

    这意味着我必须先设置一个uid,然后将选项放在forceuid不带参数的情况下,以确保使用来自另一个选项的 UID。

    我与服务器上的所有权进行了交叉检查。这些文件现在以 UID 1000 显示在客户端上,但以 UID 1001 写入服务器,这正是它应该的样子。用户名相同,这也是正确的。


    我的另一个错误是将 UID 声明为来自服务器的 UID(1001)。但它必须反过来,在我的情况下, UID 需要告诉客户端哪个本地用户应该拥有这些文件uid=1000。

    因此,使用该选项,forceuid可能没有必要。


    有用的手册页是: http: //manpages.ubuntu.com/manpages/xenial/man8/mount.cifs.8.html

    • 1

相关问题

  • 以root身份运行的Ubuntu Server samba?

  • 如何通过 Windows 网络共享文件?

  • 如何设置 Ubuntu Server 10.04 LTS 作为 samba 主域控制器使用 pam 模块对 LDAP 服务器进行身份验证?

  • 当另一个文件系统安装在路径上时是否可以删除文件?

  • 如何避免启动时出现“S to Skip”消息?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve