前言
今天我司開發找我修改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用戶,並設置密碼或秘鑰。
這就是進入機器的最后一道門了。有經驗的攻城獅基本都會有類似操作,關鍵時候真可以救命~