前言
今天我司开发找我修改sftp的配置,要求另一个sftp用户可以拥有写权限。
但是sftp服务的本身机制就限制死了在同个文件夹中给非用户成员。
哪怕是同组成员添加写权限,因为文件夹最高权限就是755(详情可以参考我另一篇博文 sftp的搭建 ,如果文件夹权限过高,则会无法进行sftp连接。
这可咋办呢?
正文
不知道咋办也没办法呀,硬着头皮上吧。
于是我开始有了一堆骚想法,比如修改root的用户组,使其可以和sftp_user用户在同个组里,从而方便其余操作。
usermod -g sftp_user root
于是,我将root添加到了sftp_user组中,然后没过一会儿,就报了一个错误。
This service allows sftp connections only.
直接就无法ssh了!
幸亏我有一个已经连上去的session没有退出,我才可以在机器上恢复这个配置。
将root用户从sftp_user用户组中踢出去的方法是:
gpasswd -d root sftp_user
做完这个操作之后,这台机就可以正常使用root进行ssh登录了。
后记
当然,鉴于开发同事的要求不太好达到,所以我就重新起了一个sftp给他用了。
反思
经过这件事情之后,我突然想明白前公司的老哥为什么告诉我,一定要给机器留登录的后门了。
防的就是这种情况。
至于怎么留后门,可以通过添加sudo权限的用户(例如test用户),并保证root无法使用时,可以通过此用户免密登录到root去。
再具体嘛,就是在/etc/sudoers添加以下内容:
test ALL=(ALL:ALL) NOPASSWD: ALL
然后建立test用户,并设置密码或秘钥。
这就是进入机器的最后一道门了。有经验的攻城狮基本都会有类似操作,关键时候真可以救命~