配置NFS
对于RedHat Linux有两种配置方式:
1.服务器配置工具
要使用NFS 服务器配置工具,你必须运行 X 窗口系统,具备根特权,并且安装了 redhat-config-nfs RPM 软件包。要启动这个程序,点击面板上的「主菜单」 => 「系统设置」 => 「服务器设置」 => 「NFS」,或键入 redhat-config-nfs 命令。
要添加 NFS 共享,点击「添加」按钮。
「基本」活页标签要求以下信息:
-
「目录」 — 指定要共享的目录,如 /tmp。
-
「主机」 — 指定要共享目录的主机。
-
「基本权限」 — 指定目录应该有只读权限还是读写权限。
「常规选项」活页标签允许你配置以下选项:
-
「允许来自高于 1024 的端口的连接」 — 在号码小于 1024 的端口上启动的服务必须以根用户身份启动。选择这个选项来允许根用户以外的用户来启动 NFS 服务。该选项和 insecure 相对应。
-
「允许不安全的文件锁定」 — 不需要锁定请求。该选项和 insecure_locks 相对应。
-
「禁用子树检查」 — 如果某文件系统的子目录被导出,但是整个文件系统没有被导出,服务器会检查所请求的文件是否在导出的子目录中。这种检查叫做子树检查(subtree checking)。选择这个选项来禁用子树检查。如果整个文件系统被导出,选择禁用子树检查可以提高传输率。该选项和 no_subtree_check 相对应。
-
「按要求同步写操作」 — 默认被启用,该选项不允许服务器在请求被写入磁盘前回复这些请求。该选项和 sync 相对应。如果它没有被选择,async 选项会被使用。
-
「立即强制同步写操作」 — 不推迟写入磁盘的操作。该选项和 no_wdelay 相对应。
-
「用户访问」活页标签允许你配置以下选项:
-
「把远程根用户当作本地根用户」 — 按照默认设置,根用户的用户 ID 和组群 ID 都是 0。根权限压缩(Root squashing)把用户 ID 0 和组群 ID 0 映射为匿名的用户和组群 ID,因此客户上的根用户就不会在 NFS 服务器上具备根特权。如果这个选项被选,根用户就不会被映射为匿名用户,客户上的根用户就会对导出的目录拥有根特权。选择这个选项会大大降低系统的安全 性。除非绝对必要,请不要选择它。该选项和 no_root_squash 相对应。
-
「把所有客户用户当作匿名用户」 — 如果该选项被选,所有用户和组群 ID 都会被映射为匿名用户。该选项和 all_squash 相对应。
-
「为匿名用户指定本地用户 ID」 — 如果「把所有客户用户当作匿名用户」被选,这个选项会让 你为匿名用户指定一个用户 ID。该选项和 corresponds to anonuid 相对应。
-
「为匿名用户指定本地组群 ID」 — 如果「把所有客户用户当作匿名用户」被选,这个选项会让 你为匿名用户指定一个组群 ID。该选项和 corresponds to anongid 相对应。
-
要编辑 NFS 共享,从列表中选择它,然后点击「属性」按钮。要删除某个现存 NFS 共享,从列表中选择它,然后点击「删除」按钮。
点击了「确定」来从列表中添加、编辑、或删除某个 NFS 共享后,改变就会立即生效 — 服务器守护进程被重新启动,原有的配置文件被保存为 /etc/exports.bak。新的配置文件被写入 /etc/exports。
NFS 服务器配置工具直接读写 /etc/exports 配置文件。因此,这个文件在使用该工具后可以被手工修改;手工修改了该文件后也可以使用这个工具(假定手工修改时使用了正确的语法)。
2.命令行配置
如果你更喜欢使用文本编辑器来编辑配置文件或者你没有安装 X 窗口系统,你可以直接修改配置文件。
/etc/exports 文件控制 NFS 服务器要导出哪些目录。它的格式如下:
唯一需要指定的选项是 sync 和 async 之一(建议使用sync is recommended)。如果指定了 sync,服务器在请求所做的改变被写入磁盘之前就不会回复这些请求。
例如:
会允许来自 speedy.example.com 的用户使用默认的只读权限来挂载 /misc/export,但是:
将会允许来自 speedy.example.com 的用户使用读写权限来挂载 /misc/export。
关于主机名格式
单个机器 — 一个全限定域名(能够被服务器解析的),主机名(能够被服务器解析的),或 IP 地址。
使用通配符来指定的机器系列 — 使用 * 或 ? 字符来指定一个字符串匹配。IP 地址中不使用通配符;不过如果反向 DNS 查询失败,它们可能会碰巧有用。在完整域名中指定通配符时,点(.)不包括在通配符中。例如:*.example.com 包括 one.example.com,但不包括 one.two.example.com.。
IP 网络 — 使用 a.b.c.d/z,这里的 a.b.c.d 是网络,z 是子网掩码中的位数(如 192.168.0.0/24)。另一种可以接受的格式是 a.b.c.d/netmask,这里的 a.b.c.d 是网络,netmask 是子网掩码(如 192.168.100.8/255.255.255.0)。
Netgroups — 格式为 @group-name,这里的 group-name 是 NIS netgroup 的名称。
在你每次改变 /etc/exports 的时候,你必须把改变通知给 NFS 守护进程,或使用以下命令来重新载入配置文件:
在导出 NFS 文件系统的服务器上,nfs 服务必须在运行。
使用以下命令来查看 NFS 守护进程的状态:
使用以下命令来启动 NFS 守护进程:
使用以下命令来停止 NFS 守护进程:
你还可以使用 chkconfig、ntsysv 或服务配置工具来配置要在引导时启动哪些服务。
Linux 客户端配置
1.一般性配置:
打开终端,以root身份登录并执行
mount -t nfs -o option hostname:/共享目录位置 本地目录位置
例如:
mount -t nfs -o rw 172.16.31.69:/export/home/wup /mnt/69
2.在开机时自动挂载
修改/etc/fstab文件
添加一行
hostname://共享目录位置 本地目录位置 nfs defaults 0 0
例如:
172.16.31.69:/export/home/wup /mnt/69 nfs defaults 0 0
Solaris客户端配置
1.一般性配置:
打开终端,以root身份登录并执行
mount -F nfs -o option hostname:/共享目录位置 本地目录位置
例如:
mount -F nfs -o rw 172.16.31.69:/export/home/wup /mnt/69
2.在开机时自动挂载
修改/etc/vfstab文件,添加一行,格式如下:
待装载目录 - 装载目录 nfs - yes bg
实例演示
假定环境:
服务器端为RedHat Linux系统,IP地址是192.168.0.1,待共享的目录为:/usr/local/capitel/aaa
客户端为Linux系统,IP地址为192.168.0.2,装载进来的目录为/mnt/aaa
1.以命令行为例演示在服务器端配置nfs
(1).修改/etc/exports 文件。添加:
/usr/local/capitel/aaa 192.168.0.2(rw,sync)
(2).重新引导nfs
service nfs reload
2.客户端为linux
以root用户登录
mount -t nfs -o rw 192.168.0.1:/usr/local/capitel/aaa /mnt/aaa
或者在/etc/fstab中添加一行
192.168.0.1:/usr/local/capitel/aaa /mnt/aaa nfs defaults 0 0
重新启动机器即可完成自动装载
3.客户端为solaris
以root用户登录
执行mount -F nfs -o rw 192.168.0.1:/usr/local/capitel/aaa /mnt/aaa
或者添加一行
192.168.0.1:/usr/local/capitel/aaa - /mnt/aaa nfs - yes bg
重新启动机器
<meta content="text/html; charset=utf-8" http-equiv="CONTENT-TYPE">
配置Samba
默认的配置文件(/etc/samba/smb.conf)允许用户把他们的主目录作为 Samba 共享来查看。它还把为系统配置的打印机作为 Samba 共享打印机来共享。换一句话说,你可以在你的系统上连接打印机,然后从网络上的 Windows 机器来打印。
1.使用图形化界面来配置 Samba
Samba 服务器配置工具是用来管理 Samba 共享、用户、以及基本服务器设置的图形化界面。它修改 /etc/samba/ 目录中的配置文件。没有使用该程序进行的改变都会被保留。
要使用该程序,你必须在运行 X 窗口系统,具备根特权,并且安装了 redhat-config-samba RPM 软件包。要从桌面启动 Samba 服务器配置工具,点击面板上的「主菜单」 => 「系统设置」 => 「服务器设置」 => 「Samba」,或在 shell 提示(如 XTerm 或 GNOME 终端)下键入 redhat-config-samba 命令。
1.1. 配置服务器设置
配置 Samba 服务器的第一步是配置服务器的基本设置和几个安全选项。启动了应用程序后,选择「首选项」 => 「服务器设置」。
在「基本」标签上,指定计算机应在的工作组以及对计算机的简短描述。它们与 smb.conf 中的 workgroup 和 server string 选项相对应。
「安全」标签包含以下选项:
-
「验证模式」 — 它和 security 选项相对应。选择以下验证模式中的一种。
-
「ADS」 — Samba 服务器充当活跃目录域(ADS)领域中的一个成员,Kerberos 在服务器上必须被安装和配置,并且 Samba 必须使用 net 工具成为 ADS 领域的一员。net 是 samba-client 软件包的一部分。详情请参阅 samba-client 的说明书页。该选项不会把 Samba 配置成一个 ADS 控制器。
-
「域」 — Samba 服务器依赖于 Windows NT 主要或备份域控制器来校验用户。服务器把用户名和口令传递给控制器,然后等待它们被返回。在「验证服务器」字段中指定主要或备份域控制器的 NetBIOS 名称。
如果「加密口令」选项被选,它必须被设置为「是」。
-
「服务器」 — Samba 服务器试图通过把用户名和口令组合传递给另一个 Samba 服务器来校验它们。如果它无法校验,服务器会试图使用用户验证模式来校验它们。在「验证服务器」字段中指定另一个 Samba 服务器的 NetBIOS 名称。
-
「共享」 — Samba 用户不必为每个 Samba 服务器都输入用户名和口令组合。它们在试图连接 Samba 服务器上的指定共享时才会被提示输入用户名和口令。
-
「用户」 — (默认)Samba 用户必须为每个 Samba 服务器提供一个有效的用户名和口令。如果你想让「Windows 用户名」选项生效,选择这个选项。
-
-
「加密口令」 — 如果用户从 Windows 98、带有服务包3的 Windows NT 4.0、或其它最近版本的 Microsoft Windows 中连接,该选项必须被启用。口令在服务器和客户间使用加密格式而非可被截取的纯文本格式传输。它和 encrypted passwords 选项相对应。
-
「来宾账号」 — 当用户或来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器上的有效用户。选择系统上的现存用户名之一作为来宾 Samba 账号。当用户使用来宾账号登录入 Samba 服务器,他们拥有和这个用户相同的特权。该选项和 guest account 选项相对应。
点击了「确定」后,所做改变会被写入配置文件,守护进程会被重新启动;因此改变会立即生效。
1.2. 管理 Samba 用户
Samba 服务器配置工具要求在添加 Samba 用户之前,在充当 Samba 服务器的系统上必须存在一个活跃的用户账号。Samba 用户和这个现存的用户账号相关联。
要添加 Samba 用户,选择「首选项」 => 「Samba 用户」,然后点击「添加用户」按钮。在「创建新 Samba 用户」窗口中的本地系统上的现存用户列表中选择「Unix 用户名」。
如果用户在 Windows 机器上有一个不同的用户名,并将从 Windows 机器上登录入 Samba 服务器,请在「Windows 用户名」字段中指定 Windows 用户名。「服务器设置」首选项的「安全」活页上的「验证模式」 必须被设置为「用户」才能是这个选项生效。
你还需要为 Samba 用户配置一个「Samba 口令」,并再键入一次来确认这个口令。即便你选择了为 Samba 使用加密口令,仍建议你为所有用户设置一个不同于他们的系统口令的 Samba 口令。
要编辑某个现存用户,从列表中选择它,然后点击「编辑用户」。要删除某个现存的 Samba 用户,选择这个用户,然后点击「删除用户」按钮。删除 Samba 用户不会删除相关的用户账号。
点击了「确定」按钮后,用户就会被立即修改。
1.3. 添加共享
要添加共享,点击「添加」按钮。「基本」活页标签配置以下选项:
-
「目录」 — 通过 Samba 共享的目录。这个目录必须存在。
-
「描述」 — 对共享的简短描述。
-
「基本权限」 — 用户应该只能够读取共享目录中的文件还是应该能够读写共享目录中的文件。
在「访问」活页标签上,选择是否要只允许指定的用户来访问共享还是允许所有 Samba 用户来访问共享。如果你选择了要允许指定用户访问,从可用的 Samba 用户列表中选择这些用户。
点击了「确定」按钮后,共享就会立即被添加。
2. 命令行配置
Samba 使用 /etc/samba/smb.conf 作为它的配置文件。如果你改变了这个配置文件,这个改变直到你使用 service smb restart 命令重启 Samba 守护进程后才会生效。
要指定 Windows 工作组和对它的简短描述,编辑 smb.conf 文件中的以下几行:
|
把 WORKGROUPNAME 换成你的机器所属的 Windows 工作组名。BRIEF COMMENT ABOUT SERVER 是可选的,它被用作关于 Samba 系统的 Windows 注释。
要在你的 Linux 系统上创建 Samba 共享目录,在 smb.conf 文件中添加以下几行(根据你和你的系统需要修改了该文件之后):
|
上面的例子允许用户 tfox 和 carole 从 Samba 客户中读写 Samba 服务器上的目录 /home/share。
3. 加密口令
加密口令被默认启用,因为它更安全。如果加密口令没有被使用,纯文本口令就会被使用,它能够被别人使用网络分组嗅探器来截取。建议你使用加密口令。
要配置 Samba 使用加密口令,遵循以下步骤:
-
为 Samba 创建一个单独的口令文件。要根据你的现存 /etc/passwd 文件来创建,在 shell 提示下键入以下命令:
如果系统使用 NIS,键入以下命令:
mksmbpasswd.sh 脚本和 samba 软件包一起被安装在你的 /usr/bin 目录上。
-
改变 Samba 口令文件的权限许可,因此只有根用户才有读写权限:
-
这个脚本不会把用户口令复制到新文件,Samba 用户账号在没有设置口令之前不会被激活。为了更高的安全性,建议你把用户的 Samba 口令设置为不同于用户的口令的口令。要设置每个 Samba 用户的口令,使用以下命令(把 username 替换为每个用户的用户名):
-
加密口令必须被启用。由于它们被默认启用,它们不必在配置文件中被特别启用。不过,它们也不能在配置文件中被禁用。在 smb.conf 文件中,请确定以下行不存在:
如果它确实存在,请在行首加一个分号(;)来把它变成注释,这样该行就会被忽略,加密口令就会被启用。如果该行存在但没有被注释掉,请删除它或把它变成注释。
要在配置文件中特别启用加密口令,给 /etc/samba/smb.conf 文件添加以下几行:
-
在 shell 提示下键入 service smb restart 来确定 smb 服务被启动。
-
如果你想让 smb 服务被自动启动,使用 ntsysv、chkconfig、或服务配置工具来在运行时间启用它。
当使用了 passwd 命令后,pam_smbpass PAM 模块能够被用来同步用户的 Samba 口令和他们的系统口令。如果用户引发了 passwd 命令,他用来登录到红帽企业 Linux 系统的口令以及他要连接 Samba 共享所必须提供的口令就会被改变。
要启用这个功能,把以下行添加到 /etc/pam.d/system-auth 的 pam_cracklib.so 之下:
4. 启动和停止服务器
在通过 Samba 共享目录的服务器上必须运行 smb 服务。
使用以下命令来查看 Samba 守护进程的状态:
使用以下命令来启动守护进程:
使用以下命令来停止守护进程:
要在引导时启动 smb 服务,使用以下命令:
你还可以使用 chkconfig、ntsysv 或服务配置工具来配置要在引导时启动哪些服务。
Windows客户端访问Samba服务器
1.前提条件.
· 硬件联机:基本上每部计算机都以 Hub 或交换机等同类硬件设备连接,并请注意你的网络线应该都是 RJ-45 接头的并行线。
· 网络设定:除了硬件方面的联机需要注意之外,每一部 Windows 的计算机都需要在网络组态中设定以下的通讯协议:
o TCP/IC
o NetBEUI
o IPX/SPX
2.连接
需要映射网络驱动器给samba共享目录分配一个盘符。Windows系统提供了几种“映射网络驱动器”的方法,在命令行模式下,我们可以使用:“NET USE \计算机名\共享名\路径”。除了使用命令来实现之外,还可以通过以下方式设置驱动器映射,操作步骤如下:
(1).在“网上邻居”窗口选定提供共享的计算机图标,打开其共享内容窗口;
(2).选定需要映射网络驱动器,单击鼠标右键,选择“映射网络驱动器” ,打开“映射网络驱动器” 对话框;选定映射网络驱动器后,也可选择“文件”菜单“映射网络驱动器” 命令,打开“映射网络驱动器” 对话框。
(3).在“映射网络驱动器” 窗口的“驱动器”下拉列表框中已给出了系统自动指定的驱动器盘符,并给出了该“映射网络驱动器”的网络路径。用户也可以在下拉列表框中自行选择驱动器盘符;
(4).如果用户经常使用此网络驱动器,请选中“登录时重新连接”选择框,Windows每次启动时均自动连接此网络驱动器。
实例演示
以AAA服务器和web终端分离为两台机器为例说明如何架设:
假定:
AAA服务器是RedHat Linux系统 IP地址为:192.168.0.1,需要共享目录位置为:/usr/local/capitel/aaa
web终端服务器IP地址为:192.168.0.2
以命令行方式为例配置AAA服务器
1.编辑/etc/samba/smb.conf文件,添加内容如下:
[aaa] (注:共享名称)
comment = 注释
valid users = username(注:这个username必须是本地用户帐号)
path = /usr/local/capitel/aaa
writable = yes
public = yes
browseable = yes
share modes = no
create mask = 0777
force create mask = 0777
directory mode = 777
2.然后,以root权限执行smbpasswd username会让你输入密码。
3.最后如果smb服务在运行则重启一下smb服务:service smb restart,如果smb服务没有启动则运行:service smb start
4.在windows客户端,按照“Windows客户端访问Samba服务器”的步骤设置完成后假设映射的驱动器盘符是z:,则在web.xml文件中
<init-param>
<param-name>aaa_config_file_path</param-name>
<param-value>z:\etc\raddb</param-value>
</init-param>
<!--This section is the aaa server license file path-->
<init-param>
<param-name>aaa_license_file_path</param-name>
<param-value>z:\sbin</param-value>
</init-param>
以上红字部分为修改结果。
附:
Windows访问Samba常见错误:
1.“找不到网络名”:请在linux下设定好共享目录及其父目录的权限!
注意smb.conf中netbios name不要指定为除linux主机以外的名称。
2.“拒绝网络访问”:请在linux下设定好共享目录的权限。
3.“找不到网络路径”:请设定好windows及linux的网络,如ip,网关等。
4. “提供的凭据与存在的凭据集冲突”:一般都是在windows下曾经以某
帐号登录过samba服务器,然后又改用另一个帐号登录同一个服务器,
导致凭据冲突。解决办法很简单,在windows下删除先前的共享连接
再建立新连接即可:
net use \\sambaserver\previous_sharename /del
net use \\sambaserver\new_sharename passwd /USER:piggy
5. 需用户认证的samba共享必须在linux下有与samba用户对应的本地用户帐号。 至于windows工作组,无须与samba domain域相同。