正确的方式来安装Samba共享


9

我想在Arch Linux系统上使用samba挂载CIFS网络文件系统。每当我登录时(无论是通过ssh,TTY还是通过KDM),我都希望挂载此文件系统。

通过将网络共享添加到,我可以非常接近我想要的内容/etc/fstab。最大的“问题”是,这需要对我的密码进行硬编码/etc/fstab或使用我的用户名和密码创建凭据文件。即使将权限设置为600,将用户名和密码保存在纯文本文件中对我来说似乎也不安全。

是否有“正确”的方法来安全地自动挂载网络共享?我可以使用PAM做到这一点吗(两台机器上的用户名和密码都相同),如果可以,怎么办?


您看过pam_cifs吗?“ pam_cifs是一个Linux-PAM模块,用于在每个用户登录时安装和卸载CIFS共享”
CVn 2013年

或pam_mount,我没有具体经验,但它看起来是专为执行此操作而设计的。
AugustBitTony

@EightBitTony找到pam_mount导致我问这个问题,我希望有人可以更明确地告诉我这是否可行,以及如何实现。
StrongBad

Answers:


8

方法1- /etc/fstab

我知道您正在寻找替代方法,但以下是具体如何从/etc/fstab文件中获取凭证的方法:

//WindowsHost/Sharename /LocalMountPoint cifs credentials=/etc/cifsauth 0 0

然后在文件中/etc/cifsauth

username=someuser
password=somepass

取得此文件的权限600,即chmod 600 /etc/cifsauth

方法2-pam_mount

您可以安装pam_mount,然后为所有登录的用户设置通用安装,例如:

# /etc/security/pam_mount.conf.xml
<debug enable="1" />
<volume server="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" />

此方法仍然与方法1(将凭据存储在文件)中的问题相同/home/%(USER)/.Music.cred。这是与第一种方法相同的凭据文件类型,因此请确保权限也为600。

方法#3-使用gvfs-mount

标题为:我可以在不以明文形式存储密码的情况下自动挂载CIF共享吗?包含@Gilles的答案,该答案描述了如何使用GNOME密钥环保留CIFS凭据。

然后,您可以使用GVFS -GNOME虚拟文件系统- 来访问CIFS共享:

$ gvfs-mount smb://username\;workgroupname@hostname/sharename

这将从主机名sharename映射共享,并将其挂载在下$HOME/.vfs/sharename on hostname。您无法以任何方式控制它。它一直被硬编码为始终挂载在这里!

但是,您可以创建指向这些安装的链接,这是我要做的,以便我可以访问已安装的共享。使用.gvfs不幸的是,某些工具没有在文件浏览中列出点目录,因此,我创建的链接通常是访问这些共享的唯一方法。


如果您将文件设为隐藏状态,例如说.cifsauth,并且不需要'username =',则仅凭凭据= / etc / .cifsauth就足够了
Rahul Patil

@RahulPatil-您是说必须以命名的凭据.cifsauth才能删除username=,还是username=不需要一起使用正义?
slm

是的...很好的答案..!+1 for pam_mount
Rahul Patil

@RahulPatil-您同意哪一点?
slm

2

事实证明,这pam_mount是要走的路。您将网络共享添加到/etc/security/pam_mount.conf.xml

<volume user="yourUserName" fstype="auto" path="//path/to/the/network/share" mountpoint="/path/to/the/mount/point" options="username=yourUserName" />
<mkmountpoint enable="1" remove="true" />

它应该是理论上可以使用的%(USER)%(USERUID)%(USERGID)变量,使之成为普通坐骑,但我无法得到的那部分对Arch Linux的工作。您还需要配置系统以使用pam_mount。您需要同时修改/etc/pam.d/system-auth和相应的登录管理器。对于KDM而言/etc/pam.d/kde。修改基本上涉及optional pam_mount.so到添加两个文件的每个部分,但是由于顺序很重要,所以确切的细节非常棘手。我关注了Arch Wiki

使用此设置并在服务器和我的机器上使用相同的用户名/密码,我可以自动挂载而无需将凭证文件保存在任何地方。


很好...从原则上讲,我更喜欢fstab解决方案-我pam个人不喜欢,其余的个人,我注意到它们有进一步发展到系统配置的趋势-但这肯定回答了这个问题。我能问一下,为什么您如此反对存储凭证吗?用户权限和/或文件所有权/加密在那里应该绰绰有余。在某些系统上,您甚至可以将此类信息存储在只能通过身份验证才能访问的固件var中。ssh例如,基于fs权限存储凭据,不是吗?
mikeserv

@mikeserv我们使用单个登录系统,因此具有我的凭据文件对计算机具有超级用户访问权限的sys管理员可能无法对我的密码获得我访问权限的所有服务器具有超级用户访问权限。
StrongBad 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.