Linux基礎系列(四)系統用戶和組管理

Linux系統是一個多用戶、多任務的操做系統,任何一個想要使用系統資源的用戶,都必須向系統管理員申請一個帳號,並授予相應的權限給到這個帳號後才能進入系統。用戶的帳號一方面能夠幫助系統管理員對使用系統的用戶進行跟蹤,並控制他們對系統資源的訪問;另外一方面也能夠幫助用戶組織文件,併爲用戶提供安全性保護。shell


每一個用戶帳號都擁有一個唯一的用戶名和密碼。用戶只有在提供了正確的用戶名和密碼以後,纔可以進入系統和本身的主目錄。(這就相似於咱們向銀行申請我的帳號,銀行會爲你建立一個我的帳號和密碼,並只授予你部分業務有相應的權限,如存錢、轉賬,銀行能夠經過後臺跟蹤你的帳號信息,用戶享有相應的安全性保護)。安全


用戶和組的UID的定義說明bash

Linux用戶:app

管理員:UID爲「0」;ide

普通用戶: UID 爲「1-65535
ui

Linux組:加密

系統組:CentOS 6的UID爲「1-499」,CentOS 7的UID爲「1-999spa

普通組:CentOS 6的UID爲「500+」,CentOS 7的UID爲1000+操作系統


簡單的理解爲用戶名和它對應的UID、用戶組和組UID他們都是惟一,好比咱們要查看一下Root用戶的用戶屬於,能夠經過直接查詢用戶名、或者是UID,以下:token

[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@localhost ~]# id 0
uid=0(root) gid=0(root) groups=0(root)

Linux用戶和組相關的配置文件

/etc/passwd:用戶及其屬性信息(名稱、UID、基本組ID等等);

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

意義:用戶名:密碼:UID:GID:附加組:主目錄:默認shell

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

[root@localhost ~]# cat /etc/group
gentoo:x:2201:mandriva

意義:組名:組密碼:GID:以當前組爲附加組的用戶列表(分隔符爲逗號)

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

[root@localhost ~]# cat /etc/shadow
root:$1$6usIQoRH$544LSxLOucbxu6ONNAHea.:16787:0:99999:7:::

意義:用戶名:加密了的密碼:最近一次更改密碼的日期:密碼的最小使用期限:最大密碼使用期限:密碼警告時間段:密碼禁用期:帳戶過時日期:保留字段

/etc/gshadow:組密碼及其相關屬性;


用戶和組相關的管理命令


用戶建立命令:useradd

語法格式:
useradd [options] LOGIN #useradd 選項 用戶名

選項包含以下:

-u UID: 用戶號(身份標識),[UID_MIN,UID_MAX],定義在/etc/login.defs
-g GID:指明用戶所屬基本組,可爲組名,也能夠GID;
-c "COMMENT":用戶的註釋信息;
-d: 以指定的路徑爲家目錄(主目錄),若是此目錄不存在,則同時使用-m選項,能夠建立目錄;
-s SHELL: 指明用戶的默認登陸shell程序,可用列表在/etc/shells文件中;
-G GROUP1: 爲用戶指明附加組;組必須事先存在;
-r: 建立系統用戶:

組建立命令:groupadd

語法格式:
groupadd [OPTION]... group_name #groupadd 選項 用戶組

選項包含以下:

-g GID: 指明GID號;[GID_MIN,GID_MAX]
-r: 建立系統用戶:(CentOS 6 : ID<500;  CentOS 7 : ID<10)

例如:

一、增添一個新組名爲group1

#groudadd group1

二、增添一個新組名爲group2,用戶的UID120

#groupadd –g 120 group2

組刪除命令:groupdel

groupdel [OPTION]... group_name  #group 選項 組名

例如:[root@localhost ~]# groupdel Linux

例如:建立用戶Jim,登陸shell/bin/csh,附加組爲Admin,註釋信息爲"Gentoo Distribution",家目錄爲/usr/jim

[root@localhost ~]# groupadd Admin
[root@localhost ~]# useradd -s /bin/csh -GAdmin -c "Gentoo Distribution" -d /usr/jim -m jim

刪除用戶命令 userdel

命令語法:userdel [OPTION]... login  #userdel 選項 用戶名

-r:刪除用戶家目錄;

例如:[root@localhost ~]# userdel -r jim #刪除用戶jim以及家目錄

切換用戶或以其餘用戶身份執行命令:su

語法格式:su [options...] [-] [user [args...]]

例如:

[root@localhost ~]# su jimjimlv  #切換至用戶jimjimlv
[jimjimlv@localhost root]$ ls  #已切換至用戶jimjimlv,嘗試運行ls命令 
ls: cannot open directory .: Permissiondenied  #此時報錯,緣由是當前目錄仍在root下,而用戶jimjimlv是沒有權限訪問root用戶目錄下的文件,
[jimjimlv@localhost root]$ su – root  #切換爲root用戶 
Password:
Last login: Tue Jan  5 19:22:53 PST 2016 on pts/0
[root@localhost~]# su – jimjimlv   #切換至用戶jimjimlv,此次咱們使用「-」選項       
Last login: Tue Jan  5 19:23:04 PST 2016 on pts/0
[jimjimlv@localhost ~]$ ls  #成功切換至用戶jimjimlv,當前目錄也爲用戶jimjimlv的家目錄,
Desktop Documents  Downloads  game.sh Music  Pictures  playground Public  Templates  Videos
[jimjimlv@localhost ~]$ su - root
Password:
Last login: Tue Jan  5 19:23:37 PST 2016 on pts/0
[root@localhost ~]# su jimjimlv
[jimjimlv@localhost root]$ su - root -c ls #以root帳號執行ls命令
Password:
anaconda-ks.cfg  config.sh passWD  Passwd

總結:

su UserName:非登陸式切換,即不會讀取目標用戶的配置文件;

su - UserName:登陸式切換,會讀取目標用戶的配置文件;徹底切換;

換個身份執行命令:su [-] UserName -c 'COMMAND'

備註:root su至其餘用戶無須密碼;非root用戶切換時須要密碼;

用戶屬性修改:usermod

語法格式:usermod [OPTION] login  #usermod 選項 用戶名

-u UID: 新UID
-g GID: 新基本組
-G:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append;
-s SHELL:新的默認SHELL;
-c 'COMMENT':新的註釋信息;
-d HOME: 新的家目錄;原有家目錄中的文件不會同時移動至新的家目錄;若要移動,則同時使用-m選項;
-l login_name: 新的名字;
-L: lock指定用戶
-U: unlock指定用戶
-e YYYY-MM-DD: 指明用戶帳號過時日期;
-f INACTIVE: 設定非活動期限

例如:修改用戶jimjimlvshell /bin/zch家目錄爲/home/jimjimlv, 註釋信息爲「Revies Deitribution」,用戶組爲「Linux

[root@localhost home]# usermod -s /bin/zch-d /home/jimjimlv -m -c "Revies Distribution" -G Linux jimjimlv

用戶密碼管理:passwd

用戶管理的一項重要內容是用戶密碼的管理。用戶帳號剛建立時沒有密碼,可是被系統鎖定,沒法使用,必須爲其指定密碼後纔可使用,即便是指定空密碼。

 

指定和修改用戶密碼的Shell命令是passwd。超級用戶能夠爲本身和其餘用戶指定密碼,普通用戶只能用它修改本身的密碼。命令的格式爲:

Passwd  [OPTIONS] UserName  passwd 選項 用戶名
-l: 鎖定指定用戶,即禁用帳號
-u: 解鎖指定用戶
-d:使帳號無密碼
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提早多少天開始警告
-i inactivedays:非活動期限;
-f: 強迫用戶下次登陸時修改密碼

密碼的複雜性策略:

1、使用數字、大寫字母、小寫字母及特殊字符中至少3種;

2、足夠長;

3、使用隨機密碼;

4、按期更換;不要使用最近曾經使用過的密碼;

例如:

修改用戶Rain的登陸密碼

[root@localhost ~]# passwd Rain
Changing password for user Rain.
New password:
Retype new password:
passwd: all authentication tokens updatedsuccessfully.

只容許管理員修改密碼

[Rain@localhost ~]$ passwd jimjimlv
passwd: Only root can specify a user name.
[Rain@localhost ~]$ passwd Rain
passwd: Only root can specify a user name.

使用選項「-l」鎖定用戶帳號,使其不能登陸

[root@localhost ~]# passwd -l Rain
Locking password for user Rain.
passwd: Success
相關文章
相關標籤/搜索