使用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提供一个补丁,以更好地逃避美元符号和空白在股票名称