Linux中的用戶管理

用戶安全是所有操作系統都必須解決的問題,Linux是一個多用戶多任務的操作系統,用戶的安全和資源分配尤爲重要。

Linux用戶管理是基於用戶名和密碼的方式進行資源分配,每一個用戶有一個獨有的uid。Linux用戶分爲兩類:管理員root(uid=0)和普通用戶(1-65535)。普通用戶又分爲兩種:系統用戶(6:1-499;7:1-999)通常被禁止登錄系統,要做運行守護程序;登錄用戶(6:500+;7:1000+)。

Linux組:對於每一位用戶而言可以有多個不同的組,但其必須有一個主組和若干個附加組,也可以沒有附加組。

Linux用戶的管理涉及4個配置文件:

[root@localhost ~]# ll /etc/passwd /etc/shadow /etc/group /etc/gshadow
-rw-r--r--. 1 root root  992 Jul 29 14:37 /etc/group
----------. 1 root root  800 Jul 29 14:37 /etc/gshadow
-rw-r--r--. 1 root root 2367 Jul 29 16:09 /etc/passwd
-r--------. 1 root root 1523 Jul 29 16:09 /etc/shadow

Linux有一套安全的訪問控制機制(安全上下文)

對於同一個命令程序,當以不同的身份去運行時,其訪問資源的權限取決於用戶的權限

[root@localhost ~]# /usr/bin/cat /etc/shadow
root:$6$OF90srJpFS//u4dp$i0mJsuUIO1mPV02jpCZ8GLP37EmFHEqsmOB77p.wkrfO5f/E4KuCh5gV1WiJWBqJz1O8Z9tT4qtBe3YklxY.V1:17011:0:99999:7:::
bin:*:17011:0:99999:7:::
daemon:*:17011:0:99999:7:::
[nieda@localhost ~]$ /usr/bin/cat /etc/shadow
/usr/bin/cat: /etc/shadow: Permission denied

/etc/passwd:該文件記錄了用戶及其屬性信息,具體信息可man 5 passwd 查看

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

其中每個字段的意思是,用戶名:密碼佔位符:UID:GID:用戶的詳細說明:用戶家目錄:用戶默認shell

/etc/group:組及其屬性信息

[root@localhost ~]# cat /etc/group
root:x:0:

組名:組密碼佔位符:GID:以當前組爲附加組的用戶列表(逗號隔開)

/etc/shadow:用戶密碼及相關屬性

[root@localhost ~]# cat /etc/shadow
root:$6$OF90srJpFS//u4dp$i0mJsuUIO1mPV02jpCZ8GLP37EmFHEqsmOB77p.wkrfO5f/E4KuCh5gV1WiJWBqJz1O8Z9tT4qtBe3YklxY.V1:17011:0:99999:7:::

用戶名:用戶密碼(一般用sha512加密):從1970年1月1日到最近更改密碼的天數:密碼設置後幾天才能再修改(0表示可隨時修改):密碼從修改到再一次必須要修改的天數(99999永久可用):密碼過期前幾天提示(默認爲一週):密碼過期多少天后用戶被鎖定:從1970年1月1日起多少天用戶帳號失效

wKioL1ed-UjCdhRgAABWYFFnYZM339.jpg

加密算法:md5,sha1,sha224,sha256,sha384,sha512

$6$OF90srJpFS//u4dp$i0mJsuUIO1mPV02jpCZ8GLP37EmFHEqsmOB77p.wkrfO5f/E4KuCh5gV1WiJWBqJz1O8Z9tT4qtBe3YklxY.V1

以上$爲分隔符,其中6表示sha512加密算法,

OF90srJpFS//u4dp 表示salt,爲了防止反向解密,系統將隨機生成salt值再次加密

/etc/gshadow:組密碼及屬性

[root@localhost ~]# cat /etc/gshadow
root:::

組名:組密碼:組管理員列表(可以更改組成員和組密碼):以當前組爲附加組的用戶列表(分隔符爲逗號)

注意:如果一個普通用戶加入一個附加組只需更改/etc/group即可,無需該/etc/gshadow,但需要重新登錄纔能有附加組的權限。如果要給某個組添加一個管理員,如果這個管理員不是該組的成員,即使是組管理員也沒有該組的權限,同樣需要重新登錄,但該用戶可以改組密碼。

如果組沒有設密碼,用戶將無法加入組中

newgrp:登錄到一個新的組中,臨時切換主族,並且必須知道所切換組的密碼,若無則無法切換

用戶和組相關的管理命令

getent:通過關鍵字來獲取被GUN的C庫支持的條目信息

[root@localhost ~]# getent passwd root
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# getent shadow root
root:$6$OF90srJpFS//u4dp$i0mJsuUIO1mPV02jpCZ8GLP37EmFHEqsmOB77p.wkrfO5f/E4KuCh5gV1WiJWBqJz1O8Z9tT4qtBe3YklxY.V1:17011:0:99999:7:::
[root@localhost ~]# getent group root
root:x:0:
[root@localhost ~]# getent gshadow root
root:::

chfn:改變用戶的信息

[root@localhost ~]# chfn root 
Changing finger information for root.
Name [root]: hello
Office []: adwwd
Office Phone []: adwaaf
Home Phone []: awdada
Finger information changed.
[root@localhost ~]# getent passwd root
root:x:0:0:hello,adwwd,adwaaf,awdada:/root:/bin/bash
[root@localhost ~]# finger root
Login: root                       Name: hello
Directory: /root                        Shell: /bin/bash
Office: adwwd, adwaaf            Home Phone: awdada
On since Sun Jul 31 17:32 (CST) on pts/0 from 10.1.250.91
   10 minutes 58 seconds idle
On since Sun Jul 31 17:33 (CST) on pts/1 from 10.1.250.91
   2 seconds idle
Mail last read Sun Jul 31 11:22 2016 (CST)
No Plan.

chsh:改變你的登錄shell

[root@localhost ~]# chsh -s /bin/csh root
Changing shell for root.
Shell changed.
[root@localhost ~]# getent passwd root
root:x:0:0:hello,adwwd,adwaaf,awdada:/root:/bin/csh

vipw和vigw:編輯passwd和group,退出時自動檢查語法格式

pwck和grpck:手動檢查語法

useradd:創建用戶

-u UID:指定UID,默認依次使用最近的,定義在/etc/login.defs,注意:新建用戶的大部分默認設定都在次文件中

-o:配合-u不檢查uid的唯一性

-g GID:基本組,主族,默認使用與用戶名相同的名字

-c :用戶信息

-d :指定用戶家目錄,通過複製/etc/skel並重命名來實現,如果實現已存在家目錄,則不會複製環境文件

-s :指定用戶登錄shell

-G :指定附加組,逗號分隔

-N:不創建主族,使用users組做主族

-D :修改用戶默認選項,修改/etc/default/useradd的內容

-r:創建系統用戶(uid小於500或1000)

usermod:修改用戶帳號

-L:鎖定用戶帳號,禁止登錄,實質是在/etc/passwd的密碼佔位符改爲!

-U:解鎖



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章