linux下开通ftp账号的问题
linux下我想开通一个权限较低的ftp账号,比如,账号:fff,密码:ddd,该账号默认访问的是/var/www/html/xxx/文件夹,该如何操作呢?用的是vsftp
------解决方案--------------------添加用户:useradd fff
对新用户进行密码设定:passwd fff
默认的用户具有ftp权限,对默认的访问目录进行修改:
修改/etc/vsftpd.conf,
[root@zzw vsftpd]# echo local_root=/home >> vsftpd.conf
[root@zzw vsftpd]# echo chroot_local_user=YES >> vsftpd.conf
[root@zzw vsftpd]# echo anon_root=/home >> vsftpd.conf
执行上面的命令,是将用户的目录作为默认的目录,其他的目录进行相应的修改
然后重新启动ftp服务,即可
------解决方案--------------------建议用虚拟用户吧,这个最安全!
vsftp下建立虚拟用户
vsftp下建立虚拟用户
在RedHat AS4里,是自带了vsftpd为系统提供了一个ftp服务,但在实际应用中根据自己的需要还是要做不少的配置。我们知道,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问ftp,但有时我们只想提供ftp服务,而避免用户用ftp的帐号去登录linux,采用一般的方式只能是限制该用户的访问权限,但还是避免不了用户登录进linux系统,所以比较好的方法是用vsftpd的虚拟用户(virtual users)。
一、建立虚拟用户数据库
# vi /tmp/logins.txt 它的内容是:
longyufei
1985731
liushuai
123456
虚拟用户的信息,格式:
<用户名>
<密 码>
(注意前后不能有空格!)
二、以root用户登录系统,建立用户数据库
# db_load -T -t hash -f /tmp/logins.txt /etc/vsftpd_login.db
建立数据库文件 /etc/vsftpd_login.db,同时改变它的文件属性:
# chmod 600 /etc/vsftpd_login.db
三、建立PAM文件,告诉系统你要使用自己的数据库
# vi /etc/pam.d/ftp.vu
内容:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
告诉系统,将新用户授权库了。
四、为虚拟用户建立文件夹并授权
# useradd -d /ftp -s /sbin/nologin virtual(-d 用户的主目录。-s 用户名默认使用的shell ,virtual用户名)
# chown -R virtual.virtual /ftp (更改/ftp目录使用者。)
五、修改vsftpd.conf文件
# vi /etc/vsftpd/vsftpd.conf,在后面加上(我的配置中只保留了一下内容):
anonymous_enable=NO
local_enable=YES
connect_from_port_20=YES
listen=YES
listen_port=21
tcp_wrappers=YES
guest_enable=YES
guest_username=virtual(所有虚拟用户等同于virtual这个系统账号的权限)
user_config_dir=/etc/vsftpd/user_config_dir(指定每个虚拟用户账号配置目录,)
pam_service_name=ftp.vu(要和刚才建的PAM文件对应)
local_root=/www (指定默认的ftp目录,如果不设置,则默认的ftp目录为ftp这个系统账号的默认目录(见/etc/passwd文件内容))
user_config_dir 文件里面对应的longyufei用户的配置文件:
/etc/vsftpd/user_config_dir/longyufei
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/www/longyufei
anon_mkdir_write_enable=YES
(要注意的是文件夹的权限问题。)