Linux創(chuàng)建用戶組并分配用戶權(quán)限方式
一、如何創(chuàng)建用戶組
在 Linux 系統(tǒng)中,創(chuàng)建用戶組可以使用 groupadd 命令。
以下是創(chuàng)建用戶組的具體步驟和常用選項(xiàng):
1. 創(chuàng)建用戶組
groupadd groupname
groupname 是你希望創(chuàng)建的用戶組名稱。
該命令將創(chuàng)建一個(gè)新的用戶組,默認(rèn)情況下,組的 GID(組 ID)會(huì)由系統(tǒng)自動(dòng)分配。
示例:
groupadd developers
這會(huì)創(chuàng)建一個(gè)名為 developers 的用戶組。
2. 指定 GID(組 ID)
如果你希望為新用戶組指定一個(gè)特定的 GID,可以使用 -g 選項(xiàng)來指定該 GID。
groupadd -g GID groupname
GID是你希望指定的組 ID。groupname是你希望創(chuàng)建的用戶組名稱。
示例:
groupadd -g 1001 dev_team
這將創(chuàng)建一個(gè) GID 為 1001 的用戶組 dev_team。
3. 查看用戶組是否已創(chuàng)建
創(chuàng)建完用戶組之后,你可以通過以下命令來檢查該組是否存在:
getent group groupname
示例:
getent group developers
如果該用戶組存在,命令將返回該組的信息。
4. 查看所有用戶組
你還可以查看系統(tǒng)中所有的用戶組列表,使用以下命令:
cat /etc/group
這將列出所有的用戶組信息。
二、創(chuàng)建用戶
在 Linux 系統(tǒng)中,可以通過以下方法創(chuàng)建用戶和查看系統(tǒng)中的所有用戶。
1. 創(chuàng)建用戶
要在 Linux 系統(tǒng)中創(chuàng)建一個(gè)新用戶,可以使用 useradd 命令。
sudo useradd username
username 是你要?jiǎng)?chuàng)建的用戶的用戶名。
默認(rèn)情況下,這將創(chuàng)建一個(gè)沒有指定主目錄的用戶。如果你希望為該用戶創(chuàng)建主目錄,并為其設(shè)置密碼,可以使用以下命令:
創(chuàng)建用戶并指定主目錄:
sudo useradd -m username
-m 選項(xiàng)會(huì)為新用戶創(chuàng)建主目錄,目錄路徑通常為 /home/username。
設(shè)置用戶密碼:
sudo passwd username
執(zhí)行后,系統(tǒng)會(huì)提示你為該用戶設(shè)置密碼。
其他常用選項(xiàng):
-s:設(shè)置用戶的默認(rèn) shell。例如,如果你想為用戶指定 /bin/bash 作為 shell,可以使用 -s /bin/bash。-G:將用戶添加到多個(gè)組中。例如,將用戶添加到 sudo 和 docker 組:
sudo useradd -m -G sudo,docker username
2. 查看系統(tǒng)中的所有用戶
要查看系統(tǒng)中的所有用戶,可以通過以下幾種方式:
方式 1: 查看 /etc/passwd 文件
系統(tǒng)的所有用戶信息存儲(chǔ)在 /etc/passwd 文件中。你可以通過以下命令查看該文件:
cat /etc/passwd
每一行都表示一個(gè)用戶,格式如下:
username:x:UID:GID:comment:home_directory:shell 示例: zs:x:1000:1000:dk:/home/zs:/bin/bash
- username 是用戶名。
- UID 是用戶的唯一標(biāo)識(shí)符(User ID)。
- GID 是用戶所在組的標(biāo)識(shí)符。
- comment 包含關(guān)于用戶的額外信息。
- home_directory 是用戶的主目錄。
- shell 是用戶的默認(rèn) shell。
方式 2: 使用 cut 命令只列出用戶名
如果只想列出系統(tǒng)中的所有用戶名,可以通過以下命令:
cut -d: -f1 /etc/passwd
這會(huì)列出 /etc/passwd 文件中的所有用戶名。
三、分配用戶權(quán)限
groupadd -g 1002 docker
創(chuàng)建了這個(gè)用戶組后可以干嘛呢?
創(chuàng)建了 docker 用戶組后,你可以將用戶添加到這個(gè)組,并為該組的成員配置特定的權(quán)限。用戶組本身是一個(gè)邏輯集合,用于對(duì)用戶進(jìn)行分組管理,以便更高效地控制對(duì)系統(tǒng)資源的訪問權(quán)限。
以下是創(chuàng)建 docker 用戶組后你可以做的幾件事情:
1. 將用戶添加到 docker 用戶組
假設(shè)你創(chuàng)建了 docker 用戶組,接下來你可以將現(xiàn)有用戶添加到該用戶組,以便賦予他們?cè)L問 docker 相關(guān)權(quán)限。
尤其是在某些 Linux 系統(tǒng)中,docker 組用于控制對(duì) Docker 守護(hù)進(jìn)程(docker daemon)的訪問權(quán)限。只有加入 docker 組的用戶才有權(quán)限執(zhí)行 docker 命令(不需要使用 sudo)。
usermod -aG docker username
username 是你要添加到 docker 用戶組的用戶名。
示例:
sudo usermod -aG docker zs
這會(huì)將用戶 zs添加到 docker 組。
2. 配置 Docker 權(quán)限
在大多數(shù) Linux 系統(tǒng)中,docker 守護(hù)進(jìn)程通常會(huì)運(yùn)行在 root 權(quán)限下。
如果沒有將用戶添加到 docker 組,用戶每次執(zhí)行 docker 命令時(shí)都會(huì)需要使用 sudo。但是,添加到 docker 組的用戶可以在不使用 sudo 的情況下直接運(yùn)行 Docker 命令。
示例:
通過添加用戶到 docker 組后,用戶就可以直接運(yùn)行 docker 命令,如:
docker ps
如果沒有將用戶添加到 docker 組,則運(yùn)行命令時(shí)會(huì)提示需要 sudo 權(quán)限:
sudo docker ps
3. 查看和管理用戶組
你可以通過查看 /etc/group 文件或使用 groups 命令來確認(rèn)用戶是否已成功添加到 docker 用戶組:
查看某個(gè)用戶所屬的所有組:
groups username
4. Docker 安全性
通過將用戶添加到 docker 用戶組,實(shí)際上是在授予該用戶對(duì) Docker 守護(hù)進(jìn)程的訪問權(quán)限。因?yàn)?Docker 守護(hù)進(jìn)程有能力以 root 權(quán)限訪問宿主機(jī)的文件系統(tǒng)和資源,所以將用戶添加到 docker 組中,意味著該用戶可以執(zhí)行可能帶有系統(tǒng)風(fēng)險(xiǎn)的操作。
5. 組的作用:權(quán)限控制
在沒有 Docker 的情況下,docker 用戶組本身只會(huì)作為一種分組工具,不會(huì)直接影響其他操作系統(tǒng)資源。你可以利用用戶組來組織其他操作系統(tǒng)級(jí)別的權(quán)限控制(例如,文件、目錄的讀寫權(quán)限)。
舉例:
你可以創(chuàng)建 docker 組,并將需要使用特定文件夾或資源的用戶添加到該組中。然后,使用 chown 和 chmod 命令,指定文件或目錄的所有者和權(quán)限,使得 docker 組中的用戶能夠訪問或修改該資源。
6. 問題
創(chuàng)建用戶組docker是不是表示加入這個(gè)組的用戶就能使用docker命令了?
答:是的,創(chuàng)建一個(gè)名為 docker 的用戶組,并將用戶加入該組,意味著這些用戶可以在不使用 sudo 的情況下執(zhí)行 Docker 命令。這是因?yàn)?Docker 默認(rèn)情況下需要 root 權(quán)限,而通過將用戶添加到 docker 組,可以賦予這些用戶 Docker 守護(hù)進(jìn)程的訪問權(quán)限。
添加用戶到組后,用戶需要重新登錄才能生效??梢赃x擇注銷并重新登錄。
為什么需要這個(gè)組?
Docker 守護(hù)進(jìn)程通常是以 root 用戶身份運(yùn)行的。為了避免每次運(yùn)行 Docker 命令時(shí)都需要使用 sudo,你可以將用戶添加到 docker 組,從而授予該用戶對(duì) Docker 守護(hù)進(jìn)程的訪問權(quán)限。docker 組的權(quán)限等效于對(duì)
Docker 守護(hù)進(jìn)程的訪問控制,允許用戶執(zhí)行 Docker 命令而不需要管理員權(quán)限。
所以用戶組名稱需要跟具體命令一致嗎?
不,用戶組名稱不需要和具體的命令名稱一致。你可以為用戶組選擇任何名字,但通常情況下,像 docker 這樣的名稱是為了直觀地表示這個(gè)組的目的(即管理 Docker 權(quán)限)。
在 Linux 系統(tǒng)中,用戶組名稱只是一個(gè)標(biāo)識(shí)符,用于對(duì)一組用戶進(jìn)行分組。一個(gè)用戶組的名稱并不需要與具體命令(如 docker)相同。
Docker 用戶組的名稱 docker 是 Docker 官方建議的慣例。創(chuàng)建這個(gè)用戶組的目的是為了簡(jiǎn)化 Docker 的權(quán)限管理,使得加入該組的用戶能夠無 sudo 執(zhí)行 Docker 命令。
可以使用其他名稱嗎?
理論上,你可以創(chuàng)建一個(gè)用戶組,命名為任何你喜歡的名字,比如 docker-users、devops 等,然后將用戶加入這個(gè)組,也能實(shí)現(xiàn)類似的效果。但關(guān)鍵是,Docker 守護(hù)進(jìn)程會(huì)檢查 docker 組,而不是其他組。因此,如果你使用了其他組名稱,你可能需要做一些額外的配置,來確保 Docker 守護(hù)進(jìn)程能識(shí)別并允許該組的用戶執(zhí)行 Docker 命令。
舉個(gè)例子:
如果你創(chuàng)建一個(gè)自定義的組,比如 docker-admin,你可以將用戶添加到該組,但需要確保 Docker 守護(hù)進(jìn)程能識(shí)別該組。
但如果你直接使用默認(rèn)的 docker 組,Docker 會(huì)自動(dòng)識(shí)別并賦予該組的成員對(duì) Docker 命令的訪問權(quán)限。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux實(shí)現(xiàn)雙網(wǎng)卡綁定的代碼詳解
linux 主機(jī)安裝雙網(wǎng)卡,共享一個(gè)IP地址,對(duì)外提供訪問,實(shí)際同樣連接兩條物理線路到交換機(jī)實(shí)現(xiàn)平時(shí)雙網(wǎng)卡同時(shí)工作,分流網(wǎng)絡(luò)壓力,同時(shí)提供冗余備份,監(jiān)控,防止物理線路的單點(diǎn)故障,本文介紹了Linux實(shí)現(xiàn)雙網(wǎng)卡綁定的代碼示例,需要的朋友可以參考下2024-07-07
Linux 安裝二進(jìn)制MySQL 及 破解MySQL密碼的方法
這篇文章主要介紹了Linux 安裝二進(jìn)制MySQL 及 破解MySQL密碼的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
linux查看防火墻狀態(tài)與開啟關(guān)閉命令詳解
linux查看防火墻狀態(tài)與開啟關(guān)閉命令常用的有以下兩種方式,大家可以參考一下2018-03-03
Apache Pulsar 微信大流量實(shí)時(shí)推薦場(chǎng)景下實(shí)踐詳解
這篇文章主要為大家介紹了Apache Pulsar 微信大流量實(shí)時(shí)推薦場(chǎng)景下實(shí)踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
linux服務(wù)器下完美解決無法刪除虛擬主機(jī)文件或文件夾
大家在使用Linux的虛擬主機(jī)時(shí)候有沒有出現(xiàn)過通過FTP無法刪除網(wǎng)站路徑中的一些文件夾和文件,FTP工具軟件會(huì)提示Permission Denied(沒有權(quán)限),或者 550刪除目錄操作失敗2016-08-08

