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 / 问题 / 1026316
Accepted
user2149308
user2149308
Asked: 2018-04-19 23:49:07 +0800 CST2018-04-19 23:49:07 +0800 CST 2018-04-19 23:49:07 +0800 CST

CIFS 挂载和 Kerberos - 访问权限或最佳实践

  • 772

目前,我们的 Ubuntu 客户端在系统启动期间通过 /etc/fstab 连接到 cifs 共享。这有以下缺点:

  • 密码以纯文本形式作为挂载选项写入
  • 密码应该过期,但如果过期,则必须在每个客户端上更改 /etc/fstab。因此,大多数用于挂载的密码目前都不会过期
  • CIFS 共享安装在连接用户及其权限下,因此不会显示在 Ubuntu 上实际使用该共享的用户。副作用是权限模糊,因为 Ubuntu 用户未列在 Windows 文件系统权限中。

我已经在我们的 Ubuntu-Clients 上成功测试的内容:在用户登录时使用 kerberos 身份验证 - 所以有一个 kerberos 票可供用户使用。

使用该 kerberos 票证 (sudo) 在 systemd 用户服务中安装 cifs 共享

  • PRO:适用于图形登录以及 ssh
  • PRO:共享可以像本地文件系统一样访问
  • CON:如果我挂载在像 /servers/mymount 这样的全局挂载点上,我必须小心,不要覆盖多个用户的挂载。然后,连接用户将是任何后续用户都将使用其权限的用户。

使用该 kerberos 票证从文件浏览器 nautilus 和 thunar 动态挂载共享

  • PRO:如果通过文件浏览器建立与共享的连接,则不需要额外的脚本或服务
  • PRO:共享已安装到用户上下文中,因此绝对需要用户许可。如果用户没有权限,仍然有可能将共享连接到另一个用户。
  • PRO:安装可以通过 /etc/profile 使用 gvfs-mount 自动化
  • PRO:不需要 sudo 权限,用户可以根据需要 gvfs-mount 和 -unmount,通过文件浏览器非常直观
  • 缺点:没有实际的挂载点,ls、cp 等标准 unix 命令不起作用。我将不得不使用 gvfs-* 替代品。此时,上述带有 mount.cifs 的解决方案似乎更好。

所以我想要像访问 nfs 共享一样访问 cifs 共享。

  • 挂载期间未使用密码
  • 应使用访问用户的权限
  • 文件系统的行为应该像本地文件系统(标准的 unix 命令应该可以工作)

我可以多次将 CIFS 共享挂载到每个用户的主目录中,但是

有没有办法在引导期间由用户 root 挂载 CIFS 共享,而不是指定连接用户,然后使用访问用户的权限(例如通过 kerberos 票证)?

提前谢谢你,巴斯蒂安

permissions mount cifs kerberos
  • 1 1 个回答
  • 13574 Views

1 个回答

  • Voted
  1. Best Answer
    Sebastian Stark
    2018-04-20T00:31:02+08:002018-04-20T00:31:02+08:00

    使用 mount.cifs 的 automount + multiuser 选项

    您可以使用 automount 和 mount.cifs 的多用户选项来实现此目的。安装所需的软件包:

    sudo apt install autofs keyutils cifs-utils
    

    以下示例假定 cifs 服务器导出以访问它的用户命名的共享。通常这将适用于主目录。

    将此添加到您的/etc/auto.master:

    /cifs /etc/auto.cifs
    

    把/etc/auto.cifs这个:

    *   -fstype=cifs,multiuser,cruid=${UID},sec=krb5    ://server.domain/&
    

    确保将server.domain替换为您的文件服务器。您也可以通过这种方式使用固定共享。只需用*固定名称替换&.

    上述配置中的一个重要细节是cruid=${UID}. 它将使内核在用户访问共享的上下文中查找 kerberos 票证。否则它将尝试根票证缓存。

    最后重新加载自动挂载:

    sudo service autofs reload
    

    如果您有 kerberos 票证,它将/cifs/$USER在首次访问时挂载文件系统。这意味着您需要cd /cifs/myuser在 GUI 文件浏览器中显式键入 eg 或类似的操作。为避免这种情况,您可以放置​​从其他地方指向此的符号链接,并告诉用户访问这些链接。

    如果您使用的是固定共享(不使用*and &),您当然必须输入cd /cifs/sharename.

    其他用户对同一共享的后续访问将使用他们的权限,通过该multiuser选项成为可能。不会进行额外的安装,但会重复使用现有的安装。

    从mount.cifs(8):

       multiuser
           Map user accesses to individual credentials when accessing
           the server. By default, CIFS mounts only use a single set of
           user credentials (the mount credentials) when accessing a
           share. With this option, the client instead creates a new
           session with the server using the user's credentials whenever
           a new user accesses the mount. Further accesses by that user
           will also use those credentials. Because the kernel cannot
           prompt for passwords, multiuser mounts are limited to mounts
           using sec= options that don't require passwords.
    

    也可以将所需的自动挂载映射添加到 LDAP 服务器以进行集中管理,但这可能超出了此答案的范围。

    在您的问题中,您要求在启动时以 root 身份安装挂载。从技术上讲,这是在这里以 autofs 的占位符安装形式完成的。实际上,真正的挂载仅在用户首次访问时完成。

    我们在我的工作场所为大约 100 个客户使用这个设置来访问一个相当大的光泽文件系统,它工作可靠。

    • 9

相关问题

  • 是否有更好的方式为 /home/userX 构建分区/挂载

  • 无法更新雷鸟

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

  • Ubuntu 在什么许可证下?可以合法修改和分发吗?

  • 文件权限如何工作?文件权限用户和组

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