环境:Windows XP SP2 + VMware Workstation 6.1 + Red Hat Enterprise 5.1

 

本文内容是自己实践加网上搜索的资料。

 

(一)Linux下的FTP配置步骤:(1) 检查是否安装了vsftpd:
rpm -qa | grep -i vsftpd

(2)让系统服务随着系统启动而启动:
chkconfig vsftpd on

(3)启动vsftpd服务器:
/etc/init.d/vsftpd start

(4)测试:
ftp localhost
若正常,则会出现登录信息.

(5)配置vsftpd,修改如下:
1)将 anonymous_enable=YES 改为 anonymous_enable=NO,表示将允许匿名用户登录改为不允许。
2)去掉#chroot_list_enable=YES前的#,并将修改为 chroot_list_enable=NO,表示允许用户离开本目录。
或者:去掉#chroot_list_enable=YES前的#,同时把 chroot_list_file=/etc/vsftpd/chroot_list 前面的#去掉,并在目录/etc/vsftpd/中创建文件chroot_list,添加用户。这个则表示除了chroot_list文件列表中的用户不能离开主目录外,其他本地用户可以离开本目录。
或者:在#chroot_list_enable=YES 前面添加行 chroot_local_user=NO,表示允许用户离开本目录。如果添加chroot_local_user=YES则表示将本地用户锁定在本目录。
3)userlist_enable=YES 改为 userlist_enable=NO,禁止用户限制功能。
4)将/etc/vsftpd/ftpuser文件中的用户root去掉,表示允许root登录。ftpusers文件列表中的用户不允许登陆到ftp服务器。

(6)将SEliunx给禁用掉,vi /etc/selinux/config,设置 SELINUX=disabled。

(7)重启机器。

然后就可以使用root登录了。

如果遇见登录vsftpd发现提示如下错误:cannot change directory:/root  是因为SE配置的关闭了ftp的原因。
使用命令:getsebool ftpd_disable_trans
能够查看当前的状态假如不是on
那么是输入命令:setsebool ftpd_disable_trans 1
当然也能够加入-P参数 以便无需每次开机都输入这个命令
setsebool -P ftpd_disable_trans 1
同理 假如smb服务也碰到相同的问题 ,也能够这么做。
setsebool -P samba_enable_home_dirs=1
selinux的问题也能够使用 管理工具中的 selinux management 来调整相关配置。

关于ftp服务器基本配置:
目录: /etc/vsftpd,它的下面有五个文件:
chroot_list:默认是不存在,在里面添加用户后,在chroot_list_enable=YES的情况下将这些用户锁定在本目录。    
ftpusers:不允许登陆到ftp服务器的用户
user_list: 在vsftpd.conf中,userlist_deny=yes,则不允许文件列表中的用户登录到ftp服务器,这个是默认的。userlist_deny=NO,则仅允许文件列表中的用户登录。
vsftpd.conf:主要配置文件
vsftpd_conf_migrate.sh

 

(二)Linux下的SAMBA配置步骤:

(1) 查看SAMBA是否安装
 rpm -qa | grep -i samba

[root@localhost samba]# rpm -qa | grep -i samba samba-common-3.0.33-3.28.el5 samba-client-3.0.33-3.28.el5

RHEL5默认只安装了客户端。

(2)如果没有安装服务器端,则下载服务器端源代码,进入source3目录(source4目录是测试版本,前者是稳定版本),执行下列安装步骤:
./autogen.sh
./configure
make
make install
(3)在源代码的目录中的examples中,将smb.conf.default复制到 /usr/local/samba/lib目录下并更名为smb.conf.
/usr/local/samba/bin/testparm
检查smb.conf配置语法是否错误和设置是否成功.
(4)配置smb.conf
#vi smb.conf
有两个地方非改不可
workgroup=workgroup(我的windows机器的工作组名称)
增加:unix charset=cp936
dos charset=cp936
display charset=cp936
这三条设置的目的是在win机上使用“网络邻居“共享到linux上的文件夹和文件时,显示汉字。
(5)增加smb用户

1. 将/etc/ld.so.conf 中新加入一行:/usr/local/samba/lib,这步是为了解决一个错误(用下面的命令增加smb用户报错): error while loading shared libraries: libwbclient.so.0: cannot open shared object file: No such file or directory

2. 然行运行 ldconfig 


3.假设linux上已有一个用户名为cj,那么:/usr/local/samba/bin/smbpasswd -a cj,就把cj增加为smb用户了。
(6)启动smb服务
service iptables stop
service network restart
/usr/local/samba/sbin/smbd -D
/usr/local/samba/sbin/nmbd -D
(7)将smb服务设为开机启动。
vi /etc/rc.d/rc.local
加入/usr/local/samba/sbin/smbd -D
/usr/local/samba/sbin/nmbd -D
就可以了。
(8) 此时我们服务器上没有设置任何共享目录,下面我们在服务器上设置一个共享目录:
    # mkdir /home/public
    # chmod 777  /home/public
    # vi   /usr/local/samba/lib/smb.conf
    把光标移动配置文件的最后一行,在下面加入以下配置
# This is samba text
[text]
comment = text
path = /home/public
writable = yes
public = yes
存盘退出,重启 samba 服务器。


另外:
samba安装目录下有一个docs子目录,有一个samba-howto.pdf文档,非常详尽,汉字显示的解决就是看了这个才解决的。
http://www.linuxsir.org/bbs/showthread.php?postid=1288908

 

(三)将windows共享目录映射到linux下的命令例子:

mount -t cifs -o username="administrator",password="123456" //192.168.0.2/LinuxDisk /home/cj

mount -t smbfs -o username="administrator",password="123456" //192.168.0.2/LinuxDisk /home/cj
后者可能有问题,错误提示是:mount: unknown filesystem type 'smbfs'
rhel5已经不再支持smbfs了,而改用了Common Internet File Systemcifs(cifs)取代了原有的smbfs.