歡迎來到 DevOps 之旅的第一天。 DevOps 工程師大部分時間都在使用 Linux 伺服器,無論是手動操作還是透過自動化。因此,我們將從核心部分開始: Linux 使用者管理Shell 類型

Linux 中對使用者的 CRUD 操作

可以將CRUD (建立、讀取、更新、刪除)視為系統管理的四個動詞。這與資料庫中的理念相同,但這裡將其應用於用戶:

1.建立用戶

sudo useradd yousuf

這將建立一個名為yousuf的新使用者帳戶。

您是否也想新增主目錄?請使用:

sudo useradd -m yousuf

2.讀取(檢查/顯示)用戶訊息

id yousuf
getent passwd yousuf

這將為您提供 UID(使用者 ID)、GID(群組 ID)和指派的 shell。

3.更新(修改)用戶

更改使用者的shell:

sudo usermod -s /bin/bash yousuf

更改使用者的主目錄:

sudo usermod -d /home/new_home yousuf

4.刪除用戶

刪除帳戶但保留主目錄:

sudo userdel yousuf

刪除帳戶以及主目錄:

sudo userdel -r yousuf

💡 請記住:刪除使用者並不會神奇地銷毀他們在其他地方建立的文件,除非你追蹤到他們。所以在點擊紅色按鈕前一定要三思。

互動式 Shell 與非互動式 Shell

現在讓我們加入細微差別:當使用者登入時會發生什麼?

互動式外殼

  • 使用者登入→得到提示。

  • 例子:

  $ ssh yousuf@server
  yousuf@server:~$
  • 在這裡, yousuf使用/bin/bash/bin/sh作為登入 shell。他可以互動式地執行命令。

非互動式 Shell

  • 使用者登入→無提示,無憐憫。

  • 範例 shell 為/sbin/nologin/bin/false

  • 如果有人嘗試:

  ssh yousuf@server
  • 使用/sbin/nologin :系統禮貌地說「此帳戶不可用」。

  • 使用/bin/false :立即退出,沒有訊息。

✅這對於不需要手動登入的服務帳戶(資料庫、備份代理、監控工具)很有用。

實踐挑戰

現在讓我們來處理現實世界的問題(直接來自 KodeKloud Labs)

設想:

為了適應備份代理工具的規格,xFusionCorp Industries 的系統管理團隊需要建立一個具有非互動式 shell 的使用者。

任務:應用程式伺服器 3上建立一個名為yousuf的用戶,並使用非互動式 shell。

📑連接詳細資訊(重要部分):

  • 目標伺服器: stapp03172.16.238.12

  • 登入用戶: banner

  • 密碼: BigGr33n

  • 跳轉主機: jump_host.stratos.xfusioncorp.comthor / mjolnir123

逐步解決方案

步驟 1:透過 SSH 進入 Jump Host

ssh thor@jump_host.stratos.xfusioncorp.com
# password: mjolnir123

步驟 2:從 Jump Host 透過 SSH 進入應用程式伺服器 3

ssh [email protected]
# password: BigGr33n

現在您位於 App Server 3 內。

步驟 3:使用非互動式 shell 建立用戶

我們將使用/sbin/nologin (在大多數 Linux 發行版中很常見)來確保沒有互動式登入:

sudo useradd -s /sbin/nologin yousuf

如果/sbin/nologin不可用,則回退到/bin/false

sudo useradd -s /bin/false yousuf

步驟 4:驗證用戶

getent passwd yousuf

預期輸出(範例):

yousuf:x:1005:1005::/home/yousuf:/sbin/nologin

最後一個字段確認它是非互動式的。 🎉

結論

第一天,我們:

  1. 了解使用者帳戶的 CRUD 操作。

  2. 透過清晰的範例探索互動式非互動式外殼。

  3. 在實際場景中應用這一點:在應用程式伺服器 3 上建立具有非互動式 shell 的yousuf使用者。


原文出處:https://dev.to/olymahmud/100-days-of-devops-day-1-understanding-linux-user-management-and-shells-4f8n


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝10   💬6   ❤️11
454
🥈
我愛JS
📝1   💬5   ❤️4
88
🥉
AppleLily
📝1   💬4   ❤️1
47
#4
💬2  
6
#5
💬1  
5
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次