用戶和組

1、用戶類型

一、Linux 的單用戶多任務linux

一個用戶登入,執行多個任務。好比你使用電腦,聊着QQ,聽着音樂。

二、Linux 的多用戶多任務web

apache用戶提供web服務
root用戶操做系統,互不影響

三、Linux 系統用戶角色劃分shell

用戶在系統中是分角色的,在Linux系統中,因爲角色不一樣,權限和所完成的任務也不一樣。值得注意的是用戶的角色是經過UID和GID 識別的。特別是UID,在運維工做中,一個UID是惟一標識一個系統用戶的帳號。
  • 超級用戶:apache

    默認是root用戶,其UID和GID 均爲O,在每臺unix/linux操做系統中都是惟一且真實存在的,經過它能夠登陸系統。能夠操做系統中任何文件。擁有最高的管理權限。在生產環境中,通常會禁止root帳號遠程SSH鏈接服務器,以增強系統安全。安全

  • 普通用戶:bash

    這類用戶通常是由具有系統管理員root的權限的運維人員添加的服務器

  • 虛擬用戶:運維

    與真實普通用戶區分來,這類用戶最大的特色是安裝系統後默認就會存在,且默認狀況不能登陸系統,他們是系統正常運行不可缺乏的,他們的存在主要是方便管理系統,知足相應的系統進程對文件屬主的要求。如:bin adm nobody工具

多用戶系統從實際上來講使得系統更爲方便。從安全角度來講,多用戶系統也更爲安全。ui

2、用戶和用戶組

一、用戶及用戶組配置文件介紹

/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow 四個文件。

二、用戶:/etc/passwd

文件中每一行定義一個用戶帳號。各內容之間又經過「:」劃分爲多個字段。
(提示:passwd文件中有不少虛擬帳號、如bin,daemon等),通常來講,這些帳號是系統運行所須要的。在不肯定的狀況下,請不要隨意刪改此類帳號。


root:    x        :0        :0        :root        :/root        :/bin/bash
帳號名稱    帳號密碼     帳號UID        帳號GID     用戶說明    用戶家目錄    shell解釋器

三、UID字段限制說明:

0爲超級用戶
1-499 爲系統保留使用的UID。防止人爲創建帳戶的UID與系統的UID之間衝突
500-65535 普通帳戶UID
權限:644
/etc/shadow
權限:400,只有root可讀
一樣用「:」 分爲9個字段。

含義分別爲:

帳號密碼:最近更改密碼的時間:禁止修改密碼的天數:用戶必須更改口令的天數:警告更改密碼的天數:不活動時間:失效時間:標誌

四、用戶組配置文件:

/etc/group
/etc/gshadow
/etc/group 字段含義
用戶組名:用戶組密碼:GID:用戶組成員
/etc/gshadow
用戶組名:用戶組密碼:用戶組管理員帳號:用戶組成員

3、用戶管理

一、用戶與用戶組管理基本命令總結:

  • 用戶:
useradd     同 adduser,執行命令可在系統中添加用戶。
passwd         執行此命令可爲用戶設置密碼。    
usermod     修改用戶的命令,能夠經過usermod來修改用戶登陸名,用戶的家目錄等等
id        查看用戶的uid,gid及所歸屬的用戶組
su        用戶切換工具
sudo         sudo 是經過另外一個用戶來執行命令(execute a command as another user),su是用來切換用戶,而後切換到的用戶來完成相應的任務,但sudo能在命令後面直接接命令執行,好比 sudo ls /root/,不須要root 密碼就能夠執行只有root才能執行相應的命令或具有目錄權限:這個權限須要經過visudo命令或直接編輯/etc/sudoers 來實現
visudo        visodu配置sudo權限的編輯命令;也能夠不用這個命令,直接用vi編輯/ect/sudoers實現。
pwcov         同步用戶從 /etc/passwd 到 /etc/shadow.
pwck        pwck是校驗用戶配置文件/etc/passwd 和/etc/shadow 文件內容是否合法或完整
pwunconv     是pwcov的逆向操做,是從/etc/shadow和/etc/passwd 建立 /etc/passwd.而後會刪除 /etc/shadow文件
chfn         更改用戶信息工具
finger        查看用戶信息工具
sudoedit    和sudo功能差很少
  • 用戶組:
groupadd     添加用戶組
groupdel    刪除用戶組
groupmod    修改用戶組信息
groups        顯示用戶所屬的用戶組
grpck    
grpconv     經過/etc/group 和/etc/gshadow/ 的文件內容來同步或建立 /etc/gshadow,若是/etc/gshadow 不存在則建立。
grpunconv     經過/etc/group 和/etc/gshadow 文件內容來同步或建立/etc/group ,而後刪除gshadow文件。

二、/etc/skel 目錄

/etc/skel 目錄是用來存放新用戶配置文件的目錄,當咱們添加新用戶時,這個目錄下的全部文件會被自動複製到新添加的用戶的家目錄下;默認狀況下,/etc/skel 目錄下的全部文件都是隱藏文件(以點開頭的文件);經過修改,添加,刪除/etc/skel目錄下的文件,咱們可爲新建立的用戶提供統一,標準的,初始化用戶環境。


[root@localhost skel]# ls -al
總用量 24
drwxr-xr-x.  3 root root 4096 6月  24 03:12 .
drwxr-xr-x. 85 root root 4096 7月   2 03:43 ..
-rw-r--r--.  1 root root   18 7月  18 2013 .bash_logout
-rw-r--r--.  1 root root  176 7月  18 2013 .bash_profile
-rw-r--r--.  1 root root  124 7月  18 2013 .bashrc
drwxr-xr-x.  2 root root 4096 11月 12 2010 .gnome2

當咱們用useradd命令添加新用戶的時候,Linux系統會自動複製/etc/skel/下的全部文件(包括隱藏文件)到新添加用戶的家目錄下。

實例一:

[root@localhost skel]# touch longge
[root@localhost skel]# useradd longdidi

[root@localhost longdidi]# ls /home/longdidi/ -al
總用量 24
drwx------. 3 longdidi longdidi 4096 7月   2 06:31 .
drwxr-xr-x. 3 root     root     4096 7月   2 06:31 ..
-rw-r--r--. 1 longdidi longdidi   18 7月  18 2013 .bash_logout
-rw-r--r--. 1 longdidi longdidi  176 7月  18 2013 .bash_profile
-rw-r--r--. 1 longdidi longdidi  124 7月  18 2013 .bashrc
drwxr-xr-x. 2 longdidi longdidi 4096 11月 12 2010 .gnome2
-rw-r--r--. 1 longdidi longdidi    0 7月   2 06:30 longge

提示:上面所述功能,實際工做中能夠考慮統一設置環境變量等,但通常中小公司,在生產環境通常不會隨意改這個目錄及內容。

三、/etc/login.defs 配置文件

/etc/login.defs 文件是用來定義建立用戶時須要的一些用戶的配置信息。如建立用戶時,是否須要家目錄,UID和GID的範圍,用戶及密碼的有效期限等。


[root@localhost longdidi]# egrep -v '^#|^$' /etc/login.defs 
MAIL_DIR        /var/spool/mail                #建立用戶時, 要在目錄/var/spool/mail中建立一個用戶mail文件
PASS_MAX_DAYS   99999                    #一個密碼最長可使用的天數;
PASS_MIN_DAYS   0                    #更換密碼的最小天數;
PASS_MIN_LEN    5                    #密碼的最小長度;
PASS_WARN_AGE   7                    #密碼失效前提早多少天 警告
UID_MIN                   500                #最小UID爲500,也就是說添加用戶的UID默認從500開始
UID_MAX                 60000                #最大UID爲60000,
GID_MIN                   500                
GID_MAX                 60000
CREATE_HOME     yes                    #是否建立家目錄
UMASK           077                    #默認家目錄的umask
USERGROUPS_ENAB yes                    #刪除用戶同時產出用戶組
ENCRYPT_METHOD SHA512                     #MD5 密碼加密

/etc/default/useradd 文件
/etc/default/useradd 文件是在使用useradd添加用戶時的一個須要調用的一個默認的配置文件,可使用useradd -D參數,這樣的命令格式來修改文件裏面的內容。


[root@localhost default]# egrep -v '^# | ^$' /etc/default/useradd 
GROUP=100
HOME=/home        #制定用戶家目錄的父目錄
INACTIVE=-1        #是否啓用帳號過時停權, -1 表示不啓用
EXPIRE=            #帳號終止日期,不設置表示不啓用
SHELL=/bin/bash        #新用戶默認所用的shell 類型
SKEL=/etc/skel        #配置新用戶家目錄的默認文件存放路勁。前文提到的/etc/skel,就是配置在這裏生效的,即當咱們用useradd添加用戶時,用戶家目錄下的文件,都是從這裏配置的目錄中複製過去的。
CREATE_MAIL_SPOOL=yes    #建立mail文件
提示:useradd -D

四、Linux用戶管理命令

linux 是一個多用戶多任務的操做系統,有着很豐富的用戶管理工具,這些工具包括用戶的查詢,添加,修改,以及不一樣用戶之間的互相切換等;經過這些工具,咱們能夠簡單、方便、安全的進行用戶管理工做。

與用戶管理相關的一些文件:

/etc/passwd 和 /etc/group    咱們對Linux的系統用戶和用戶組進行添加,修改,刪除的最終結果就是修改系統用戶文件/etc/passwd 和/etc/shadows 以及用戶組的 /etc/group 和文件/etc/gshadow.
/etc/login.defs 和/etc/default/useradd     /etc/login.defs文件是用來定義在建立用戶時的一些默認配置。如建立用戶時,是否須要家目錄,UID和GID的範圍,用戶及密碼的有效期限等等,。
/etc/default/useradd 文件是在使用useradd 添加用戶時須要調用的一個默認的配置文件,可使用 useradd -D參數,這樣的命令格式來修改文件裏面的內容,固然也能夠直接編輯修改。

4.1添加用戶命令useradd:

添加用戶的命令有useradd和adduser ,這兩個命令所能達到的效果是同樣的。固然出了useradd和 adduser命令以外,咱們還能經過修改用戶配置文件/etc/passwd 和/etc/group及手動建立文件的辦法來直接添加用戶。
useradd命令:當使用useradd命令不加參數選項,後面直接跟所添加的用戶名時,系統首先會讀取配置文件/etc/login.defs 和/etc/default/useradd 中所定義的參數或規則,根據設置的規則添加用戶,同時會向/etc/passwd 和 /etc/group 文件內添加新建用戶和用戶組幾記錄。
固然/etc/passwd和/etc/group的加密資訊文件/etc/shadows 和/etc/gshadow 也會同步生產記錄,同時系統還會根據/etc/default/useradd文件中所配置的信息創建用戶的家目錄,並複製/etc/skel 中的全部文件(包括隱藏的環境配置文件)到新用戶的家目錄中。
  • useradd 參數詳解:
-c comment     新帳號password檔的說明欄
-d home_dir     新帳號每次登入時所使用的home_dir。預設置位 login名稱、
-e expire_date    帳號終止日期。
-f inactive_days    帳號過時後幾日永久停權。當設置爲0時帳號則馬上被停權。當設置爲-1時則關閉此功能,
-g initial_group    group名稱或以數字來作爲用戶登入起始用戶組。用戶組名須爲系統現有存在的名稱,
-G group        定義此用戶爲多個不一樣groups的成員,每一個用戶組使用「,」都好分隔。

4.2添加用戶組命令groupadd

groupadd 命令有關的文件有:
    /etc/group 用戶組相關文件    /etc/gshadow  用戶組加密相關文件
groupadd命令語法:
    groupadd [-g gid [-o] ] [ -r ] [ -f ] groupname    
groupadd 參數選項:
    -g gid     制定用戶組GID值。除非接-o 參數(如:groupadd -g 1234 -o longge),不然ID值必須是惟一的數字(不能爲負數)。若是不指定-g參數,則預設值會從500開始
    -r     創建系統用戶組,GID值會比/etc/login.defs 中定義的UID_MIN值小。
    -f    新增一個帳戶,強制覆蓋一個已經存在的用戶組帳號,

文件:    
    /etc/group 用戶組相關文件
    /etc/gshadow 用戶組加密相關文件

    提示:以上爲用戶組相關的文件,使用groupadd 命令的結果實際上就是更改維護這兩個文件。
    相關命令: chfn  chsh   useradd userdel  usermod passwd  groupdel groupmod  

    groupadd命令實例:
        在生產環境中,通常增長用戶組的用法都是很是簡單的。
  • 4.3用戶密碼相關命令passwd:

普通用戶和超級用戶均可以運行passwd命令,但普通用戶只能更改自身的用戶密碼。超級用戶root則能夠設置或修改全部用戶的密碼。 當直接 passwd 命令後面不接任何參數或用戶名時,則表示修改當前登陸用戶的密碼。

passwd 參數選項:

-k --keep-tokens   保留即將過時的用戶在期滿後仍能使用
-d --delete        刪除用戶密碼,僅能以root權限操做
-l --lock        鎖住用戶無權更改密碼,僅能經過root權限操做
-u  --unlock        解除鎖定
-f  --force        強制操做;僅root權限才能操做
-x  --maximum=DAYS    兩次密碼修改的最大天數,後面接數字;僅能root權限操做
-n   --minimum=DAYS    兩次密碼修改的最小天數,後面接數字;僅能root權限操做
-w   --warning=DAYS    在距多少天提醒用戶修改密碼:僅能root操做
-i --inacive=DAYS    在密碼過時後多少天,用戶被禁掉,僅能root操做
-S --status         查詢用戶的密碼狀態,僅能root操做

實例:咱們用--stdin 參數實現非交互式的批量設置或修改密碼

[root@localhost ~]# echo "123.com" | passwd  --stdin longdidi
更改用戶 longdidi 的密碼 。
passwd: 全部的身份驗證令牌已經成功更新。

4.4修改用戶密碼有效期限相關命令chage:

chage命令的用法不少,和passwd等命令功能也有很多是重複的。
語法:
    chage [選項] 用戶名
-d --lastday    將最近一次密碼設置時間設爲「最近日期」
-E --expiredate  將帳戶過時時間設爲「過時日期」    
-h              顯示幫助
-i          將因過時而失效的密碼設爲「失效密碼」
-l          顯示帳戶年齡信息
-m          將兩次改變密碼之間相距的最小天數設置爲「最小天數」

4.5刪除用戶相關命令userdel

相關文件:
/etc/passwd 用戶帳號資料文件
/etc/shadow 用戶帳戶資訊加密文件
/etc/group  用戶組資訊文件
userdel 語法:
    userdel [-r] 用戶名
groupdel
chfn

4.6更改用戶的shell類型 chsh

4.7用戶信息修改相關命令usermod:

語法:
usermod [-c comment] [-d home_dir [-m]] ..... 
usermod 參數選項:
-c 
-d 更新用戶新的家目錄。若是給定—m選項,用戶舊的家目錄會搬到新的家目錄去,
-e 加上用戶帳號中止日期2
-f 帳號過時幾往後永久停權
....
相關文章
相關標籤/搜索