?Linux中的用戶與組

一、用戶與UID

1.用戶(User)分為管理員與普通用戶

2.對于Linux系統而言,通過UID來界定某用戶是屬于哪個用戶,而不是用戶名

3.查看某用戶的UID可以通過id命令實現,Centos6.8與7.2系統上的UID部分起始數值有所不同

Centos7.2

[root@localhost home]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@localhost home]# id admin
uid=1000(admin) gid=1000(admin) groups=1000(admin),10(wheel)
[root@localhost home]# id user1
uid=1004(user1) gid=1005(user1) groups=1005(user1)
[root@localhost home]# id ftp
uid=14(ftp) gid=50(ftp) groups=50(ftp)

Centos6.8

[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@localhost ~]# id admin02
uid=501(admin02) gid=502(admin02) groups=502(admin02)
[root@localhost ~]# id admin03
uid=502(admin03) gid=503(admin03) groups=503(admin03)
[root@localhost ~]# id ftp
uid=14(ftp) gid=50(ftp) groups=50(ftp)

4.無論Centos6.8還是7.2,管理員的UID都為0,普通用戶的UID編號為1-65535

5.普通用戶可以分為:

系統用戶:即系統本身存在的一些用戶,但仍然只是屬于普通用戶,用于支持系統進程及一些服務的啟用

UID:1-499(Centos6.8),1-999(Centos7.2)

登錄用戶:系統使用者后天創建的用戶,用于供系統使用者登錄,來與操作系統進行交互

UID:500開始(Cetnos6.8),1000開始(Centos7.2)

二、用戶與發起進程間的關系

通常我們把運行中的程序稱之為進程,某一項進程被用戶發起運行后,其所能夠訪問的資源的權限取決于進程的運行者的身份。

范例:以root用戶與admin用戶為例,對/etc/shadow文件進行操作。

root用戶通過nano命令對/etc/passwd文件進行查看

blob.png

此時通過ps aux命令查看系統進程,可以發現此時nano程序的發起者為root

blob.png

admin用戶通過nano命令對/etc/passwd文件進行查看

blob.png

此時通過ps aux命令查看系統進程,可以發現此時nano程序的發起者為admin

blob.png

由此可以發現,對于/etc/shadow這個文件而言,root與admin用戶能否對其進行訪問,取決于root與admin自身的身份,而與發起的進程并無關系。

三、組與GID

1.組(Group)分為管理員組與普通組

2.對于Linux系統而言,通過GID來判斷某用戶屬于哪個組,而不是組名

3.Linux中組的類別:

3.1主組(用戶的主要組)

3.1.1用戶必須屬于一個并且只能屬于一個主組

3.1.2新用戶在建立的時候,如果沒有指定主組的話,默認主組為私有組(即組名與用戶名相同的組),私有組有且只有一個用戶(即新用戶自身)

3.2輔助組(即用戶的附加組)

3.2.一個用戶可以不屬于輔助組,也可以屬于多個輔助組

4.普通用戶組可以分為: 

系統用戶組:即系統用戶的所屬組,

GID:1-499(Centos6.8),1-999(Centos7.2)

登陸用戶組:即登錄用戶的所屬組,

GID:500開始(Cetnos6.8),1000開始(Centos7.2)

四、用戶和組的配置文件

用戶配置文件:/etc/passwd

用戶密碼配置文件:/etc/shadow

組配置文件:/etc/group

組密碼文件:/etc/gshadow

1.用戶配置文件:/etc/passwd中的字段信息如下:

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

該字段由冒號(:)分隔,共7個字段,自左向右解釋如下:

用戶名:密碼:UID:GID:注釋;家目錄:默認Shell類型

2.用戶密碼配置文件:/etc/shadow中的字段信息如下:

[root@localhost ~]# cat /etc/shadow
root:$6$xdjdqJdXTfOk30W3$3YfvEL9rzNK6c1qYKSAv0anQXQkt/glZw7mPqE3FyHnQH/nswRqMGFmXeVbO1OJ1xkyB8cwEabuvaDOWaYCH3/::0:99999:7:::

該字段由冒號(:)分隔,共8個字段,自左向右解釋如下:

登錄用戶:用戶密碼:密碼最近一次被更改的時間(從1970.1.1開始算起的天數):密碼再過幾天允許變更:密碼再過幾天必須更改:密碼到期前幾天提醒用戶:密碼過期幾天后帳號將被鎖定:帳號幾天后失效(從1970.1.1開始算起的天數)

3./etc/passwd中對于用戶的密碼,加密算法默認為sha512,可以被手動更改,命令為authconfig –passalgo=算法 –update

例如:更改默認的sha512加密算法為md5

[root@localhost ~]# authconfig --passalgo=md5 --update
[root@localhost ~]# useradd user15
[root@localhost ~]# passwd user15
Changing password for user user15.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
admin:$6$tQtyCgrqniIA7HIo$yaAYYO5FNueKteRV2o1csx4u.1gAY6pQuRAiwR63Ur0Q4.8/SuJ4TwKaorA/NRzS3eC4PwzRzGbALz1sUlnwG0:17001:0:99999:7:::
gentoo:!!:14244:0:99999:7:::
111:!!:14245:0:99999:7:::
1111:!!:14245:0:99999:7:::
user1:!!:17021:0:99999:7:::
centos:!!:17021:0:99999:7:::
user12:!!:17021:0:99999:7:::
root1:!!:17021:0:99999:7:::
centos1:!!:17021:0:99999:7:::
user13:$1$XNtmO.u2$W/nMXJY8lNGWdREiEJjbY0:17021:0:99999:7:::
user15:$1$s91Vy80O$aEtCQFYMRqMkZXEn3MdZW/:17021:0:99999:7:::

可以看到,用戶密碼的加密方式由sha512更改為md5,此時新建一個新用戶user15,為其設置密碼后,查看/etc/shadow文件,user15的密碼密文為$1開頭,并且密文長度大幅縮短,而更改密碼加密方式之前所創建的admin用戶的密碼密文為$6開頭,且密文長度較長。

4.組配置文件:/etc/group中的字段信息如下:

[root@localhost ~]# cat /etc/group
root:x:0:gentoo

該字段由冒號(:)分隔,共4個字段,自左向右解釋如下:

組名稱:組密碼:GID:以當前組為輔助組的用戶列表(通過逗號隔開)

5.組密碼文件:/etc/gshadow中的字段信息如下:

[root@localhost ~]# cat /etc/gshadow
root:::gentoo

該字段由冒號(:)分隔,共4個字段,自左向右解釋如下:

組名:組密碼:組管理員列表:以當前組為輔助組的用戶列表(分隔符為逗號)

五、用戶管理命令

1.useradd 新建用戶

選項:

-u  指定新建用戶的UID

-g  指定新建用戶的主組

-c  指定新建用戶的注釋信息

-d  指定新建用戶的家目錄

-s  指定新建用戶的默認shell

-G  指定新建用戶的輔助組

語法格式:useradd 選項 用戶名

示例:新建一個用戶,用戶名為user50,且uid為1050,主組為testgroup,注釋信息為testuser,家目錄為/home/user50,默認shell為/bin/bash,輔助組為root

[root@localhost ~]# useradd -u 1050 -g testgroup -c testuser -d /home/user50 -s /bin/bash -G root user50
[root@localhost ~]# id user50
uid=1050(user50) gid=1022(testgroup) groups=1022(testgroup),0(root)
[root@localhost ~]# cat /etc/passwd
user50:x:1050:1022:testuser:/home/user50:/bin/bash

-N  不創建與用戶名同名的私用組作為新建用戶的主組,而是用user組作為主組

示例:新建一個用戶user51,將user組作為其主組

[root@localhost ~]# useradd -N user51
[root@localhost ~]# id user51
uid=1051(user51) gid=100(users) groups=100(users)

-r  創建系統用戶(即UID小于500-Centos6,UID小于1000-Centos-7)

示例:新建一個用戶user52,將其創建為系統用戶

Centos7.2

[root@localhost ~]# useradd -r user52
[root@localhost ~]# id user52
uid=988(user52) gid=983(user52) groups=983(user52)

Centos6.8

[root@localhost ~]# useradd -r user52
[root@localhost ~]# id user52
uid=495(user52) gid=492(user52) groups=492(user52)

2.系統對于新創建用戶的各項設置有默認值設定,其存儲路徑為/etc/default/useradd文件

使用cat /etc/default/useradd 或useradd -D都可查看默認設置

[root@localhost ~]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

修改默認設置如下:

范例:修改默認設置中的默認SHELL類型為/bin/csh

[root@localhost ~]# useradd -D -s /bin/csh
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/csh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

     

3.usermod 修改用戶

語法格式:usermod 選項 用戶名

選項:

-u  修改已經存在的用戶的UID

-g  修改已經存在的用戶的主組

-c  修改已經存在的用戶的注釋信息

-d  修改已經存在的用戶的家目錄

-s  修改已經存在的用戶的默認shell

-G  修改已經存在的用戶的輔助組

-l  修改已經存在的用戶的用戶名

范例:修改user52的用戶名為user53

[root@localhost ~]# usermod -l user53 user52
[root@localhost ~]# cat /etc/passwd
user53:x:988:983::/home/user52:/bin/bash

-L  鎖定該用戶,在其/etc/shadow的對應條目上的密碼字段中增加!

范例:將用戶user51鎖定

[root@localhost ~]# usermod -L user51
[root@localhost ~]# cat /etc/shadow
user51:!$1$rJvOIJUh$kX1vLz5NVLWcHcoOzK8xW0:17021:0:99999:7:::

-U  解鎖該用戶,在其/etc/shadow的對應條目上的密碼字段中減少!

范例:將用戶user51解鎖

[root@localhost ~]# usermod -U user51
[root@localhost ~]# cat /etc/shadow
user51:$1$rJvOIJUh$kX1vLz5NVLWcHcoOzK8xW0:17021:0:99999:7:::

4.userdel 刪除用戶

語法格式:userdel 選項 用戶名

選項:

-f  強制刪除某用戶(即使目標用戶仍在登錄,也將被強制刪除,包括家目錄與郵箱目錄)

-r  移除某用戶(此操作將會導致家目錄和郵箱目錄等目標用戶的有關信息都被移除) 

5.id命令 查看用戶相關ID信息

語法格式:id 選項 用戶名

選項:

-u 查看指定用戶的UID

-g 查看指定用戶的起作用的GID

-G 查看指定用戶的所有GID

-n 通常結合-G、-g來使用,輸出指定ID的名字

6.passwd命令 設置用戶密碼 

語法格式:passwd 選項 用戶名

注意:

1.修改自身密碼,只需切換到目標用戶,直接執行passwd即可

2.修改其他用戶密碼,只有root用戶有權限,普通用戶沒有權限修改非自身的密碼

選項:

-l  鎖定指定用戶

范例:鎖定user51用戶

[root@localhost ~]# passwd -l user51
[root@localhost ~]# cat /etc/shadow
user51:!!$1$rJvOIJUh$kX1vLz5NVLWcHcoOzK8xW0:17021:0:99999:7:::

-u  解鎖指定用戶

范例:解鎖user51用戶

[root@localhost ~]# passwd -u user51
[root@localhost ~]# cat /etc/shadow
user51:$1$rJvOIJUh$kX1vLz5NVLWcHcoOzK8xW0:17021:0:99999:7:::

注意:鎖定的意思即為

-e  強制該用戶下次登陸時必須修改密碼

范例:指定admin用戶在下次登陸時必須修改密碼

[root@192 ~]# passwd -e admin
Expiring password for user admin.
passwd: Success

WARNING! The remote SSH server rejected X11 forwarding request.
You are required to change your password immediately (root enforced)
Last failed login: Mon Aug  8 21:23:58 CST 2016 from 192.168.211.1 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Aug  8 21:23:05 2016
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user admin.
Changing password for admin.
(current) UNIX password:

-n  指定某用戶密碼的最短使用期限

-x  指定某用戶密碼的最大使用期限

-w  指定某用戶的密碼過期前提前多少天進行警告

六、組管理命令

1.groupadd:創建新組

語法格式:groupadd 選項 組名

選項:

-g  指定GID

-r  創建系統組(即GID<500-Centos6,GID<1000-Centos7)

2.groupmod:修改已存在的組

語法格式:groupmod 選項 組名

選項:

-n  修改已存在組的名字

-g  修改已存在組的GID

3.groupdel:刪除組    

語法格式:groupdel 選項 組名

4.gpasswd 更改組密碼

語法格式:gpasswd 選項 組名

選項:

-a  將指定用戶添加至指定組中

-d  從指定組中移除指定用戶

-A  將指定用戶加入到組管理員列表中

5.newgrp命令 臨時將指定組作為當前用戶的主組

語法格式:newgrp 組名

注意:如果用戶本不屬于此組,則需要輸入組密碼

6.groupmems 更改與查看組成員

語法格式:groupmems 選項 行為

選項:

-g 指定某組

行為:  

-a  指定用戶加入某組 

-d  從組中刪除指定用戶

-p  從組中清除所有成員 

-l  顯示組成員列表

7.groups 用戶 該命令可以查看用戶所屬組的列表

七、用戶切換命令

通過su命令的兩種方式來實現

  1. su 用戶名:非登陸式切換,不會讀取用戶的配置文件,不改變當前工作目錄

  2. su – 用戶名:登錄式切換,讀取目標用戶的配置文件,并切換至家目錄,屬于完全切換

注意:su命令在使用時由root用戶切換至其他用戶無需密碼,普通用戶互相切換時需要密碼

原創文章,作者:Koinlers,如若轉載,請注明出處:http://www.www58058.com/31257

(0)
KoinlersKoinlers
上一篇 2016-08-09
下一篇 2016-08-10

相關推薦

  • 文本處理工具sed及文本編輯器vim課程作業

    文本處理工具sed課程作業     1、刪除/etc/grub2.conf文件中所有以空白開頭的行行首的空白字符         sed -n 's@^[[:space:]]\+@@p' /etc/grub2.cfg &…

    學員作品 2016-08-10
  • 關于文本處理工具之SED

                                                      &nbsp…

    學員作品 2016-08-10
  • Linux進程查看和管理及作業控制

    在linux系統中,內核的功用有:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等,在這眾多的模塊中,進程管理是相對重要的一環,即使不像文件系統和網絡功能那么復雜。在進程管理中,內核對進程的創建、切換、撤銷和調度都有很詳細的定義。  1、進程類型     守護進程:在系統引導過程中啟動的進程,跟終端無關的進…

    學員作品 2016-11-14
  • 馬哥教育網絡班21期-第七周課程練習

    第七周 1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;    (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動…

    學員作品 2016-08-29
  • 馬哥團隊帶你揭秘互聯網巨頭公司—騰訊

    馬哥團隊帶你揭秘互聯網巨頭公司—騰訊 前幾日,馬哥團隊成員受邀,到國內互聯網巨頭–騰訊參觀和交流,并用照片記錄下了一些精彩瞬間,這里分享給大家。(希望大家多多努力,早日進入頂級公司) 剛到騰訊大廈,上到公司門口,是騰訊的前臺,(沒想到前臺是個男同胞) 進來后,騰訊的照片墻,十分有質感 訪客必須先登記,會給發放一個騰訊的訪客門牌。 公司…

    學員作品 2015-04-14
  • 【驚爆】馬哥linux2016最新全套課程(內部泄密版)

    你知道么,馬哥linux2016最新全套課程(內部泄密版)被曝光了,小編剛剛得到消息,然后就給大家分享出來了,大家快來點評下,話說2016版課程如何?且聽小編慢慢為你道來 全新內容,全新陣容,引入ELK和Docker內容,更加貼合生產環境應用,全新的Centos7搭載完善的實戰實驗室,強大的不像實力派,特別需要說明的一點:0首付0利率,機會不容錯過?。?! 高…

    學員作品 2015-10-21
欧美性久久久久