標籤:
說明:
1、這篇博文記錄的是CentOS 7 使用者賬戶的配置,包括添加使用者、添加使用者組、刪除使用者、刪除使用者組等。其中包括分析使用者的設定檔、目錄以及對安全的思考。
2、使用者配置方面CentOS 7與以往版本感覺沒有差別。
第一部分 認識使用者
Centos 7 系統迷你安裝,預設配置,是沒有建立其他使用者的。作為伺服器作業系統,為了安全起見,一般是使用一般使用者的。這就牽涉到使用者的建立、使用者組的建立以及刪除。
此外,CentOS 7 和其他版本的Linux一樣,都具有相應使用者的設定檔及目錄,如下:
/etc/passwd //使用者賬戶資訊,可以看出使用者名稱稱
/etc/shadow //使用者賬戶加密後資訊,包括但不限於/etc/passwd中的資訊
/etc/group //組賬戶資訊,可以看出組名稱
/etc/gshadow //組賬戶安全資訊,包括但不限於/etc/group中的資訊
/etc/default/useradd //賬戶建立時預設值
/etc/skel/ //包含預設檔案的目錄,具體作用尚不清楚
/etc/login.defs //安全性的預設配置,與上面/etc/default/useradd有區別
我們看一下比較重要的設定檔/etc/default/useradd,內容如下:
# useradd defaults fileGROUP=100 //起始GID值HOME=/home //家目錄位置INACTIVE=-1 //有效時間,負值為永久,正數代表天數EXPIRE=SHELL=/bin/bash //shell路徑SKEL=/etc/skel //預設設定檔路徑CREATE_MAIL_SPOOL=yes //是否建立郵件池,具體作用待以後學習
我們再來看一下/etc/login.defs檔案,重點內容如下:
MAIL_DIR /var/spool/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 8
PASS_WARN_AGE 7
...
# Min/max values for automatic uid selection in useradd 最小/最大UID設定
#
UID_MIN 1000 //我們建立的使用者的UID從1000開始
UID_MAX 60000
....
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 1000
GID_MAX 60000
....
CREATE_HOME yes //是否建立家目錄
...
# Use SHA512 to encrypt password. //採用SHA512加密
ENCRYPT_METHOD SHA512
從檔案內容可見,/etc/login.defs 是比較宏觀的進行偏重安全方面的配置。
下面是一些實際過程中常用的命令:
useradd //添加使用者passwd //為使用者佈建密碼 userdel //刪除使用者usermod //修改使用者資訊groupadd //添加使用者組groupdel //刪除使用者組groupmod //修改使用者組資訊groups //顯示當前進程使用者所屬的使用者組
第二部分 添加使用者
例子一: 最簡單的添加使用者
執行如下命令:
useradd test
passwd test
執行個體,並且系統會對密碼做限制,比如長度、複雜度,但是不影響建立。可以理解為“溫馨提示”。
這樣一個使用者名稱為test的使用者已經建立好了。我們看一下屬性。
執行命令:id test //查看使用者資訊
我們發現test的uid=1000,gid=1000,位於test使用者組,說明缺參數的建立使用者,會預設建立一個與使用者名稱同名的使用者組並加入其中,我們也注意到UID、GID的值與預設的設定檔中保持一致,可見設定檔是生效的,同樣也可以再建立一個使用者,看一下UID、GID的值,會看到是1001.可以嘗試一下。我們可以切到/home目錄下,會看到使用者目錄,與設定檔設定一致。
例子二:帶參數的建立賬戶
上個例子我們採用預設配置,只是設定了使用者名稱和密碼。這次我們手動設定UID、GID等。首先我們看一下,useradd的參數,如下:
-b, --base-dir BASE_DIR 新賬戶的主目錄的基目錄 -c, --comment COMMENT 新賬戶的 GECOS 欄位 -d, --home-dir HOME_DIR 新賬戶的主目錄 -D, --defaults 顯示或更改預設的 useradd 配置 -e, --expiredate EXPIRE_DATE 新賬戶的到期日期 -f, --inactive INACTIVE 新賬戶的密碼不活動期 -g, --gid GROUP 新賬戶主組的名稱或 ID -G, --groups GROUPS 新賬戶的附加組列表 -h, --help 顯示此協助資訊並推出 -k, --skel SKEL_DIR 使用此目錄作為骨架目錄 -K, --key KEY=VALUE 不使用 /etc/login.defs 中的預設值 -l, --no-log-init 不要將此使用者添加到最近登入和登入失敗資料庫 -m, --create-home 建立使用者的主目錄 -M, --no-create-home 不建立使用者的主目錄 -N, --no-user-group 不建立同名的組 -o, --non-unique 允許使用重複的 UID 建立使用者 -p, --password PASSWORD 加密後的新賬戶密碼 -r, --system 建立一個系統賬戶 -R, --root CHROOT_DIR chroot 到的目錄 -s, --shell SHELL 新賬戶的登入 shell -u, --uid UID 新賬戶的使用者識別碼 -U, --user-group 建立與使用者同名的組 -Z, --selinux-user SEUSER 為 SELinux 使用者映射使用指定 SEUSER
建立一個UID=501,GID=600,30天有效期間,家目錄為/home/test5的使用者test4.
命令 :
groupadd -g 600 test3 //建立GID=600的使用者組test3 useradd -u 501 -g 600 -f 30 -m -d /home/test5 test4
當我們再次開啟使用者檔案/etc/passwd或者id test4會看到我們自己的配置。
uid=501(test4) gid=600(test3) 組=600(test3)
第三部分 刪除使用者/組
當我們建立使用者/組有錯誤時,可能會刪除使用者/組,然後再重新建立。我們使用userdel命令來刪除使用者。
執行命令:
[[email protected] home]# userdel test[[email protected] home]# useradd testuseradd:警告:此主目錄已經存在。不從 skel 目錄裡向其中複製任何檔案。正在建立信箱檔案: 檔案已存在
出現這個問題是因為我們刪除使用者時,系統為了安全起見並沒有刪除相關的檔案以及目錄。我們查看一下userdel參數:
用法:userdel [選項] 登入選項: -f, --force force some actions that would fail otherwise e.g. removal of user still logged in or files, even if not owned by the user -h, --help 顯示此協助資訊並推出 -r, --remove 刪除主目錄和郵件池 -R, --root CHROOT_DIR chroot 到的目錄 -Z, --selinux-user 為使用者刪除所有的 SELinux 使用者映射
我們可以使用參數-rf 來刪除相關檔案目錄,這一步具有危險性,是否有復原操作,不是特別清楚。
執行命令:
[[email protected] home]# userdel -rf test[[email protected] home]# useradd test
這樣,就不會出現提示了。
除此之外,我覺得最重要的還是不同使用者間的許可權分配問題。先暫時留下來,根據實際情況分配。大家,還可以根據參數,依據實際情況配置。大家可以相互交流。
CentOS 7 使用者賬戶配置