前言 該方案實現的效果就是通過指定用戶名可以直接ssh連接到某個linux機器中的chroot開發環境,在 ubuntu 22.04 環境測試通過 流程 首先我們需要有個現成的 chroot 環境,我這裡是 debian10-aarch64 文件夾,如果你沒有可以參考我先前的文章製作一個: http ...
前言
該方案實現的效果就是通過指定用戶名可以直接ssh連接到某個linux機器中的chroot開發環境,在 ubuntu 22.04
環境測試通過
流程
首先我們需要有個現成的 chroot 環境,我這裡是 debian10-aarch64
文件夾,如果你沒有可以參考我先前的文章製作一個:
https://www.cnblogs.com/magicdmer/p/17640427.html
這個環境不要位於某個用戶目錄下,最好位於 opt 這種頂層目錄下,不然會出現各種許可權導致的 ssh 無法連接的問題
然後我們需要設置 chroot 環境文件夾的許可權為 755
,接著設置其 owner 為 root:root
chmod 755 -R debian10-aarch64
chown root:root -R debian10-aarch64
然後我們在外面系統創建一個用戶名,這裡我創一個用戶 debian10
adduser debian10
然後我們 cd 到 chroot 環境的 home 目錄,創建一個 debian10 用戶名文件夾當做其 chroot 環境的用戶目錄,然後修改其 owner 為 debian10:debian10
接著我們配置 ssh 配置文件,在最下麵加入
Match User debian10
ChrootDirectory /opt/debian10-aarch64
然後我們將外面 linux 環境的 /etc/passwd
和 /etc/group
拷貝到 chroot 環境的 /etc
目錄,這個步驟是為瞭解決 chroot 環境 ssh 上去後命令行只會顯示一個 $
而不是 debian10@xxxx$
的問題
接著我們要解決 chroot 環境無法 su 到 root 用戶的問題,這個需要我們先從外面 linux 環境使用 chroot 進去,這樣我們預設就是 root 用戶,就可以執行一些安裝操作,我們需要安裝一個 sudo,安裝完後,我們需要修改 sudoer 文件,這裡我們使用 visudo
指令來修改,這樣方便 sudo 即刻生效,添加下麵這條:
debian10 ALL=(ALL:ALL) NOPASSWD:ALL
然後我們就可以 ssh 上去,使用 sudo -i
來切換到 root 用戶,或者使用 sudo 指令來執行一些命令了