环境: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
}
View Code

相关文章:

  • 2021-07-28
  • 2021-10-17
  • 2022-12-23
  • 2021-05-14
  • 2021-12-02
  • 2021-11-13
猜你喜欢
  • 2019-10-01
  • 2021-03-30
  • 2022-01-29
  • 2022-01-13
  • 2022-01-06
  • 2022-12-23
  • 2021-12-25
相关资源
相似解决方案