寫在前面:
用戶和用戶組管理,顧名思義就是添加用戶和用戶組、更改密碼和設定權限等操作,日常中我們使用個人計算機的時候,這方面的感官可能并不強烈,執行一些操作,更多的是管理員賬戶,其他普通用戶使用極少,但在 Linux系統服務器上用戶的劃分是很明確的,Linux系統就是通過用戶的區分來限定權限,繼而約束用戶的操作行為,所以學習用戶相關的管理命令是 及其實用和必不可少的,

一、Linux系統用戶概念篇
1.Linux 是多用戶多任務作業系統,換句話說,Linux 系統支持多個用戶在同一時間內登陸,不同用戶可以執行不同的任務,并且互不影響,
2.每個用戶都有唯一的用戶名和密碼,在登錄系統時,只有正確輸入用戶名和密碼,才能進入系統和自己的主目錄,
3.用戶的賬號一方面可以幫助系統管理員對使用系統的用戶進行跟蹤,并控制他們對系統資源的訪問;另一方面也可以幫助用戶組織檔案,并為用戶提供安全性保護,
用戶分類:
1.系統用戶:為了能夠讓那些后臺行程或服務類行程以非管理員的身份運行,通常需要為此創建多個普通用戶,這類用戶從來不用登陸系統,
2.登錄用戶:就是我們一般使用登錄linux的用戶,
useradd 【命令新建用戶】
語法格式:
useradd [選項] 用戶名
引數說明:
-c comment 指定一段注釋性描述,
-d 目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄,
-g 用戶組 指定用戶所屬的用戶組,
-G 用戶組,用戶組 指定用戶所屬的附加組,
-s Shell檔案 指定用戶的登錄Shell,
-u 用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重復使用其他用戶的標識號,
操作示例:
[root@bd15-21-129-82 ~]# useradd csdn #創建一個普通新用戶 csdn
提示:創建用戶的同時還會創建一個與用戶名相同的用戶組,在/home 的目錄下會創建一個csdn的目錄,這個就是csdn用戶的家目錄
同功能的命令還是有一個 adduser
兩個用戶創建命令之間的區別
adduser: 會自動為創建的用戶指定主目錄、系統shell版本,會在創建時輸入用戶密碼,
useradd:需要使用引數選項指定上述基本設定,如果不使用任何引數,則創建的用戶無密碼、無主目錄、沒有指定shell版本,
userdel 【洗掉用戶】
命令說明:如果一個用戶的賬號不再使用,可以從系統中洗掉,洗掉用戶賬號就是要將/etc/passwd等系統檔案中的該用戶記錄洗掉,必要時還洗掉用戶的主目錄,
語法格式:
userdel 選項 用戶名
常用的選項是 -r,它的作用是把用戶的主目錄一起洗掉,
操作示例;
[root@bd15-21-129-82 ~]# userdel csdn #只洗掉用戶
[root@bd15-21-129-82 ~]# userdel -r csdn #洗掉用戶和用戶的家目錄
usermod 【修改賬號】
命令說明:修改用戶賬號就是根據實際情況更改用戶的有關屬性,如用戶號、主目錄、用戶組、登錄Shell等,
語法格式:
usermod 選項 用戶名
引數:
引數說明:
-c<備注> 修改用戶帳號的備注文字,
-d登入目錄> 修改用戶登入時的目錄,
-e<有效期限> 修改帳號的有效期限,
-f<緩沖天數> 修改在密碼過期后多少天即關閉該帳號,
-g<群組> 修改用戶所屬的群組,
-G<群組> 修改用戶所屬的附加群組,
-l<帳號名稱> 修改用戶帳號名稱,
-L 鎖定用戶密碼,使密碼無效,
-s<shell> 修改用戶登入后所使用的shell,
-u<uid> 修改用戶ID,
-U 解除密碼鎖定,
操作示例:
[root@bd15-21-129-82 ~]# usermod -d /home/hnlinux root #更改登錄目錄
[root@bd15-21-129-82 ~]# usermod -u 777 root #改變用戶的uid
提示:usermod 的作用是修改用戶,而useradd 是添加用戶,本質上都是對用戶的操作,所有引數作用大部分是類似的,只是命令不同,就是添加和修改的區別,
passwd 【修改密碼】
命令說明:指定和修改用戶口令的Shell命令是passwd,超級用戶可以為自己和其他用戶指定口令,普通用戶只能用它修改自己的口令,
語法格式:
passwd 選項 用戶名
引數:
-f 強迫用戶下次登錄時修改口令,
-l 鎖定口令,即禁用賬號
-d 使賬號無口令
-u 口令解鎖,
操作示例:修改csdn用戶的密碼
[csdn@bd15-21-129-82 ~]$ passwd
Changing password for user csdn.
Changing password for csdn.
(current) UNIX password: #輸入當前的用戶密碼
New password: #輸入用戶的新密碼
如果是root 用戶,可以修改任意用戶的密碼:
操作示例:
[root@bd15-21-129-82 ~]# passwd csdn
Changing password for user csdn.
New password: #直接輸入用戶的新密碼
Retype new password: #再次輸入用戶的新密碼
passwd: all authentication tokens updated successfully. #用戶密碼修改成功
提示:普通用戶修改自己的口令時,passwd命令會先詢問原密碼,驗證后再要求用戶輸入兩遍新密碼,如果兩次輸入的密碼一致,則將這個密碼指定給用戶;而超級用戶為用戶指定密碼時,就不需要知道原密碼,
為了系統安全起見,用戶應該選擇比較復雜的密碼,例如最好使用8位長的密碼,口令中包含有大寫、小寫字母和數字,并且應該與姓名、生日等不相同,
su 【切換用戶】
su命令用于切換當前用戶身份到指定用戶或者以指定用戶的身份執行命令或程式,
普通用戶切換到root用戶,可以使用su – 或su root,但是必須輸入root密碼才能完成切換,root用戶切換到普通用戶,可以使用su username,不需要輸入任何密碼即可完成切換,
語法格式: su [選項] [用戶名]
常用引數:
-c或--command 執行完指定的指令后,即恢復原來的身份
-f或--fast 適用于csh與tsch,使shell不用去讀取啟動檔案
-l或--login 改變身份時,也同時變更作業目錄,以及HOME,SHELL,USER,logname,此外,也會變更PATH變數
-m,-p或--preserve-environment 變更身份時,不要變更環境變數
-s或--shell 指定要執行的shell
--help 顯示幫助資訊
--version 顯示版本資訊
操作示例:
[root@bd15-21-129-82 ~]# su csdn #切換到csdn用戶,但環境變數仍然是root用戶的
[root@bd15-21-129-82 ~]# su - sdn #切換到csdn用戶,并改變為csdn用戶環境變數
【sudo vs su】

在某些Linux發行版(如Ubuntu)上,出于安全原因,默認情況下 root用戶帳戶被禁用,這意味著沒有為root設定密碼,并且您不能使用su切換到root,
更改為root的一個選項是在su命令前加上sudo,然后輸入當前登錄的用戶密碼:
sudo su -
sudo命令允許您以默認用戶(root)的其他用戶身份運行程式,
如果以sudo授予用戶評估,則將以root身份呼叫su命令,運行sudo su -并使用用戶密碼與使用root密碼運行su -相同,
與-i選項一起使用時,sudo在root用戶的環境中運行互動式登錄Shell:
sudo -i
sudo -i與運行su -基本相同,
與su相比,使用sudo的優勢在于無需在多個管理用戶帳戶之間共享root密碼,
此外,通過sudo,您可以允許用戶僅以root特權運行特定程式,
二、Linux系統用戶組概念
用戶組分類:
用戶組分類方式有三種:
1.管理員組、普通用戶組(系統用戶組,登錄用戶組)
2.用戶的基本組、用戶附加組
3.私有組、公共組
每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理,不同Linux 系統對用戶組的規定有所不同,如Linux下的用戶屬于與它同名的用戶組,這個用戶組在創建用戶時同時創建,
用戶組的管理涉及用戶組的添加、洗掉和修改,組的增加、洗掉和修改實際上就是對/etc/group檔案的更新
groupadd 【新增用戶組】
語法格式:
groupadd 選項 用戶組
引數選項:
-f, --force 如果組已經存在則成功退出并且如果 GID 已經存在則取消 -g
-g, --gid GID 為新組使用 GID
-h, --help 顯示幫助資訊并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默認值
-o, --non-unique 允許創建有重復 GID 的組
-p, --password PASSWORD 為新組使用加密過的密碼
-r, --system 創建一個系統組
操作示例:
[root@bd15-21-129-82 ~]# groupadd group1 #增加了一個新組group1
[root@bd15-21-129-82 ~]# groupadd -g 888 g2 #添加一個用戶組并指定GID
[root@bd15-21-129-82 ~]# groupadd -r -g 889 g3 #使用 -r 創建系統作業組
說明:groupadd 命令是系統管理員命令,用于創建一個新組,groupadd 命令使用命令列上指定的值以及系統中的默認值創建一個新的組帳戶,新組將根據需要被添加到系統檔案中,
groupdel【洗掉用戶組】
語法格式:
groupdel 用戶組
用法示例:
[root@bd15-21-129-82 ~]# groupdel group2 #洗掉用戶組 group2
說明:groupdel 命令洗掉群組,其實就是洗掉 /etc/gourp 檔案和 /etc/gshadow 檔案中有關目標群組的資料資訊,需要從系統上洗掉群組時,可用groupdel(group delete)指令來完成這項作業,倘若該群組中仍包括某些用戶,則必須先洗掉這些用戶后,方能洗掉群組,
三、用戶和用戶組相關的系統檔案
1./etc/passwd檔案
/etc/passwd檔案是用戶管理作業涉及的最重要的一個檔案,Linux系統中的每個用戶都在/etc/passwd檔案中有一個對應的記錄行,它記錄了這個用戶的一些基本屬性,這個檔案對所有用戶是可讀的,
[root@10-90-50-73-jhdxyjd ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
/etc/passwd中每一行記錄著一個用戶的相關資訊,每行記錄又被冒號(:)分隔為7個欄位,其含義如下:
用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell
用戶名:通常長度不超過8個字符,并且由大小寫字母和/或數字組成,登錄名中不能有冒號(😃,因為冒號在這里是分隔符,為了兼容起見,登錄名中最好不要包含點字符(.),并且不使用連字符(-)和加號(+)打頭,
口令:這個欄位存放的只是用戶口令的加密串,不是明文,但是由于/etc/passwd檔案對所有用戶都可讀,所以這仍是一個安全隱患,因此,現在許多Linux 系統(如SVR4)都使用了shadow技術,把真正的加密后的用戶口令字存放到/etc/shadow檔案中,而在/etc/passwd檔案的口令欄位中只存放一個特殊的字符,例如“x”或者“*”
用戶標識號:一般情況下它與用戶名是一一對應的,如果幾個用戶名對應的用戶標識號是一樣的,系統內部將把它們視為同一個用戶,但是它們可以有不同的口令、不同的主目錄以及不同的登錄Shell等,
組標識號:對應著/etc/group檔案中的一條記錄,
注釋性描述:比如用戶的真實姓名、電話、地址等,這個欄位并沒有什么實際的用途,在不同的Linux 系統中,這個欄位的格式并沒有統一,在許多Linux系統中,這個欄位存放的是一段任意的注釋性描述文字,用做finger命令的輸出,
主目錄:它是用戶在登錄到系統之后所處的目錄,在大多數系統中,各用戶的主目錄都被組織在同一個特定的目錄下,而用戶主目錄的名稱就是該用戶的登錄名,各用戶對自己的主目錄有讀、寫、執行(搜索)權限,其他用戶對此目錄的訪問權限則根據具體情況設定,
登錄Shell:用戶登錄后,要啟動一個行程,負責將用戶的操作傳給內核,這個行程是用戶登錄到系統后運行的命令解釋器或某個特定的程式,即Shell,
尖叫提示:如果你su - 某個用戶不可用,但是用戶存在,這個時候你就可以將/etc/passwd里面用戶的/sbin/nologin/改成/bin/bash即可登錄額哦,

2./etc/group檔案
/etc/group檔案存放著用戶組的所有資訊,此檔案的格式也類似于/etc/passwd檔案,由冒號(:)隔開若干個欄位,這些欄位有:
組名:口令:組標識號:組內用戶串列
組名:用戶組的名稱,由字母或數字構成,與/etc/passwd中的登錄名一樣,組名不應重復,
口令:存放的是用戶組加密后的口令字,一般Linux 系統的用戶組都沒有口令,即這個欄位一般為空,或者是*,
組標識號:和用戶標識號類似,也是一個整數,被系統內部用來標識組,
組內用戶串列:記錄這個組的所有用戶的串列,不同用戶之間用逗號(,)分隔,這個用戶組可能是用戶的主組,也可能是附加組,
示例檔案:
[root@10-90-50-73-jhdxyjd ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299270.html
標籤:其他
上一篇:銳捷校園網連接路由器免認證
