一, 设置相关用户,用户组,ssh配置文件
mkdir -pv /opt/ftpsite/{admin,user1}
groupadd sftpadmins
groupadd sftpusers
useradd -g sftpadmins -s /sbin/nologin -d /opt/ftpsite/ admin
passwd admin
useradd -g sftpusers -s /sbin/nologin -d /opt/ftpsite/ user1
passwd user1
vim /etc/ssh/sshd_config
Port 35021
Subsystem sftp internal-sftp
Match Group sftpadmins,sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
备注: ChrootDirectory %h ,表示用户通过sftp登录后就把根目录切换到它自己的家目录
二. 设置权限
用户测试登录成功,但因为目录都是root用户的,所以没有写入权限
修改用户权限如下
[root]# ll -d /opt/ftpsite
drwxr-xr-x 5 root root 4096 5月 11 10:59 /opt/ftpsite
说明:用户的家目录属主必须是root,且权限最高755
[root]# cd ftpsite/
[root]# ll
drwxrwx--- 2 admin sftpadmins 4096 5月 12 15:10 admin
dr-xrwx--- 2 user1 sftpadmins 4096 5月 12 12:15 user1
三、新增加管理员用户有root权限
1.
#添加用户 -d登陆起始目录; -m 自动创建目录; -s 该用户登陆后使用的shell, /bin/false ssh无法登陆;用户组; 用户名
useradd -d / -m -s /bin/false -g sftpadmin admin1
设置密码
passwd admin1
2.
#拥有root权限
修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0 ,如下所示:
admin1:x:0:5006::/:/bin/false
#用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell