CENTOS下建立Vsftpd虚拟用户共享WWW权限

发布时间:2017-03-28 00:33 | 人气数:1610

网站使用nginx+php-fpm,运行账户为nginx:nginx,ftp账户为myname:ftp;网站根目录为 /user/share/nginx/html;研究了一下成功了,方法如下,可供参考:

首先编辑“vsftpd.conf”:

vim /etc/vsftpd/vsftpd.conf

在文档最后添加:

guest_enable=YES #启用vsftpd虚拟用户
guest_username=nginx #虚拟用户对应的系统用户,我安装的是 nginx
#pam_service_name=vsftpd #启用 vsftpd 验证,如果文档里有这一行就注释掉
user_config_dir=/etc/vsftpd/vu_conf #虚拟用户配置文件路径
virtual_use_local_privs=yes #启用vsftpd虚拟用户,并且虚拟用户和本地用户有相同的权限。
完成后按 ESC 输入 :wp 保存并退出。然后进入“vsftpd”目录:
cd /etc/vsftpd
创建一个目录“vu_conf”:
mkdir vu_conf
然后进入此目录:
cd vu_conf
创建一个和虚拟用户名同名的文件“myname”:
touch myname
然后打开这个文件:
vim myname
按 i 键盘进入编辑模式,输入这个用户所对应的路径“local_root= /usr/share/nginx/html”然后按保存退出。最后重新启动 vsftpd 即可:
service vsftpd restart
-----------------------------

1. 添加虚拟用户口令文件

[root@CentOS5 /]#vi /etc/vsftpd/vftpuser.txt

添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。
bobyuan #用户名
123456 #密码
markwang #用户名
123456 #密码
2. 生成虚拟用户口令认证文件

将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。

首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。

[root@CentOS5 /]#rpm –qa |grep db4-utils
[root@CentOS5 /]#rpm –ivh db4-utils-4.3.29-9.fc6.i386.rpm

下面使用db_load命令生成虚拟用户口令认证文件。
[root@CentOS5 /]#db_load –T –t hash –f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
3. 编辑vsftpd的PAM认证文件

在/etc/pam.d目录下,

[root@CentOS5 /]#vi /etc/pam.d/vsftpd

将里面其他的都注释掉,添加下面这两行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
4. 建立本地映射用户并设置宿主目录权限

所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。

[root@CentOS5 /]#useradd –d /home/vftpsite –s /sbin/nologin vftpuser
[root@CentOS5 /]#chmod 700 /home/vftpsite
5. 配置vsftpd.conf(设置虚拟用户配置项)
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd.conf
guest_enable=YES #开启虚拟用户
guest_username=vftpuser #FTP虚拟用户对应的系统用户
pam_service_name=vsftpd #PAM认证文件
6. 重启vsftpd服务
[root@CentOS5 /]#service vsftpd restart
7. 测试虚拟用户登录FTP
C:\User\Administrator>ftp 192.168.120.240
连接到192.168.120.240。
220 Welcome to BOB FTP server
用户(192.168.120.240(none)):markwang
331 Please specify the password.
密码:
230 Login successful.

Linux的权限不是很细致,只有RWX三种

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。

w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。

x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。

2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。

3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外

4、目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件

关键词:CentOS权限,vsftpd, www, 网站文件权限