首頁 > 軟體

Linux基礎知識之使用者、組的介紹與管理

2020-06-16 17:35:51

主要介紹Linux中使用者、組的基本概念,對應的組態檔,使用者組的管理包括新增、修改、刪除。

Linux使用者、組概念介紹

使用者:一種技術、產品、服務的使用者。計算機中使用者即使用計算機功能的物件。

使用者類別:管理使用者與普通使用者
管理使用者:root
普通使用者:系統使用者與登入使用者
系統使用者:分配給相應進程使用,特點無互動式登陸。在程式啟動時自動使用相應系統使用者。
登入使用者:互動式登陸
使用者標識:UserID簡稱UID是16bits的二進位制數位其表示範圍:0-65535
管理員UID:0
普通使用者:1-65535
系統使用者:1-499(CentOS6.x) 1-999(CentOS7.x)
登陸使用者:500-60000(CentOS6.x) 1000-60000(CentOS7.x)
對於系統來說它依靠UID這個數位來識別使用者

組:系統中的組可以看做一個容器,在它所屬下面的所有使用者都具有這個容器的相關特性。
若這個組對某個檔案有讀寫執行這三個許可權,那麼它下面的所有成員對這個檔案也具有讀寫執行三個許可權。
組按其不同性質可分三種:
1、
管理員組
普通使用者組:系統組、登陸組
組標識:GroupID簡稱GID
管理員組:0
普通使用者組:1-65535
系統使用者組:1-499(CentOS6.x) 1-999(CentOS7.x)
登陸使用者組:500-60000(CentOS6.x) 1000-60000(CentOS7.x)
2、
使用者的基本組
使用者的附加組
3、
私有組:組名同使用者名稱,且只包含一個使用者
公共組:組內包含了多個使用者

 


--------------------------------------------------------------------------------
使用者在登陸系統時系統會對所登陸使用者進行認證,這個認證過程是通過對比事先儲存在系統檔案的資訊與登入時提供的資訊是否一致來判斷。

對比的檔案有/etc/passwd、/etc/shadow、/etc/gshadow、/etc/group
下面對這四個檔案做下詳細介紹

/etc/passwd 這個檔案儲存的是使用者相關的資訊
[root@localhost ~]# tail -5 /etc/passwd
user7:x:3006:3006::/testdir/user7:/bin/csh
user8:x:3007:3007::/testdir/user8:/bin/csh
user9:x:3008:3008::/testdir/user9:/bin/csh
user10:x:3009:3009::/testdir/user10:/bin/csh
linuxidc:x:4322:4322::/home/linuxidc:/bin/bash

可以看到該檔案有固定的表達格式。

其格式每一項的意義如下
第一項:為name使用者名稱
第二項:為password,可以是加密的密碼,也可以是預留位置x,這裡通常為預留位置,而把密碼放在另一個檔案/etc/shadow內,這樣更加安全。
第三項:為UID
第四項:為GID
第五項:為GECOS注釋資訊
第六項:為Directory使用者的家目錄
第七項:為shell使用者的預設shell,登入時預設的shell程式

/etc/group這個檔案儲存的是組相關資訊
[root@localhost ~]# tail -3 /etc/group
user10:x:3009:
sysadmins:x:5003:
linuxidc:x:4322:

第一項:groupname組名

第二項:password密碼
第三項:GID
第四項:userlist該組的使用者成員,以此組為附加組的使用者的使用者列表。

/etc/shadow此檔案為儲存使用者密碼資訊的檔案
[root@localhost ~]# tail -3 /etc/shadow
user9:$6$EYxzH/dhRFw/zg4V$BQakOIX/HsZJobHdAhpSu5MK.pP1Jtpi/nVwktde/eoOxz5zm1oPUfliy4gzKPmYB5Wf0fBX6OPEEDvNWoUl3/:17016:0:99999:7:::
user10:$6$5eJ8JKiwo/6h42$lhx.J9r6m6dKq8.xKQ82WeiRvLOAQcoTRvEw43DfmxsOB.qfiO1Esyu2oZVCFcejq613h0WEA3G0FD.jxUE3W1:17016:0:99999:7:::
linuxidc:!!:17016:0:99999:7:::

第一項:user使用者名稱
第二項:password使用者密碼,密文,預設使用sha512加密
第三項:從1970年1月1日起到密碼最近一次被更改的時間
第四項:密碼最短使用期限,密碼再過幾天可以被更改,0表示隨時可被更改
第五項:最常使用期限,密碼再過幾天必須變更,99999表示永不過期
第六項:警告期段,密碼過期前幾天系統提醒使用者
第七項:過期期限,密碼過期幾天後賬號被鎖定
第八項:保留欄位,從1970年1月1日算起,多少天後賬號失效。

/etc/gshadow此檔案為儲存組密碼資訊的檔案,其檔案格式與/etc/group相同,卻別僅在於第二項密碼部分。
[root@localhost ~]# tail -3 /etc/gshadow
user10:*::
sysadmins:$6$RRCfdNW.e$R1CqBN/5WZ8HrYuDlQrgRlP313sg5NNDCdrq2eGkUsieaZAjMM.Dhj8oGvvy/NKsb0joGLQlSspiiQPs78xJ3/::
linuxidc:!::

第一項:groupname組名
第二項:password組密碼,密文,預設sha512加密
第三項:GID
第四項:userlist該組的使用者成員,以此組為附加組的使用者的使用者列表。

這裡的四個檔案都涉及到密碼內容,這裡就插點關於密碼的相關內容,這內容會加深對加密方式的理解。

在上面的/etc/shadow、/etc/gshadow兩個檔案內,在第二項密碼中,我們看到其開頭都有$6,這裡$6表示的是sha512加密演算法。
加密演算法:
對稱加密:加密和解密使用同一個密碼
非對稱加密:加密解密使用一對金鑰
金鑰對兒:公鑰、私鑰
因為以上還是不夠安全所以又有了單項加密
單項加密:只能加密,不能解密,提取資料特徵碼:
其特性:定長輸出、雪崩效應(一點點的變化就會引起大變動)
Linux中使用的加密演算法有以下6種:
$1 md5      由128bits二進位制表示
$2 sha      由160bits二進位制表示
$3 sha224  由224bits二進位制表示
$4 sha256  由256bits二進位制表示
$5 sha384  由384bits二進位制表示
$6 sha512  由512bits二進位制表示
近期由於md5的加密方式已被破解所以之前Linux預設使用的md5加密演算法已被更新為sha512。

Linux使用者、組管理

使用者管理:建立、修改、刪除
使用者建立:
命令格式:useradd [OPTION] USERNAME
OPTION:
      -u 指定UID
      -g 指定基本組ID,此組需事先存在
      -c 指明註釋資訊
      -G 指明使用者所屬附加組,附加組需事先存在。
      -d 指明使用者家目錄,通過複製/etc/skel/此目錄並重新命名實現,指定的家目錄路徑如果事先存在,則不會為使用者複製環境組態檔
      -s 指定使用者預設shell
      -r 建立系統使用者
      -D 顯示建立使用者的預設設定
      -D + [選項] 修改使用者的預設設定 /etc/login.def  修改的結果儲存於/etc/default/useradd中

使用者修改
usermod
命令格式:usermod [OPTION] USERNAME
OPTION:
      -u 修改使用者的ID為指定的新UID
      -g 修改使用者的GID為新的GID
      -c 修改該使用者註釋資訊
      -G 修改該使用者所屬附加組,附加組需事先存在。
      -d 修改使用者家目錄,使用者原有的檔案不會被轉移至新位置
      -m 與-d一起使用,將原來的家目錄移動至新家目錄(-m放在-d後面使用)
      -l 修改使用者名稱
      -s 修改該使用者預設shell
      -L 鎖定使用者密碼
      -U 解鎖使用者密碼

使用者刪除
userdel
命令格式:userdel [OPTION] USERNAME
OPTION:
      -r 刪除使用者時一併刪除家目錄

組管理:建立、修改、刪除
組建立
groupadd

命令格式:groupadd [OPTION] GROUPNAME
OPTION:
      -g 指定GID,預設是上一個組的GID+1
      -r 建立系統組

組修改
groupmod
命令格式:groupadd [OPTION] GROUPNAME
OPTION:
      -g 修改GID
      -n 修改組名

組刪除
groupdel GROUPNAME

其他的命令
groups USERNAME
檢視使用者的所屬組資訊

[root@localhost test]# groups gentoo
gentoo : gentoo distro peguin netadmin

這說明gentoo使用者的基本組是gentoo,distro peguin netadmin是其附加組。

--------------------------------------------------------------------------------
下面通過幾個例子來具體感受使用者、組管理的具體作用

1、建立使用者u1,附加組g1,g2,預設shell為/bin/csh,注釋資訊為“UUU”
要實現上述內容,需先建立組g1、g2,之後再建立u1。
[root@localhost ~]# groupadd g1
[root@localhost ~]# groupadd g2
[root@localhost ~]# useradd u1 -G g1,g2 -s /bin/csh -c "UUU"
[root@localhost ~]# tail -1 /etc/passwd
u1:x:4323:4323:UUU:/home/u1:/bin/csh
[root@localhost ~]# groups u1
u1 : u1 g1 g2

2、建立下面的使用者、組和組成員關係

名字為admins的組
使用者u2,使用admins作為附屬組
使用者u3,也是用admins作為附屬組
使用者u4,不可互動登陸系統,預設家目錄為/test/u4,u2、u3、u4密碼都是centos
[root@localhost ~]# useradd -G admins u2
[root@localhost ~]# useradd -G admins u3
[root@localhost ~]# useradd -s /sbin/nologin -d /test/u4 u4
[root@localhost ~]# echo "centos" | passwd --stdin u2
更改使用者 u2 的密碼 。
passwd:所有的身份驗證令牌已經成功更新。
[root@localhost ~]# echo "centos" | passwd --stdin u3
更改使用者 u3 的密碼 。
passwd:所有的身份驗證令牌已經成功更新。
[root@localhost ~]# echo "centos" | passwd --stdin u4
更改使用者 u4 的密碼 。
passwd:所有的身份驗證令牌已經成功更新。
[root@localhost ~]# tail -5 /etc/passwd
linuxidc:x:4322:4322::/home/linuxidc:/bin/bash
u1:x:4323:4323:UUU:/home/u1:/bin/csh
u2:x:4324:4324::/home/u2:/bin/bash
u3:x:4325:4325::/home/u3:/bin/bash
u4:x:4326:4326::/test/u4:/sbin/nologin

不可互動指的是其預設shell為/sbin/nologin

3、修改u4使用者的家目錄為/home/u4,要求其原檔案仍能被使用者存取
[root@localhost ~]# usermod -d /home/u4 -m u4
[root@localhost ~]# ll /home
總用量 8
drwx------.  3 fedore  fedore    89 8月  2 22:04 fedore
drwxr-xr-x.  3 root    root      74 8月  2 22:00 gentoo
drwx------.  5 linuxidc laowang 4096 8月  4 16:06 linuxidc
drwxr-xr-x.  3 root    root      74 8月  3 10:49 test1
drwx------.  3 u1      u1        74 8月  4 17:25 u1
drwx------.  3 u2      u2        74 8月  4 17:38 u2
drwx------.  3 u3      u3        74 8月  4 17:38 u3
drwx------.  3 u4      u4        74 8月  4 18:18 u4
[root@localhost ~]# tail -1 /etc/passwd
u4:x:4326:4326::/home/u4:/sbin/nologin
[root@localhost ~]# ll /test/
總用量 948
-rw-rw-r--. 1 gentoo gentoo      0 8月  4 16:05 a
-rw-rw-r--. 1 gentoo gentoo      0 8月  4 16:05 b
-rwxr-sr-x. 1 root  root    33040 8月  4 16:02 echo
-rw-rw-r--. 1 gentoo gentoo    59 8月  4 16:09 Fedora
-rw-rw-r--. 1 gentoo root      34 8月  4 16:23 linuxidc2
drwx---rwx+ 2 root  root      26 8月  3 11:46 t1
-rw-r--r--. 1 root  root      162 8月  3 08:49 userpd
-rw-r--r--. 1 root  root      432 8月  3 08:45 user.txt
-rwxr-sr-x. 1 root  root  910040 8月  4 16:02 vi

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-08/134038.htm


IT145.com E-mail:sddin#qq.com