歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux基礎教程:Linux的用戶和組管理

Linux基礎教程:Linux的用戶和組管理

日期:2017/2/28 13:49:03   编辑:Linux教程

Linux是個多用戶多任務的分時操作系統,越是對服務器安全性要求越高的服務器,越需要建立合理的用戶權限等級制度和服務器操作規范。

在Linux中主要是通過配置文件來查看和修改用戶信息

關於用戶的配置文件有四個。

/etc/passwd

/etc/shadow

/ect/group

/etc/gshadow

/etc/passwd

記錄了這個用戶的一些基本屬性

第1字段:用戶名稱

第2字段:密碼標識(表示有密碼,會去/etc/shadow下調用)

第3字段:UID

0 超級用戶

1-499 系統用戶(偽用戶)

500-65535普通用戶

第4字段:GID(用戶初始組ID)

第5字段:用戶說明

第6字段:家目錄

普通用戶:/home/用戶名

超級用戶:/root/

第7字段:登錄之後的shell

shell就是linux的命令解釋器

在/etc/passwd當中,除了標准shell是/bn/bash之外,還可以寫如/sbin/nologin(無法登錄)

對於組,有初始組和附加組的概念。

初始組:就是指用戶一建立就立刻擁有這個用戶組的相關權限,每個用戶的初始組只能有一個,一般就是和這個用戶的用戶名相同的組名作為這個用戶的初始組。

每個用戶都必須擁有一個初始組,每個用戶只能擁有一個初始組

附加組:指用戶可以加入多個其他的用戶組,並擁有這些組的權限,附加組可以有多個。

影子文件/etc/shadow

存放用戶密碼信息,只有系統管理員才有權利進行查看和修改的文件,權限為000

前面說的passwd裡只有密碼標志x,shadow存放著真正的密碼

第一個字段:用戶名

第二個字段:經過加密後的密碼(如果密碼位是!!或*代表沒有密碼,不能登錄)

第三個字段:密碼最後一次修改日期(使用1970年1月1日作為標准時間,每過一天時間戳加1)

第四個字段:兩次密碼的修改間隔時間(和第三個字段相比,也就是多少時間間隔後才能修改密碼)

第五個字段:密碼有效期(和第3字段相比)

第六個字段:密碼修改到期錢的警告天數(和第五字段相比)

第七個字段:密碼過期後的寬限天數(和第5個字段相比,0代表密碼過期後立即失效,-1代表密碼永不失效)

第八個字段:帳號失效時間(不管有效期是否到,要用時間戳表示)

第九個字段:保留

/etc/group

存放用戶組的配置信息

每添加一個用戶,就會生成和用戶名一樣的組作為用戶名的初始組

第一字段:組名

第二字段:組密碼 (root給組選個管理員,設置完密碼,管理員知道設置的密碼,就可以把其他用戶拉到組或者從組中刪除,會降低系統的安全性,通常不使用)

第三個字段:GID

第四字段:組中附加用戶(linux無法直接查看初始組,先進/etc/passwd查看初始組id,再進/etc/gourp查看組id是哪個組)

需要注意的是,linux不是用用戶名和組名來區別的,用的是UID和GID,當然,還有之前說的PID,理論上來說都是唯一的。

gshadow

用戶組管理密碼

第一字段:組名,是用戶組的名稱,由字母或數字構成。

第二字段:用戶組密碼,這個段可以是空的或!,如果是空的或有!,表示沒有密碼

第三字段:組管理者,這個字段也可為空,如果有多個用戶組管理者,用,號分割

第四字段:組內用戶列表,如果有多個成員,用,號分割

用戶的家目錄

普通用戶:/home/用戶名,所有者和所屬組都是此用戶,權限是700

超級用戶:/root/,所有者和所屬組都是root用戶,權限是550

假如通過修改/etc/passwd,將某用戶的uid更改為0,他的權限更改了,但是家目錄的位置卻沒有更改。

命令:

useradd 添加用戶

語法:useradd 【選項】用戶名

-u UID 手工指定用戶的UID號

-d 家目錄 手工指定用戶的家目錄

-c 用戶說明 手工指定用戶的說明

-g 組名 手工指定用戶的初始組

-G 組名 指定用戶的附加組(可以多個附加組,逗號分割就行了)

-s shell 手工指定用戶的登錄shell,默認是/bin/bash

其實就是修改了剛剛所說的幾個配置文件,我們也可以手動寫入這幾個文件來創建用戶

一般新建用戶使用默認值就可以了,用戶的默認值文件

GROUP=100 用戶默認組(linux系統中,有一種共有模式和私有模式,在公有模式中是這樣的,在現在的linux中,默認的是都是私有模式,在私有模式中,用戶添加是創建同名的組)

HOME=/home 用戶家目錄

INACTIVE=-1 密碼過期寬限天數 (shadow文件的第7字段相對應)

EXPIRE= 密碼失效時間 (shadow文件的第8字段相對應)

SHELL=/bin/hsah 默認的shell

SKEL=/etc/skel 模版目錄

CREATE_MAIL_SPOOL=YES 是否建立郵箱

還有另外一個默認配置文件,/etc/login.defs ,把注釋行去掉,就剩這些了、

PASS_MAX_DAYS 99999 密碼有效期 (shadow文件的第5個字段)

PASS_MIN_DAYS 0 密碼修改間隔 (shadow文件的第4個字段)

PASS_MIN_LEN 密碼最小5位(現在用的是PAM原則)

PASS_WARN_AGE 7 密碼到期警告 (shadow文件的第6個字段)

UID_MIN 500 最小uid值

UID_MAX 60000 最大UID范圍

ENCRYPT_METHOD SHA512 加密模式

passwd【選項】用戶名

-S 查詢用戶密碼的密碼狀態,僅root用戶可用

-l 暫時鎖定用戶。僅root可用

-u 解鎖用戶。僅root用戶可用

-stdin 可以通過管道符輸出的數據作為用戶的密碼

用-S來查看下密碼狀態,內容是和/etc/shadow相對應的

鎖定和解鎖用戶

實際上可以看到是shadow中的user1用戶加了!當然,我們可以手工添加。

usermod 修改用戶信息

前面的useradd所用的-u,g,G,c,L,U等對usermod來說,基本通用

chage 修改用戶密碼狀態

chage【選項】用戶名

-l 列出用戶的詳細密碼狀態

-d 修改密碼最後一次更改日期

-m 天數 兩次密碼修改間隔

-M 天數 密碼過期前警告天數

-I 天數 密碼過期後寬限天數

-E日期 帳號失效時間

我學習的時候在想,我還要記這麼多參數?就算用--help去查看也得多少時間,所以如果我用到這,我就直接用vim編輯配置文件了。

shage -d 0 user1 估計這個命令的最大作用也就是這了,要求用戶一登錄就必須設置密碼。

userdel 刪除用戶

userdel【選項】用戶名

-r 刪除用戶的同時刪除用戶家目錄

id 查詢用戶的uid

id 用戶名

su 切換用戶身份

su 【選項】用戶名

- 選項只用-,代表連用戶的環境變量一起切換

-c 命令:僅執行一次命令,而不切換用戶身份

如果在切換時沒有加-,會有各種各樣的問題

groupadd 添加用戶組

groupadd 【選項】組名

-g GID 指定組ID

groupmod【選項】組名

-g GID 修改組ID

-n新組名 修改組名

groupdel 組名 刪除用戶組

如果組中有初始用戶存在,無法刪除,附加用戶,不影響組的刪除。

gpasswd【選項】組名 把用戶添加入組或從組中刪除

-a 用戶名 把用戶加入組

-d用戶名 把用戶從組中刪除

Copyright © Linux教程網 All Rights Reserved