linux 搭建FTP服务
来源:互联网 发布:java项目经理必备技能 编辑:程序博客网 时间:2024/05/01 01:19
1,使用的软件vsftp,db4
在centos上安装vsftpd db-utils
yum install -y vsftpd db-utils
2,建立给FTP使用的帐号,下面代码里是virftp(根据自己所好修改,代码里也需要改)
useradd virftp -s /sbin/nologin
3,建立用户文件,哪怕是空文件也成
touch /etc/vsftp/vsftpd_login
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
4,建立用户配置文件模板
mkdir /etc/vsftpd/conf
touch /etc/vsftpd/conf/vsftpd_login.tmp
内容如下:
local_root=/home/virftp #这个目录可以改的,但改完后,确认目录的属主和属组
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
5,修改pam.d下面的vsftpd,只保留两行就好。记住,一定只要下面这两行
vim /etc/pam.d/vsftpd
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //如果是64位系统,则改为/lib64/security/pam_userdb.so
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //如果是64位系统,则改为/lib64/security/pam_userdb.so
6,再修改/etc/vsftpd.conf vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/conf #include子配置文件.针对各个用户
#Date: December 12 2011
USERFILE=/etc/vsftpd/vsftpd_login
USERDB=/etc/vsftpd/vsftpd_login.db
CONFBASE=/etc/vsftpd/conf
TMPCONF=/etc/vsftpd/conf/vsftpd_login.tmp
FTPBASE=/home/virftp/
FTPHOST=virftp
USERNAME=$2
if [ $# != 2 ];then
echo "Usage: $0 {create|disable|enable|passwd|delete} {username}" >&2
exit 1
fi
#Check if virtual user already exist
USERCOUNT=$(sed -n 'p;n' $USERFILE | grep -w $USERNAME | wc -l)
if [ $USERCOUNT -ne 0 ];then
echo "User $USERNAME ALREADY exist!" && exit
fi
}
check_username_notexist() {
#Check if virtual user not exist
USERCOUNT=$(sed -n 'p;n' $USERFILE | grep -w $USERNAME | wc -l)
if [ $USERCOUNT -eq 0 ];then
echo "User $USERNAME NOT exist!" && exit
fi
}
get_password() {
#Get the password
echo -n "Input password: "
read password
#Check if password is empty
if [ -z "$password" ];then
echo "Empty password!!" && exit
fi
}
update_userdb() {
#Delete the virtual user db
rm -f $USERDB
#Generate the virtual user db
db_load -T -t hash -f $USERFILE $USERDB
}
case "$1" in
'create' )
check_username_exist
get_password
#Write the username and password to $USERFILE
echo $USERNAME >> $USERFILE
echo $password >> $USERFILE
update_userdb
#Create the configure file of virtual user
cp $TMPCONF $CONFBASE/$USERNAME
#Replace the home directory name of virtual user
sed -i "s/test1/$USERNAME/g" $CONFBASE/$USERNAME
#Create the home directory of virtual user
mkdir $FTPBASE/$USERNAME
#Change the owner of home directory to OS user $FTPHOST
chown -R $FTPHOST:$FTPHOST $FTPBASE/$USERNAME
;;
'disable' )
check_username_notexist
#Change the owner of home directory from $FTPHOST to root
chown root:root $FTPBASE/$USERNAME
#Change the permissions of home directory to read-only for root
chmod 700 $FTPBASE/$USERNAME
;;
'enable' )
check_username_notexist
#Change the owner of home directory from root to $FTPHOST to root
chown $FTPHOST:$FTPHOST $FTPBASE/$USERNAME
#Change the permissions of home directory to 775 for $FTPHOST
chmod 775 $FTPBASE/$USERNAME
;;
'delete' )
check_username_notexist
#Get the row numbers of username and password of virtual user
ROWNUMBER=$(cat -n $USERFILE | sed -n 'p;n' | grep -w $USERNAME | awk '{print $1}' | head -n 1)
#Delete the username and password of virtual user from $USERFILE
sed -i "${ROWNUMBER}d" $USERFILE
sed -i "${ROWNUMBER}d" $USERFILE
update_userdb
#Delete the configure file of virtual user
rm -f $CONFBASE/$USERNAME
#Rename the home directory name of virtual user
mv $FTPBASE/$USERNAME $FTPBASE/$USERNAME.deleted
;;
'passwd' )
check_username_notexist
get_password
#Get the row numbers of username and password of virtual user
ROWNUMBER=$(cat -n $USERFILE | sed -n 'p;n' | grep -w $USERNAME | awk '{print $1}' | head -n 1)
PASSWORDNUMBER=$(expr $ROWNUMBER + 1)
sed -i "${PASSWORDNUMBER}d" $USERFILE
sed -i "${ROWNUMBER}a $password" $USERFILE
update_userdb
;;
*)
echo "Usage: $0 {create|disable|enable|passwd|delete} {username}" >&2
exit 1
;;
esac
- Linux搭建FTP服务
- linux 搭建FTP服务
- Linux下FTP服务搭建
- Linux下搭建ftp服务
- linux下ftp服务搭建
- linux下搭建FTP服务
- Linux下搭建ftp服务
- Linux下搭建FTP服务
- Linux 在 linux 中搭建 FTP 服务
- linux服务搭建----ftp与ftp yum源搭建
- linux 下ftp服务的搭建
- 如何在 linux 中搭建 FTP 服务
- Linux基础(FTP服务搭建)
- Linux下ftp服务的搭建
- Linux下快速搭建FTP服务
- Linux服务器上搭建FTP服务
- linux 搭建rsync服务、ftp服务、svn服务
- 【FTP】linux ftp服务
- iOS---Block分析
- Xcode 6制作动态及静态Framework
- 公式
- ArcEngine C++开发中的ArcGIS version not specified问题
- Servlet & JSP 基础3(无脚本的JSP)
- linux 搭建FTP服务
- 基于MFC的ActiveX控件开发
- DWR框架搭建与使用
- LeetCode(92) Reverse Linked List II
- Android开发学习笔记:Intent的简介以及属性的详解
- [LeetCode]Add Two Numbers
- 1011. World Cup Betting (20)
- 高性能JavaScript:脚本的无阻塞加载策略
- ORMLite学习入门笔记