通過SSH以root使用者登入遠端伺服器(主要是要有超級管理者權限),可以是遠端伺服器主機,亦可是安裝在遠端伺服器主機上的docker、podman等容器(需提前啟動)。
在遠端伺服器上配置好編譯環境,然後添加低權限使用者(所有使用者共用一個端口,使用同一個容器):
一、賬戶管理
指令行建立新的使用者賬戶:
使用useradd時若不設定其它參數,可能出現在/home目錄未建立和使用者名同名的目錄,且存在密碼洩漏風險(密碼記錄在/etc/passwd而不是/etc/shadow),推薦使用adduser。
useradd <username> -m -b /home -d /home/<username> -p <passwords> -s /bin/bash //或使用passwd <username>添加密碼
adduser <username>
預設情況下,在Ubuntu上,sudo組的成員被授予sudo通路權限。如果希望新建立的使用者具有管理權限,請将使用者添加到sudo組:
sudo usermod -aG sudo username //更通用的方式是使用
visudo
指令編輯
/etc/sudoers
檔案
visudo -f /etc/sudoers
指令行删除使用者賬戶:
推薦使用deluser
userdel <username>
要删除使用者而不删除使用者檔案,請運作:
deluser <username>
如果要删除并且删除使用者的家目錄和郵件使用
--remove-home選項
:
deluser --remove-home <username>
檢視所有使用者和使用者組:
cat /etc/shadow //檢視系統中存在的所有使用者。
cat /etc/group //檢視系統中存在的所有使用者組。
修改檔案(夾)所有者和通路權限:
chown(英文全拼:change owner)指令用于設定檔案(夾)的所有者和關聯組
chmod(英文全拼:change mode)指令是控制使用者對檔案的權限的指令
二、SSH管理
service ssh status
service ssh start //容器中在root使用者啟動ssh後,隻要不使用podman stop <container-name>,容器中的ssh針對所有使用者均保持啟動狀态。
service ssh restart
容器中啟動ssh狀态總是sshd is not running
Linux使用者管理和SSH遠端配置
問題:單容器多使用者,直接在主控端使用低權限使用者登入進容器,目前環境變量配置均是root,比如 echo $HOME,echo $USER,echo $LOGNAME 等均是root使用者的配置。但遠端PC使用SSH登入容器時卻不會這樣???
三、其它
podman建立容器參數配置參考:
通過SSHFS可将遠端伺服器目錄挂載到本地計算機。
mount: sshfs [email protected]:/home/slf/SSHMountDir /home/pc/246_Server -p 60040
umount: fusermount -u /home/pc/246_Server
有多個使用者的分布式遠端檔案系統較常使用諸如蘋果歸檔協定(AFP)、網絡檔案系統(NFS)和伺服器消息塊(SMB)。SSHFS是這些協定的備選方案,僅适合用于使用者确信檔案和目錄不會同時在被另一個使用者寫入。
SSHFS在與其他網絡檔案系統協定相比時的優點是,由于使用者已具有對主機的SSH通路,它不需要任何額外的配置工作,也不需要在防火牆中打開額外的傳入端口。
檢視已經開啟的端口:sudo ufw status
打開端口:sudo ufw allow <port>
開啟防火牆:sudo ufw enable
重新開機防火牆:sudo ufw reload
檢視指令用法:sudo ufw --help(不支援 -h)
鄭重提示:①本文不允許轉載,若認可本文,可點贊收藏關注。
②若有疑問,可在評論區留言互相讨論。