Linux是個多用戶多任務的分時操做系統,全部一個要使用系統資源的用戶都必須先向系統管理員申請一個帳號,而後以這個帳號的身份進入系統。用戶的帳號一方面能幫助系統管理員對使用系統的用戶進行跟蹤,並控制他們對系統資源的訪問;另外一方面也能幫助用戶組織文件,併爲用戶提供安全性保護。每一個用戶帳號都擁有一個唯一的用戶名和用戶口令。用戶在登陸時鍵入正確的用戶名和口令後,才能進入系統和本身的主目錄。vim
實現用戶帳號的管理,要完成的工做主要有以下幾個方面:安全
a.用戶帳號的添加、刪除和修改。bash
b.用戶口令的管理。服務器
c.用戶組的管理。網絡
基於帳戶身份對資源訪問進行控制:ide
- 帳戶類別: 用戶帳戶,組帳號ui
- 識別方式: UID ,GIDthis
用戶帳號:加密
- 超級帳戶root ,系統用戶,普通用戶spa
組帳號 :
- 基本組 (私有組)
- 附加組 (公共組)
帳號數據的存放
- 存儲在本機磁盤中 ----- 本地帳號
- 存儲在網絡上專門的服務器 ----- 網絡帳號
本地帳號的數據文件:
- /etc/default/useradd # 默認配置文件、用戶添加的設置
- /etc/login.defs # 默認配置文件,密碼有效期控制
- /etc/passwd # 保存用戶帳號的基本信息
- /etc/shadow # 保存用戶密碼字串/有效期等信息
- /etc/group # 保存組帳號的基本信息
- /etc/gshadow # 保存組密碼字串/有效期等信息
各個配置文件解說以下:
[root@localhost ~]# cat /etc/default/useradd
1) # useradd defaults file
2) GROUP=100
3) HOME=/home
4) INACTIVE=-1
5) EXPIRE=
6) SHELL=/bin/bash
7) SKEL=/etc/skel
8) CREATE_MAIL_SPOOL=yes
解釋:
1) useradd默認文件
2) 表示可建立普通組
3) 用戶的家目錄建在/home中;用戶家目錄的默認建立地
4) 是否啓用賬號過時停權,-1表示不啓用;寬限天數,0及如下數皆爲無效數字
5) 賬號終止日期,不設置表示不啓用;賬號失效日期(如:20081212)
6) 所用SHELL的類型;登陸後執行的程序
7) 用戶家目錄中的環境文件,默認添加用戶的目錄默認文件存放位置;也就是說,當咱們用useradd 添加用戶時,用戶家目錄下的文件,都是從這個目錄中複製過去的;
8) 是否建立用戶郵件緩衝,yes表示建立
login.defs是設置用戶賬號限制的文件,在這裏咱們可配置密碼的最大過時天數,密碼的最大長度約束等內容。該文件裏的配置對root用戶無效。若是/etc/shadow文件裏有相同的選項,則以/etc/shadow裏的設置爲準,也就是說/etc/shadow的配置優先級高於/etc/login.defs
[root@localhost ~]# cat /etc/login.defs
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail # 指定郵件目錄
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999 # 密碼最大有效期
PASS_MIN_DAYS 0 # 兩次修改密碼的最小間隔時間
PASS_MIN_LEN 5 # 密碼最小長度,對於root無效
PASS_WARN_AGE 7 # 密碼過時前多少天開始提示
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 500 # 用戶ID的最小值
UID_MAX 60000 # 用戶ID的最大值
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 500 # 組ID的最小值
GID_MAX 60000 # 組ID的最大值
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD /usr/sbin/userdel_local # 當刪除用戶的時候執行的腳本
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME yes # 使用useradd的時候建立用戶目錄
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK 077 # 權限掩碼初始化值
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes # 使用 userdel 刪除時,是否會刪除初始羣組
# Use MD5 or DES to encrypt password? Red Hat use MD5 by default.
MD5_CRYPT_ENAB yes # 用MD5加密密碼
ENCRYPT_METHOD MD5
[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
解釋:每一個用戶記錄一行,以":"分割爲7個字段
字段1 :用戶帳號的名稱
字段2 :密碼字串或佔位符「x」
字段3 :用戶帳號的UID
字段4 :所屬基本組的IGD號
字段5 :用戶全名
字段6 :宿主目錄
字段7 :登陸Shell程序的路徑
[root@localhost ~]# head -2 /etc/shadow
root:$1$Rlzv9ejD$9kiOFhTnlHNwOzbR.OpvA0:16242:0:99999:7:::
bin:*:16242:0:99999:7:::
解釋:每一個用戶記錄一行,以":"分割爲9個字段
字段1:用戶帳號的名稱
字段2:加密後的密碼字符串
字段3:上次修改密碼的時間
字段4:密碼的最短有效天數,默認爲「0」天
字段5:密碼的最長有效天數,默認99999天
字段6:密碼過時前的警告天數,默認7天
字段7:密碼過時後多少天禁用此用戶帳號
字段8:帳號失效時間,默認值爲空
字段9:保留字段(未使用
[root@localhost ~]# head -2 /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
解釋:每一個用戶記錄一行,以":"分割爲4個字段
字段1:用戶組名稱;
字段2:用戶組密碼;
字段3:GID
字段4:用戶列表,每一個用戶之間用,號分割;本字段能夠爲空;若是字段爲空表示用戶組爲GID的用戶名
[root@localhost ~]# head -2 /etc/gshadow
root:::root
bin:::root,bin,daemon
解釋:每一個用戶記錄一行,以":"分割爲4個字段
字段1: 用戶組名
字段2: 用戶組密碼
字段3: 用戶組管理員的名稱
字段4: 支持的帳號名稱
/etc/skel目錄
/etc/skel 目錄中包含的文件和目錄會自動複製到新用戶的主目錄時這樣的用戶由程序建立的 useradd。
主目錄,也稱爲登陸的目錄,是在 unix 操做系統上,做爲對用戶的我的文件、 目錄和程序,包括我的配置文件存儲庫中的目錄。它也是用戶是在第一次登陸到系統後的目錄。/etc 目錄和其子目錄中包含系統的不少重要的配置文件。
Useradd 程序位於 /usr/sbin/目錄,並在大多數系統上,它是隻能由根訪問 (即行政) 用戶。在某些系統上此程序可能會調用 useradd。
/etc/skel 容許系統管理員建立默認的主目錄爲全部新用戶計算機或網絡上,從而確保全部用戶都開始用相同的設置或環境。
幾個用戶的配置文件放在 /etc/skel,默認狀況下在安裝操做系統時。一般,它們可能包括.bash_profile.bashrc、.bash_logout、 dircolors、.inputrc、.vimrc。前面的這些文件的名稱,點代表他們是隱藏的文件,即,不是爲了不視覺上的混亂和幫助減小意外損壞的可能性一般可見的文件。
即用其-a 選項,該選項顯示全部文件和目錄,包括隱藏的),使用 ls (即,列表) 命令能夠查看 /etc/skel 的內容
ls-a /etc/skel
能夠經過編輯與 SKEL 開頭的行更改位置的 skel = 在配置文件 /etc/default/useradd 中。默認狀況下這條線說 SKEL = /etc/skel。
它是一般最好保持 /etc/skel 到全局配置文件,如 /etc/profile 小如可能,並將全系統的配置項。這是由於後者使得它更容易更新現有的用戶文件,由於它的設置生效,儘快的系統打開並將應用於新用戶和老用途一致好評。
當由管理員使用 userdel 命令從系統刪除用戶時,該用戶的主目錄,包括文件和目錄的已複製到它從 /etc/skel,保持不變。
目錄 skel 名稱來自字骨架,由於文件它包含窗體的基本結構爲用戶的主目錄。
用戶的初始配置文件
配置文件來源:
- 新建用戶時,根據 /etc/skel 模板目錄複製
主要的初始配置文件:
~/.bashrc # 每次進入新的Bash環境時執行
~/.bash_profile # 每次登陸時執行
~/.bash_logout # 每次退出時執行