使用AutoFS访问Windows或Samba共享

使用AutoFS访问Windows或Samba共享

您已经在联网的台式机上安装了Linux,现在您要使用存储在网络中某些其他PC上的文件。 这就是autofs的发挥。 本教程将介绍如何配置autofs以使用CIFS从Linux桌面PC访问Windows或Samba共享。 它还包括一个量身定制的配置文件。

如果已安装autofs 4.0或更高版本,您应该找到这些文件

/etc/auto.master

/etc/auto.smb

在你的系统上 否则启动您的发行版的包管理器(例如SuSE上的YaST,Debian或Ubuntu上的突触...)并安装它。 当你在它,也安装Samba客户端包(寻找smbclient ),因为我们也需要这个。 在某些发行版(Ubuntu)中,我们还需要包含实用程序mount.cifs和umount.cifs的包smbfs。

组态

如果已经安装了autofs,它可能仍然未配置,并且不起作用。 假设您的Linux发行版包含一个Linux 2.6.x内核,我建议使用通用Internet文件系统 (cifs)模块来访问网络上的文件。 请存储以下文件

/etc/auto.cifs

在你的电脑上 您需要root(或sudo)才有权限执行此操作:

#!/bin/bash
# $Id$
# This file must be executable to work! chmod 755!
key="$1"
# Note: create a cred file for each windows/Samba-Server in your network
#       which requires password authentification.  The file should contain
#       exactly two lines:
#          username=user
#          password=*****
#       Please don't use blank spaces to separate the equal sign from the
#       user account name or password.
credfile="/etc/auto.smb.$key"
# Note: Use cifs instead of smbfs:
mountopts="-fstype=cifs,file_mode=0644,dir_mode=0755,uid=user,gid=users"
smbclientopts=""
for P in /bin /sbin /usr/bin /usr/sbin
do
        if [ -x $P/smbclient ]
        then
                SMBCLIENT=$P/smbclient
                break
        fi
done
[ -x $SMBCLIENT ] || exit 1
if [ -e "$credfile" ]
then
        mountopts=$mountopts",credentials=$credfile"
        smbclientopts="-A "$credfile
else
        smbclientopts="-N"
fi
$SMBCLIENT $smbclientopts -gL $key 2>/dev/null \
   | awk -v key="$key" -v opts="$mountopts" -F'|' -- '
        BEGIN   { ORS=""; first=1 }
	/Disk/  { if (first) { print opts; first=0 };
		  gsub(/ /, "\\ ", $2);
		  sub(/\$/, "\\$", $2);
		  print " \\\n\t /" $2, "://" key "/" $2 }
        END     { if (!first) print "\n"; else exit 1 }
        '

使用以下命令使此文件可执行:

chmod 755 /etc/auto.cifs

该文件是文件auto.smb的一个稍微修改版本,通常作为autofs包的一部分。 您需要修改定义上述mountopts的行,并将用户更改为您的个人帐户名称的名称。 现在,您必须为autofs提供访问网络共享所需的凭据。 为此,创建一个名为

/etc/auto.smb.FILESERVERNAME

对于您要访问的每台计算机 当然,用FILESERVERNAME替换计算机的名称。 使用用户帐户名和密码填写这些文件,以访问计算机上的共享。 这些文件的内容应如下例所示:

username=user
password=secret

使用命令

chmod 600 /etc/auto.smb.*

保护密码信息。

现在我们要告诉autofs来使用我们的新配置文件。 使用命令:

echo "/cifs /etc/auto.cifs --timeout=60" >>/etc/auto.master

/etc/init.d/autofs restart

就这样。

测试

使用命令

ls -als /cifs/FILESERVERNAME/SHARENAME

检查,如果它的工作。 如果没有,请查阅系统日志文件(通常为/ var / log / messages/ var / log / syslog )。

积分:davek提供一个补丁,以更好地逃避美元符号和空白在股票名称

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏