Linux —用戶和組

Linux 用戶和組

1、用戶和組的概念

用戶的作用:

  • Authentication:認證
  • Authorization:授權
  • Accouting:審計

用戶存在的最終目的:

  • 為了實現資源的分派

組的作用:

  • 將具有相同特徵的用戶放在一起組成一個整體
  • 當用戶過多時方便管理

1.1Linux安全上下文

Linux通過安全上下文的概念完成用戶許可權的指派。

  • 先判斷用戶是否是某文件的屬主
  • 再判斷用戶是否是該文件屬組中的一員
  • 最後定其為其它用戶

運行中的程式:進程(process)

  • 以進程發起者的身份運行
    • root:cat
    • zsl:cat
  • 進程所能夠訪問的所有資源的許可權取決於進程的發起者身份

2 用戶分類

Linux分為root用戶、系統用戶、普通用戶:

用戶分類 用戶ID(uid)
root用戶 0
系統用戶 1~499(為守護類進程獲取系統資源而完成許可權指派的用戶)
普通用戶 500~65535(為了完成互動式登錄使用的用戶)

3 組的分類

用戶組分類 特性
基本組 用戶的默認組
附加組(額外組) 基本組以外的其它組

4、用戶和組相關的配置文件

4.1各種配置文件

配置文件 作用
/etc/passwd 用戶及其屬性資訊(用戶名稱、uid、基本組id等等)
/etc/shadow 用戶密碼及其相關屬性
/etc/group 組及其屬性資訊
/etc/gshadow 組密碼及其相關屬性

4.2 配置文件解析

  • /etc/passwd

root:x:0:0:root:/root:/bin/bash

欄位 含義
第一欄位 用戶名
第二欄位 密碼佔位符
第三欄位 UID
第四欄位 GID
第五欄位 用戶的描述資訊
第六欄位 用戶家目錄
第七欄位 用戶的登錄shell
  • /etc/shadow

adm:*:18397:0:99999:7:::

欄位 含義
第一欄位 用戶名
第二欄位 加密後的密碼
第三欄位 最近一次更改密碼的日期
第四欄位 密碼的最小使用期限
第五欄位 密碼的最大使用期限
第六欄位 密碼警告時間段
第七欄位 密碼禁用期
第八欄位 帳號的過期日期
第九欄位 保留欄位
  • /etc/group

root:x:0:

欄位 意義
第一欄位 組名
第二欄位 組密碼
第三欄位 GID
第四欄位 以當前組為附加組的用戶列表
  • /etc/gshadow

root:::

欄位 意義
第一欄位 用戶組
第二欄位 用戶組密碼
第三欄位 用戶組管理者
第四欄位 組成員

5、用戶管理命令

5.1 查看用戶資訊命令—id

id			//查看用戶的帳號屬性資訊
	-u		//查看UID
	-g		//查看GID
	-G		//查看Gruops

5.2 創建用戶命令—useradd

//語法格式:useradd [option] USERNAME
			-u	UID			        //指定用戶uid
			-g	GID			        //指定用戶所屬基本組,可為組名或GID,組必須事先存在
			-G	gruopname			//附加組,可以有多個,用逗號隔開。組必須事先存在
			-c	"COMMENT"			//注釋資訊
			-d	directory			//指定用戶的家目錄。此目錄不能事先存在
			-s	shell				//指定用戶的shell,最好使用/etc/shells裡面有的shell
			-M					//創建用戶時不給其創建家目錄
			-r					//添加一個系統用戶

5.3 刪除用戶命令—userdel

//語法格式:userdel [option] USERNAME
			-r	//刪除用戶的同時刪除其家目錄(userdel默認不會刪除其家目錄)

5.4 修改用戶屬性命令—usermod

//語法格式:usermod [option] USERNAME
		-u UID
    -g GID
    -a -G groupname	//不使用-a選項,會覆蓋此前的附加組
    -m -d   		//改變用戶家目錄的同時把原來家目錄的文件移動到新的家目錄中
    -e YYYY-MM-DD       //指明用戶帳號過期日期
    -f INACTIVE         //設定非活動期限
    -L      		//鎖定帳號;被鎖定的帳號在/etc/shadow文件中密碼前面會有一個!感嘆號
    -U      		//解鎖帳號
    -s SHELL		//修改用戶登錄shell

5.5 修改用戶密碼過期資訊—change

//語法格式:chage [option] USERNAME
    -d  //最近一次更改密碼的時間
    -E  //改變帳號的過期日期
    -I  //設置帳號非活動期限                          
    -l  //列出用戶的密碼資訊
    -m  //設置帳號密碼的最小使用天數
    -M  //設置帳號密碼的最大使用天數 
    -W  //設置帳號密碼過期警告時間

5.6切換用戶命令su

  • su 命令用法

管理員用戶 su 切換至其他用戶不需要密碼,非管理員用戶 su 切換至其他用戶時需要輸入目標用戶的密碼

//語法:su [options] [-] [USER NAME]
    -c 'COMMAND'    //切換身份執行命令,命令執行結束後又回到原來的身份
su的用法 特點
su USERNAME 非登錄式切換,即不會讀取目標用戶的配置文件
su - USERNAME 登錄式切換,即會讀取目標用戶的配置文件。完全切換
  • bash的配置文件:
配置文件類型 配置文件路徑
全局配置 /etc/profile,/etc/profile.d/*.sh,/etc/bashrc
用戶配置 ~/.bash_profile,~/.bashrc
配置文件類型 功能
profile類 為互動式登錄的shell提供配置,用來設定環境變數、運行命令或腳本
bashrc類 為非互動式登錄的shell提供配置,用來設定本地變數、定義命令別名
  • 非登錄式shell如何讀取配置文件?
 ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
  • 登錄式shell如何讀取配置文件?
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

6、密碼管理命令

6.1 密碼管理命令passwd

語法:passwd [options] [USERNAME]
    --stdin     	//從標準輸入獲取用戶密碼;例:echo "redhat"|passwd --stdin user1
    -l      		//鎖定用戶
    -u      		//解鎖用戶
    -d      		//刪除用戶密碼
    -n mindays     	//指定最短使用期限
    -x maxdays     	//指定最長使用期限
    -w warndays     	//提前多少天開始警告
    -i inactivedays     //非活動期限,密碼過期後到禁用前的這段時間

6.2 密碼生成工具openssl

//語法:openssl command [command_opts] [command_args]
    command         //包含標準命令、消息摘要命令、加密命令
        version     //查看程式版本號
        dgst        //提取特徵碼
        passwd      //生成密碼
        rand        //生成偽隨機數

//提取特徵碼
[root@localhost ~]# openssl dgst -md5 /etc/fstab
MD5(/etc/fstab)= 1e5e9207c47ba4e9393b153dc3b0375a

//生成密碼 openssl passwd -1 -salt 'string'
[root@localhost ~]# echo "zsl" | openssl passwd -1 -salt hellonihao -stdin
$1$hellonih$hSAyL4yP5lbKiUh76Z6W30

//生成隨機數 openssl rand -base64 NUM ; NUM表示隨機數的長度
[root@localhost ~]# openssl rand -base64 20
aVQYKyrx8pX3y4Vjb8QBtxMbY9k=

7、組管理命令

7.1 創建組命令groupadd

//語法:groupadd [options] GROUP
    -g GID      //指定GID
    -r          //添加一個系統組

7.2 刪除組命令groupdel

//語法:groupdel [options] GROUP  刪除組時只需要指定組名即可

我的部落格即將同步至騰訊雲開發者社區,邀請大家一同入駐://cloud.tencent.com/developer/support-plan?invite_code=2dvc41qyytj40


Tags: