Linux系統是一個多用戶、多任務的操做系統,任何一個想要使用系統資源的用戶,都必須向系統管理員申請一個帳號,並授予相應的權限給到這個帳號後才能進入系統。用戶的帳號一方面能夠幫助系統管理員對使用系統的用戶進行跟蹤,並控制他們對系統資源的訪問;另外一方面也能夠幫助用戶組織文件,併爲用戶提供安全性保護。shell
每一個用戶帳號都擁有一個唯一的用戶名和密碼。用戶只有在提供了正確的用戶名和密碼以後,纔可以進入系統和本身的主目錄。(這就相似於咱們向銀行申請我的帳號,銀行會爲你建立一個我的帳號和密碼,並只授予你部分業務有相應的權限,如存錢、轉賬,銀行能夠經過後臺跟蹤你的帳號信息,用戶享有相應的安全性保護)。安全
用戶和組的UID的定義說明bash
Linux用戶:app
管理員:UID爲「0」;ide
普通用戶: UID 爲「1-65535」
ui
Linux組:加密
系統組:CentOS 6的UID爲「1-499」,CentOS 7的UID爲「1-999」spa
普通組: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,用戶的UID爲120
#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: 設定非活動期限
例如:修改用戶jimjimlv的shell 爲/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