從監獄中關閉主機
我在 NAS4FREE 上使用 Finch-Freebsd 創建了一個帶有 ssh 的監獄,並添加了一個本地非超級使用者來通過 ssh 訪問該監獄。
我希望能夠授予此使用者有限的 shell 訪問權限,專門用於關閉監獄,然後開始關閉監獄所在的伺服器
我怎樣才能給上述使用者有限的 shell 命令權限來啟動關機命令?
到目前為止,在嘗試發起
sh /etc/rc.shutdown
我得到以下輸出
eval:無法打開 /var/run/cron.pid:權限被拒絕停止 sshd。kill:12060:不允許操作停止 lighttpd。kill:12001:不允許操作評估:無法打開 /var/db/mysql/RemandYard.pid:權限被拒絕 pututxline:權限被拒絕終止
正如 Kassandry 所說,你不能通過監獄本身的命令來做到這一點。
但是,您可以做的是創建一個單獨的使用者(以後我將
closer
在主機系統上呼叫該使用者。應該阻止該使用者,以便它只能使用 SSH 密鑰登錄。您被監禁的使用者應該擁有私鑰和密鑰的密碼。
在主機端,您授予
closer
帳戶 sudo 權限:closer localhost=NOPASSWD:/usr/sbin/shutdown
在主機端,將 SSH 密鑰的公共部分放入
/home/closer/.ssh/authorized_keys
. 編輯密鑰,使其以command="sudo /usr/sbin/shutdown",from="1.2.3.4"
然後是實際的密鑰,都在同一行。(當然,固定 IP 地址,使其與監獄相匹配。)使
authorized_key
文件和目錄對使用者不可寫。當被監禁系統上的使用者現在使用該密鑰通過 SSH 連接到主機時,它將立即觸發關機。使用者將無法使用密鑰執行任何其他操作 - 任何時候他們使用它登錄時,它都會簡單地執行命令。密鑰只能在這個監獄中使用,因此如果他們以某種方式獲得密鑰,您就不會冒險讓全世界都有權關閉您的伺服器。