【问题标题】:mount unmount without sudo不使用 sudo 挂载卸载
【发布时间】:2013-06-04 17:16:57
【问题描述】:

我正在尝试编写一个脚本,它将 ssh 到主机,在那里执行挂载操作,运行一些其他命令并退出。

其他命令 (cd, cp) 不需要 sudo 权限,但挂载选项需要 sudo 权限。我想写一个可以做的脚本:

ssh user@server "mount -t nfs xx.xx.xx.xx:/ /nfs -o rsize=4096,wsize=4096 ; cp pqr rst ; umount /nfs ;" 

和其他一些非 sudo 命令。在脚本运行时,如何在没有 sudo 选项且不输入任何密码的情况下执行此操作。

【问题讨论】:

  • 你想做什么?如果您只想将文件从“这里”复制到“那里”,请在scprsync 处循环。

标签: linux shell mount nfs


【解决方案1】:

桌面 Linux 发行版使用 udisk 授予非 root 用户有限的安装权限。

udisks 版本 2

udisksctl mount -b [device]

udisks 版本 1

udisks --mount [device]

当然,如果我们谈论的是服务器虚拟机,那么可能不会安装这些工具。 安装它们需要 root 访问权限(一次)

【讨论】:

【解决方案2】:

您必须将/nfs 条目添加到server 主机上的/etc/fstab

在条目的选项列表中必须是选项userusers(取决于您是否希望该用户可以卸载文件系统)。

例子:

xx.xx.xx.xx:/ /nfs nfs rsize=4096,wsize=4096,user 0 0

【讨论】:

  • 但是修改/etc/fstab需要root,所以在事先不知道挂载目录或者设备id的情况下还是不行。
  • @matt2000:不可以,之前管理员可以修改/etc/fstab。当然,如果您没有 root 权限,则绝对不可能挂载文件系统(如果 /etc/fstab 中未明确允许),否则将导致严重的安全漏洞
  • 管理员可以添加什么到 /etc/fstab 以允许将未指定的设备安装到未指定的位置? fstab 是否允许使用通配符?例如,桌面系统如何允许非授权用户安装 USB 驱动器等?据我所知,他们不使用 fstab。当系统的唯一用户被信任安装设备而不是做其他事情时,这根本不是安全漏洞。
【解决方案3】:

您可以允许该用户在不需要 sudo 电源的情况下进行挂载。

使用 NOPASSWD 目录

关注这个Link

或者您可能更喜欢编写期望脚本,该脚本将写入密码并在提示时输入密码。

【讨论】:

  • 这允许用户在没有密码的情况下使用 sudo。他在问如何完全避免 sudo。
猜你喜欢
  • 2019-12-15
  • 1970-01-01
  • 2011-10-21
  • 2017-11-19
  • 2018-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
相关资源
最近更新 更多