CentOS 7 用戶帳戶配置

CentOS 7 用戶帳戶配置

說明:html

一、這篇博文記錄的是CentOS 7 用戶帳戶的配置,包括添加用戶、添加用戶組、刪除用戶、刪除用戶組等。其中包括分析用戶的配置文件、目錄以及對安全的思考。linux

二、用戶配置方面CentOS 7與以往版本感受沒有差異。shell

第一部分 認識用戶數據庫

  Centos 7 系統最小化安裝,默認配置,是沒有建立其餘用戶的。做爲服務器操做系統,爲了安全起見,通常是使用通常用戶。這就牽涉到用戶、用戶組的建立以及刪除。安全

此外,CentOS 7 和其餘版本的Linux同樣,都具備相應用戶的配置文件及目錄,以下:bash

複製代碼

/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 file
GROUP=100                        //起始GID值
HOME=/home                       //家目錄位置
INACTIVE=-1             //有效時間,負值爲永久,正數表明天數
EXPIRE=
SHELL=/bin/bash                   //shell路徑
SKEL=/etc/skel                    //默認配置文件路徑
CREATE_MAIL_SPOOL=yes             //是否建立郵件池,具體做用待之後學習

複製代碼

  咱們再來看一下/etc/login.defs文件,重點內容以下:ssh

複製代碼

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 是比較宏觀的進行偏重安全方面的配置。學習

  下面是一些實際過程當中經常使用的命令:ui

複製代碼

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                 新帳戶的用戶 ID
  -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)
第三部分 更改用戶設置

  不一樣的 用戶須要不一樣的權限,擁有不一樣的SHELL,是否容許登陸。這個部分,就須要用到usermod命令修改用戶配置。咱們上個例子中建立過一個test帳戶,默認SHELL是/bin/bash,是能夠登陸的。

禁止登陸:

usermod -s /sbin/nologin test //-s 指定shell

修改用戶名:

 

usermod -l test88 test //-l 新的用戶名

此外還能夠家目錄、過時天數、更換組、鎖定用戶、解鎖用戶等功能,能夠查看參數實踐。

 

第四部分 刪除用戶/組

   當咱們建立用戶/組有錯誤時,可能會刪除用戶/組,而後再從新建立。咱們使用userdel命令來刪除用戶。

執行命令:

[root@localhost home]# userdel test
[root@localhost home]# useradd test
useradd:警告:此主目錄已經存在。
不從 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 來刪除相關文件目錄,這一步具備危險性,是否有回滾操做,不是特別清楚。

執行命令:

[root@localhost home]# userdel -rf test
[root@localhost home]# useradd test

  這樣,就不會出現提示了。

第五部分 用戶安全配置

  在操做系統安全中,用戶權限、文件權限也是很是重要。如今就幾個小點記錄一下。此次目的主要有禁止root用戶鏈接、通常用戶使用sudo命令提權。咱們在上個步驟中,建立了一個test用戶,當咱們輸入sudo命令時,會提示以下:

 

test不在 sudoers 文件中。此事將被報告。

 

解決這個問題,咱們只須要在/etc/sudoers 中添加用戶test便可,代碼以下:

//找到以下一行,在下面添加便可
.....
root    ALL=(ALL)       ALL
test    ALL=(ALL)       ALL          //這一行是添加的

到這裏應該就能夠解決問題了。

新增:在虛擬機裏面從新安裝了一個CentOS 7,實驗了一下,確實能夠成功。下面是/etc/sudoers 屬性:

能夠看到擁有setUID權限,任何用戶都有x(執行)權限,故能夠執行sudo命令。下面的內容就看成是對setUID權限的理解。

ps.由於以前按照網上的資料對其餘部分進行了設置,可是感受並不影響,下面貼出修改的部分及其目的

//修改文件 /usr/bin/sudo 用戶及用戶組
chown  root:root /usr/bin/sudo
//修改權限爲4755,其中4表明以文件全部者執行
chmod 4755 /usr/bin/sudo

上面的命令意思是,將文件/usr/bin/sudo擁有者改成root,當執行時以root身份執行,這也是‘4’的含義。若是設置權限時,勿把「4755」 配置爲755,就會出現這個錯誤。

sudo:有效用戶 ID 不是 0,sudo 屬於 root 並設置了 setuid 位嗎?

解決方法呢,就是剛纔說的以root(uid=0)身份運行。

在實際環境中,爲了防止黑客對root帳戶進行暴力破解,咱們一般禁止root帳戶SSH遠程鏈接。操做以下:

複製代碼

//修改 /etc/ssh/sshd.config 文件,
將
#PermitRootLogin yes
修改成
PermitRootLogin no

//重啓sshd服務
systemctl restart sshd.service

複製代碼

備註:CentOS 7 取消了service 用法,儘管部分狀況下還可使用,可是我就先使用systemctl吧。

  除此以外,我以爲最重要的仍是不一樣用戶間的權限分配問題。先暫時留下來,之後根據實際狀況添加筆記。

  你們,還能夠根據參數,依據實際狀況配置。你們能夠相互交流。

相關文章
相關標籤/搜索