[TOC] linux 用戶管理 用戶的基本操作 用戶管理 1.什麼是用戶? 2.那Linux與windows系統的用戶有什麼區別? python 本質都是登錄系統的,只不過Linux支持多用戶同時登錄,windows預設不支持,但是修改 的情況下也是可以多用戶登錄的。 python 1)系統中的進 ...
目錄
linux 用戶管理 - 用戶的基本操作
用戶管理
1.什麼是用戶?
用戶指的是能夠正常登錄Linux或windows系統
2.那Linux與windows系統的用戶有什麼區別?
本質都是登錄系統的,只不過Linux支持多用戶同時登錄,windows預設不支持,但是修改`組策略`的情況下也是可以多用戶登錄的。
3.用戶的作用
1)系統中的進程(運行的程式),都是需要特定的用戶來運行的
2)管理文件的許可權,每一個文件都有特定的用戶擁有,所以訪問一個文件或者目錄受到用戶的限制
3)進程能夠以何種方式訪問某一個文件或目錄,和進程所關聯的用戶有關
4.如何查看系統中所存在的用戶?
1)查看當前系統用戶信息
[root@db04 ~]# id
uid=0(root) gid=0(root) 組=0(root)
[root@db04 ~]# id zls
uid=602(zls) gid=602(zls) 組=602(zls)
2)每一個文件都有所有者
[root@db04 tmp]# ll
總用量 12
drwxr-xr-x 2 zls zls 4096 6月 2 20:44 zls
drwxr-xr-x 2 oldboy oldboy 4096 6月 2 20:44 oldboy
drwxr-xr-x 2 student student 4096 6月 2 20:44 student
3)每一個進程都有用戶運行
[root@db04 ~]# ps -ef|less
5.用戶相關配置文件
用戶的信息存放在/etc/passwd
用戶的密碼都保存在/etc/shadow
這兩個文件是linux
系統中最重要的文件之一。
如果沒有這兩個文件或者這兩個文件出問題,會導致無法正常登錄linux
系統。
1)/etc/passwd
賬戶文件
[root@zls ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
1 2 3 4 5 6 7
註釋: /etc/passwd由 ':' 為分割符, 分為7個欄位,每個欄位的具體含義如下:
欄位名稱 註釋說明
1.用戶名稱 #用戶的賬號名稱
2.密碼占位符 #存放賬戶的口令,暫用x表示,密碼保存在/etc/shadow
3.用戶的UID #用戶標識號
4.用戶基本組GID #組標識號
5.用戶註釋 #用戶詳細信息
6.用戶家目錄 #root家目錄是/root普通用戶家目錄存在/home/username(可自定義)
7.用戶登錄Shell #用戶登錄Linux使用的shell #cat /etc/shells
2)/etc/shadow
用戶密碼文件
[root@zls ~]# tail -1 /etc/shadow
zls1:!!:16312:0:99999:7:::
註釋: /etc/shadow由 ':' 為分割符, 分為9個欄位,每個欄位的具體含義如下:
欄位名稱 註釋說明
1.用戶登陸名 #用戶的賬號名稱
2.加密後的密碼 #用戶密碼,這是加密過的口令(未設密碼時為!!)
3.最近一次密碼更改時間 #從1970年到最近一次更改密碼時間之間過了多少天
4.密碼最少使用幾天 #密碼最少使用幾天才可以更改密碼(0表示無限制)
5.密碼最長使用幾天 #密碼使用多少天需要修改密碼(預設99999永不過期)
6.密碼到期前警告期限 #密碼過期前多少天提醒用戶更改密碼(預設過期提前7天警告)
7.密碼到期後保持活動的天數 #在此期限內, 用戶依然可以登陸系統並更改密碼, 指定天數過後, 賬戶被鎖定
8.賬戶到期時間 #從1970年起,賬戶在這個日期前可使用,到期後失效。
9.標誌 #保留
6.用戶分類(約定,規範)
用戶UID | 系統中約定的含義 |
---|---|
0 | 超級管理員(擁有最高許可權) |
1-200 | 系統用戶,系統自建,由系統分配給系統進程使用 |
201-999 | 系統用戶,咱們創建,用來運行服務賬戶,不需要登陸系統(動態分配) |
1000+ | 常規普通用戶 |
- 註意: 在CentOS7系統之前, UID1-499用於系統用戶, 而UID 500+則用於普通用戶
用戶的相關命令
#### 1.`useradd`
使用useradd
和adduser
這兩個命令,來創建用戶
添加用戶前需要確定:
確定用戶的預設組是否有特殊要求
確定用戶是否允許登陸
確定用戶的密碼策略
確定用戶的有效期
確定用戶的uid是否有特殊要求
1)使用useradd
命令新增用戶, 註意: adduser
命令軟鏈接指向useradd
命令
-u | 指定用戶的UID,不能和現有ID衝突 |
---|---|
-g | 指定用戶用戶預設基本組 |
-G | 指定用戶附加組,用逗號隔開添加多個附加組 |
-d | 指定用戶家目錄 |
-c | 指定用戶註釋信息 |
-M | 不建立家目錄 |
-s | 指定用戶預設shell |
-r | 創建系統賬戶, 沒有家目錄 |
-a | 附加組,都留下,配合-G,追加 |
#創建zls用戶,指定UID5001,基本組students 附加組sa,dba 註釋信息:one newB user, 登陸的shell:/bin/bash
[root@zls ~]# groupadd sa
[root@zls ~]# groupadd dba
[root@zls ~]# groupadd students
[root@zls ~]# useradd -u 5001 -g students -G sa,dba -c "one newB user" -d /home/zls -s /bin/bash zls
[root@zls ~]# tail -1 /etc/passwd
zls:x:5001:505:one newB user:/home/zls:/bin/bash
//創建系統用戶,不建立用戶家目錄 指定nologin使其用戶無法登陸系統
[root@zls ~]# useradd mysql -M -s /sbin/nologin
[root@zls ~]# useradd -r dba -s /sbin/nologin
2)使用usermod
命令修改用戶組
-u | 修改用戶的UID |
---|---|
-g | 修改用戶所屬的基本組GID |
-G | 修改用戶附加組, 使用逗號隔開多個附加組, 覆蓋原有的附加組 |
-a | 追加更多的附加組, 必須和-G使用: -aG 追加附加組 |
-m | 家目錄遷移, 必須和-d一起使用, 移動用戶的家目錄到新的位置 |
-d | 指定用戶的家目錄新位置 |
-c | 修改用戶的註釋信息 |
-s | 更改用戶使用的shell |
-l | 更改用戶登錄名 |
-L | 鎖定用戶 |
-U | 解鎖用戶 |
[root@zls ~]# grep "zls" /etc/passwd
zls:x:5001:505:2018 new student:/home/zls:/bin/bash
//修改用戶uid,gid, 附加組, 註釋信息, 用戶家目錄, 登錄shell, 登錄名
//建立組,指定組gid
[root@zls ~]# groupadd -g 5008 network_sa
[root@zls ~]# groupadd -g 5009 devops
//修改用戶屬性
[root@zls ~]# usermod -u 6001 -g5008 -a -G 5009 -c "2019 new student" -md /zls -s /bin/sh -l zls_zls zls
//檢查是否修改成功
[root@zls ~]# grep "zls" /etc/passwd
zls_zls:x:6001:5008:2019 new student:/zls:/bin/sh
[root@zls ~]# id zls_zls
uid=6001(zls_zls) gid=5008(network_sa) groups=5008(network_sa),503(sa),504(dba),5009(devops)
//驗證家目錄
[root@zls ~]# ll -d /zls
drwx------. 2 zls_zls network_sa 4096 2014-09-23 00:13 /zls
鎖定用戶
[root@zls ~]# echo "123" |passwd --stdin zls_zls
[root@zls ~]# usermod -L zls_zls
//無法正常登錄系統
➜ ~ ssh [email protected]
[email protected]'s password:
Permission denied, please try again.
解鎖用戶
[root@zls ~]# usermod -U zls_zls
//正常登錄系統
➜ ~ ssh [email protected]
[email protected]'s password:
Welcome to Aliyun Esc Linux
-sh-4.1$