环境:CentOS 6.6
目标:个人虚机部署vsftp服务器,供测试使用。
说明:步骤已改写为脚本,直接添加用户与对应的密码列表,调用函数名即可
##################################################################################### ##函数功能:安装sftp服务器,并设置用户 ##使用方法:直接调用函数名称 ## vsftp_install_set ##代码测试:CentOS 6.6 X64下测试通过 #注意事项: # 用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级 # 要添加的sftp用户列表和密码顺序要一一对应 ##################################################################################### v_sftp_group="sftp" v_sftp_dir="/data/sftp" v_user_list=( sms tom ) v_pwd_list=( '!#@' #注意:密码为!#@ asfwe_12 ) sftp_install_set(){ #yum -y install openssh groupadd ${v_sftp_group} mkdir -p ${v_sftp_dir} sed -i 's/^Subsystem/#&/g' /etc/ssh/sshd_config cat>>/etc/ssh/sshd_config<<EOF Subsystem sftp internal-sftp Match Group ${v_sftp_group} ChrootDirectory ${v_sftp_dir}/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no EOF for (( i = 0; i < ${#v_user_list[*]}; i++ )); do for (( j = i; j < ${#v_pwd_list[*]}; j++ )); do if [[ j -eq i ]]; then useradd -g ${v_sftp_group} -d ${v_sftp_dir}/${v_user_list[i]} -s /bin/false ${v_user_list[i]} echo ${v_pwd_list[j]} | passwd --stdin ${v_user_list[i]} #ChrootDirectory必须是root用户所有,否则报错:Couldn't read packet: Connection reset by peer #该目录赋权为755或750 chown root:${v_sftp_group} ${v_sftp_dir}/${v_user_list[i]} chmod 755 ${v_sftp_dir}/${v_user_list[i]} #设置用户自己可读写的目录,否则在ChrootDirectory下没有读写权限 mkdir -p ${v_sftp_dir}/${v_user_list[i]}/upload chown ${v_user_list[i]}:${v_sftp_group} ${v_sftp_dir}/${v_user_list[i]}/upload chmod 755 ${v_sftp_dir}/${v_user_list[i]}/upload mkdir -p ${v_sftp_dir}/${v_user_list[i]}/download chown ${v_user_list[i]}:${v_sftp_group} ${v_sftp_dir}/${v_user_list[i]}/download chmod 755 ${v_sftp_dir}/${v_user_list[i]}/download fi done done #停用selinux,否则会报错:Couldn't get handle: Permission denied sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 #操作完毕,重启ssh服务 service sshd restart }