一、Linux的用戶及用戶組與權限
?1.1、Linux的用戶和用戶組內容介紹
序號 | Linux的用戶角色 | 說明 |
1 | 超級用戶 | 擁有對系統的最高管理權限,可執行任意操作,默認是root用戶 |
2 | 普通用戶 | 只能對自己目錄下的文件進行訪問和修改,具有登錄系統的權限(如:www用戶、ftp用戶、nginx用戶等) |
3 | 虛擬用戶 | 也叫“偽”用戶,這類用戶最大的特點是不能登錄系統,它們的存在主要是方便系統管理,滿足相應的系統進程對文件屬主的要求(如:系統默認的bin、adm、nobody用戶等); |
![]() ![]() |
序號 | 用戶和用戶組關系 | 說明 |
1 | 一對一 | 一個用戶可以存在一個組中,也可以是組中的唯一成員 |
2 | 一對多 | 一個用戶可以存在多個用戶組中(此時用戶具有多個組的共同權限) |
3 | 多對一 | 多個用戶可以存在一個組中,這些用戶具有和組相同的權限 |
4 | 多對多 | 多個用戶可以存在多個組中(多個用戶可分別在多個組中,是前三種關系的拓展) |
序號 | 用戶和用戶組配置文件 | 說明 |
1 | /etc/passwd | 是系統用戶配置文件,是用戶管理中最重要的一個文件(這個文件記錄了Linux系統中每個用戶的一些基本屬性,并且對所有用戶可讀) |
2 | /etc/shadow | 是用戶影子文件,存儲用戶密碼(由于/etc/passwd文件是所有用戶都可讀的,這樣就導致了用戶的密碼容易出現泄露,因此,linux將用戶的密碼信息從/etc/passwd中分離出來,單獨的放到了一個文件中,這個文件就是/etc/shadow,該文件只有root用戶擁有讀權限) |
3 | /etc/group | 用戶組配置文件,用戶組的所有信息都存放在此文件中 |
4 | /etc/login.defs | 用來定義創建一個用戶時的默認設置(如:指定用戶的UID和GID的范圍,用戶的過期時間、是否需要創建用戶主目錄等等) |
5 | /etc/default/useradd | 定義了新建用戶的一些默認屬性(如:用戶的主目錄、使用的shell等等,通過更改此文件,可以改變創建新用戶的默認屬性值) |
6 | /etc/skel | 是目錄,定義了新建用戶在主目錄下默認的配置文件,更改/etc/skel目錄下的內容就可以改變新建用戶默認主目錄的配置文件信息 |
?1.2、Linux的用戶和用戶組操作命令
序號 | 用戶操作命令 | 說明 |
1 | useradd | 創建一個新的Linux用戶 語法:useradd [選項] 登錄名 常用選項如下:【其他的選項內容可用命令[useradd -h]查看】 《1》-u uid:用戶編號,此編號必須唯一; 《2》-g group:指定新建用戶登錄時所屬的默認組(主組)此用戶組必須已經存在; 《3》-G group:指定新建用戶的附加組,此群組必須已經存在(附加組是相對與主組而言的,當一個用戶同時是多個組中的成員時,登錄時的默認組成為主組,而其它組稱為附加組); 《4》-d home:指定新建用戶的默認主目錄(若不指定,系統會在/etc/default/useradd文件指定的目錄下創建用戶主目錄); 《5》-s shell:指定新建用戶使用的默認shell(若不指定,系統以/etc/default/useradd文件中定義的shell作為新建用戶的默認shell); 《6》-o uid:允許使用重復的 UID 創建用戶; |
2 | usermod | 修改已有的Linux用戶信息 語法:usermod [選項] 登錄名 常用選項如下:【其他的選項內容可用命令[usermod -h]查看】 《1》-u uid:指定用戶新的UID值,此值必須為唯一的ID值,除非用-o選項; 《2》-g group:修改用戶所屬的組名為新的用戶組名,此用戶組名必須已經存在; 《3》-G group:修改用戶所屬的附加組; 《4》-d 主目錄:修改用戶登錄時的主目錄; 《5》-s shell:修改用戶登錄系統后默認使用的shell; 《6》-o uid:允許使用重復的 UID 創建用戶; 《7》-L:鎖定用戶密碼,使密碼無效; 《8》-U:解除密碼鎖定; |
3 | userdel | 刪除指定用戶,若指定“-r”參數不但刪除用戶,同時刪除用戶的主目錄以及目錄下的所有文件 |
| ||
序號 | 用戶組操作命令 | 說明 |
1 | groupadd | 添加新的用戶組 語法:groupadd [選項] 組 |
2 | newgrp | 主要用于在多個用戶組之間進行切換 |
3 | groupdel | 刪除用戶組(若用戶組中仍包含某些用戶,則必須先刪除這些用戶后,然后才能刪除用戶組) |
|
?1.3、Linux中的權限及其切換用戶操作?
Linux中的用戶與權限操作https://coffeemilk.blog.csdn.net/article/details/149037758
二、Linux的環境變量
?2.1、Linux的常用環境變量及其操作
序號 | 環境變量操作 | 命令內容 | 說明 |
1 | 查看環境變量 | env | 可列出所有已經定義的環境變量內容 |
echo | 查看環境變量的語法:echo $環境變量名稱 | ||
2 | 常見環境變量 | 常見系統環境變量: PATH、PWD、BASH、LANG、USER、HOSTNAME、HOME、SHELL | |
3 | 自定義環境變量 | export? | 《1》可查看所有導出的的變量內容【export】 《2》定義并設置自定義變量 注意:環境變量可以在命令行中設置,但用戶注銷時這些值將丟失,環境變量均為大寫,必須用export命令導出 |
4 | 清除環境變量 | unset | |
?2.2、Linux的環境變量文件
序號 | 環境變量文件 | 說明 |
1 | /etc/profile | 屬于全局環境變量配置文件 |
2 | .bash_profile .bashrc | 屬于用戶環境變量文件 |
當某個Linux用戶登錄系統時,shell會首先執行系統默認的配置文件【/etc/profile】然后會自動執行【.bash_profile】文件,如果【.bash_profile】文件不存在,則接著讀取【~/.bashrc】文件。 |
?2.3、添加環境變量
序號 | 添加用戶環境變量的操作 |
1 | 打開需操作用戶主目錄下的【?.bash_profile】文件,然后添加需要配置的環境變量內容 |
2 | 配置文件環境變量文件后,執行source命令馬上生效 |
環境變量配置文件使用原則: 2、需要對全局生效的環境變量配置,都配置到/etc/profile文件中; |
三、sudo的權限配置解析及其使用
?3.1、sudo權限配置說明
sudo命令的配置文件是【/etc/sudoers】 注意一:編輯sudo命令的配置文件必須使用獨有的命令【visudo】打開操作,該工具會給你自動檢查語法內容; 注意二:不要使用vi或vim打開,否則一旦因為語法寫錯會造成嚴重的后果。 | ||
序號 | sudo配置及其說明 | |
1 | 1、root 表示用戶; 2、ALL 表示從任何的主機上都可以執行(也可以是指定網段如:192.168.166.0/24); 3、(ALL) 是以誰的身份來執行,ALL表示代表root用戶可以以任何人的身份來執行命令; 4、ALL 表示任何命令; 這條規則配置的完整含義是【root用戶可以在任何主機以任何人的身份來執行所有的命令】。 規則配置語法:【who where whom command】(即:是誰在什么位置以誰的身份執行什么命令) | |
2 | 這條配置表示【只允許coffeemilk用戶在 192.168.166.0/24 網段上連接主機并且以root權限執行useradd 命令】 | |
3 | 這條配置表示【允許www用戶可在任何主機上以root身份執行所有命令,且不用輸入密碼,可執行的所有命令中除了修改用戶密碼、不能修改root用戶密碼、不能使用su命令切換外的其他所有命令】該命令一般給應用程序配置用戶使用 | |
4 | 這條配置表示【允許wheel用戶組可在任意主機上以任何人的身份來執行所有命令】只用將用戶添加到這個組下就具有這個組的權限了; 注意:這條配置在centos7及其更高版本默認已經開放%wheel這一行,但是之前的centos版本沒有啟用 | |
5 | 這條配置表示【允許wheel用戶組可在任意主機上以任何人的身份來執行所有命令,并且不用輸入密碼】 |
?3.2、sudo權限配置使用
#編輯sudo文件
visudo /etc/sudoers#示例1:給testuser用戶配置sudo權限(只允許testuser用戶在192.168.1.1-192.168.1..254網段內以root身份執行任何命令,且需要輸入testuser用戶自己的密碼,除了不能修改所有用戶密碼和切換用戶)
testuser 192.168.1.0/24=(root) ALL,!/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su
#編輯sudo文件
visudo /etc/sudoers#示例2:給testuser用戶配置sudo權限(只允許testuser用戶在192.168.1.1-192.168.1..254網段內以root身份執行任何命令,且不用輸入testuser用戶自己的密碼,除了不能修改所有用戶密碼和切換用戶)
testuser 192.168.1.0/24=(root) NOPASSWD:ALL,!/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su
#示例3:將testuser333用戶添加到wheel組中,讓testuser333用戶擁有wheel組的權限
usermod -G wheel testuser333#將用戶testuser333從wheel用戶組中移除【注意:執行該命令在root用戶下執行,若在當前用戶下執行則需要退出該用戶后重新登錄后權限才會失效】
gpasswd -d testuser333 wheel