Loading

批量创建独立sftp用户的shell脚本

我的目的是满足每一个用户只能访问它自己的目录下的upload文件夹,不能离开自己的目录

因为我只要一个组,因此把用户组在代码里写死了,这个组叫sftpusers

手动创建一下(如果需要批量创建不同组用户,代码修改一下即可)

 groupadd sftpusers

创建文件1.sh

内容为


#!/bin/bash name=$1 pass=$2 useradd -s /bin/false -g sftpusers $name if [ $? -eq 0 ];then echo -e "\033[32muser ${name}: create success\033[0m" else echo -e "\033[31muser ${name}: create false\033[0m" exit 1 fi echo $pass | passwd $name --stdin &>/dev/null if [ $? -eq 0 ];then echo -e "\033[32mpasswd ${name} create success!!!" else echo -e "\033[31mpasswd ${name} create false\033[0m" fi mkdir /home/$name/upload if [ $? -eq 0 ];then echo -e "\033[32mcreate /upload success!!!" else echo -e "\033[31mcreate /upload false\033[0m" fi chown root /home/$name chmod 755 /home/$name chown $name /home/$name/upload chmod 755 /home/$name/upload if [ $? -eq 0 ];then echo -e "\033[32mroot right success!!!" else echo -e "\033[31mroot right false\033[0m" fi echo -e "\033[33mname:$1 \033[0m" echo -e "\033[33mpasswd:$2 \033[0m" bash

给权限

chmod u+x 1.sh

 

编辑 /etc/ssh/sshd_config文件

找到subsystem这个配置项,将其修改为
subsystem sftp internal-sftp
文件末尾加上
match group sftpusers
chrootdirectory %h
forcecommand internal-sftp
allowtcpforwarding no

 

执行

./1.sh 用户名 密码

这样就创建好了,用户登入后根目录为/home/用户名 它只对里面的upload文件夹有操作权限,这样就防止逃逸

 

 

 

 

posted @ 2022-03-02 18:03  Aninock  阅读(122)  评论(0编辑  收藏  举报