Linux用戶和組的概念


1 用戶和組存在的關系    1

1.1 我們現在所使用的操作系統都是多用戶操作系統    1

1.2 id命令查看當前登陸的用戶信息    1

1.3 用戶UID的分類    1

1.4 組類別    1

2 用戶管理*****    1

2.1 配置文件    1

2.1.1 用戶的賬戶文件    1

2.1.2 用戶的密碼文件    1

2.1.3 使用chage更改用戶密碼使用情況    1

2.1.4 練習    1

3 Linux用戶命令****    1

3.1 使用useradd命令新增賬戶,注意:adduser命令軟鏈接指向useradd命令    1

3.2 使用usermod命令修改用戶組    1

4 用戶創建的原理***    1

5 密碼管理***    1

5.1 密碼的設置    1

5.2 需要注意:    1

6 組命名管理**    1

7 身份切換*****    1

8 sudo提升權限*****    1

 

  1. 用戶和組存在的關系

  2.     我們現在所使用的操作系統都是多用戶操作系統

            1、系統上的每一個進程(運行程序)都需要特定的用戶運行=

            2、每一個文件都有特定的用戶擁有

            3、訪問文件或目錄受用戶限制

            3、進程能夠以任何方式訪問某個文件或者目,進程所關聯的用戶有關

  3. id命令查看當前登陸的用戶信息

[root@majinhai ~]# id root

uid=0(root) gid=0(root) 組=0(root)

 

  1. 用戶UID的分類

    1. UID范圍是0-65535216次方
    2. 超級管理員的UID0
    3. 1-200是系統用戶,有系統分配給進程使用
    4. 201-999是系統用戶,用來運行服務賬戶,不需要登錄系統(動態分配)
    5. 1000-65535是普通用戶
    6. 注意:Linux7之前的慣例是UID1-499是系統用戶,UID500+是普通用戶
  2. 組類別

    1. 基本組:優先使用基本組,由系統分配給系統進程使用
    2. 附加組:基本組不能滿足授權要求,創建附加組,用戶可以屬於多個附加組
    3. 私有組:創建用戶時如果沒有指定屬組,系統會創建同名的組
  3. 用戶管理*****

  4. 配置文件

    用戶信息存放在/etc/passwd文件中,賬戶密碼信息保存在/etc/shadow這個文件中,這兩個文件是Linux系統中最重要的文件之一。如果這兩個文件損壞或者丟失,將導致用戶無法登陸Linux系統。

  1. 用戶的賬戶文件

    賬戶文件路徑/etc/passwd

[root@majinhai ~]# head -1 /etc/passwd

root:x:0:0:root:/root:/bin/bash

賬戶信息是由:分割成7個字段,每個字段的含義如下:

序號

字段名稱

注釋說明

1

用戶名稱

用戶的賬戶名稱

2

密碼占位符

存放賬戶的口令,暫時是x表示,密碼保存在/etc/shadow

3

用戶的UID

用戶標識號

4

用戶基本組GID

組標識號

5

用戶注釋

用戶的詳細信息

6

用戶家目錄

用戶家目錄,root家目錄是/root普通用戶的家目錄在/home/username,可自定義

7

用戶登陸的shell

用戶登陸的linux使用的shell cat/etc/shells

 

  1. 用戶的密碼文件

密碼文件路徑/etc/shadow

[root@majinhai ~]# head -1 /etc/shadow

root:$6$xX6yVcKAazqMGA77$.bKMJECopM3l4CvaS8::0:99999:7:::

 

    密碼文件由:分割成9段,每個字段具體含義如下:

序號

字段名稱

注釋說明

1

用戶登錄名

用戶的賬戶名稱

2

加密后的密碼

用戶密碼,這是加密過的口令(未設置密碼為!!)

3

最后一次密碼更改時間

1970年到最近一次更改密碼時間之間過了多少天

4

密碼最少使用幾天

密碼最少使用幾天才可以更改密碼(0表示無限制)

5

密碼最長使用幾天

密碼使用多少天需要修改密碼(默認99999永不過期)

6

密碼到期前警告期限

密碼過期前多少天提醒用戶更改密碼(默認過期提前7天警告)

7

密碼到期后保持活動的天數

在此期限內, 用戶依然可以登陸系統並更改密碼, 指定天數過后, 賬戶被鎖定

8

賬戶到期時間

1970年起,賬戶在這個日期前可使用,到期后失效

9

標志

保留

密碼格式$a$b$c

a:表示加密算法

b:表示salt 隨機值

c:表示加密后的值

  1. 使用chage更改用戶密碼使用情況

    -d 設置最近一次更改密碼時間, 0下次登陸系統強制修改密碼

    -m 設置用戶兩次改變密碼之間使用"最小天數"

    -M 設置用戶兩次改變密碼之間使用"最大天數"

    -W 設置密碼更改警告時間 將過期警告天數設為"警告天數"

    -I 設置密碼過期天數后, 密碼為失效狀態

    -E 設置用戶過期時間, 賬戶失效后無法登陸

    -l 顯示用戶信息

  1. 練習

設置時間為2010年5月15日

[root@majinhai ~]# date -s 20100515

2010年 05月 15日 星期六 00:00:00 CST

新建一個普通用戶admin

[root@majinhai ~]# useradd admin

設置密碼為123456

[root@majinhai ~]# echo "123456" | passwd --stdin admin

更改用戶 admin 的密碼 。

passwd:所有的身份驗證令牌已經成功更新。

查看admin的密碼信息

[root@majinhai ~]# tail -1 /etc/shadow

admin:$6$f11exkhB$8e. 9KZkJ2p9MZiFQLC9DCvS/K2U1:14743:0:99999:7:::

設置最近一次修改密碼時間

[root@majinhai ~]# chage -d 2010-05-18 admin

[root@majinhai ~]# tail -1 /etc/shadow

admin:$6$f11exkhB$8e.MCZkzHDqrqrTeHSAJXUmlbPsiWIYnHXphdm2tjjoNFHvinyq0AMlRfAsyj9KZkJ2p9MZiFQLC9DCvS/K2U1:14747:0:99999:7:::

設置最短使用密碼時間

[root@oldboy ~]# chage -m 1 admin

[root@oldboy ~]# tail -1 /etc/shadow

admin:$6$cpHfgk6q$BJp0n.gIT4T1pI7vKDeM9xeEsLBov4d36u/whLWxXHh6xjoJdQ.AOwERGS5b1seQ4BvkGUbERGFVN4JLkOWLo1:17757:1:99999:7:::

WARNING: Your password has expired.        #警告:你的密碼已過期

You must change your password now and login again!    #您必須立即修改密碼並重新登錄

更改用戶 admin 的密碼 。

為 admin 更改 STRESS 密碼。

(當前)UNIX 密碼:

設置最長時間

[root@oldboy ~]# chage -M 20 admin

[root@oldboy ~]# tail -1 /etc/shadow

admin:$6$cpHfgk6q$BJp0n.gIT4T1pI7vKDeM9xeEsLBov4d36u/whLWxXHh6xjoJdQ.AOwERGS5b1seQ4BvkGUbERGFVN4JLkOWLo1:17757:1:20:7:::

設置密碼警告時間

[root@oldboy ~]# chage -W 1 admin

[root@oldboy ~]# tail -1 /etc/shadow

admin:$6$cpHfgk6q$BJp0n.gIT4T1pI7vKDeM9xeEsLBov4d36u/whLWxXHh6xjoJdQ.AOwERGS5b1seQ4BvkGUbERGFVN4JLkOWLo1:17757:1:20:1:::

設置密碼過期后使用時間

[root@oldboy ~]# chage -I 1 admin

[root@oldboy ~]# tail -1 /etc/shadow

admin:$6$cpHfgk6q$BJp0n.gIT4T1pI7vKDeM9xeEsLBov4d36u/whLWxXHh6xjoJdQ.AOwERGS5b1seQ4BvkGUbERGFVN4JLkOWLo1:17757:1:20:1:1::

設置用戶過期時間

[root@oldboy ~]# chage -E 2018-8-13 admin

[root@oldboy ~]# tail -1 /etc/shadow

admin:$6$cpHfgk6q$BJp0n.gIT4T1pI7vKDeM9xeEsLBov4d36u/whLWxXHh6xjoJdQ.AOwERGS5b1seQ4BvkGUbERGFVN4JLkOWLo1:17757:1:20:1:1:17756:

顯示用戶信息

[root@oldboy ~]# chage -l admin

最近一次密碼修改時間                    :8月 14, 2018

密碼過期時間                    :9月 03, 2018

密碼失效時間                    :9月 04, 2018

帳戶過期時間                        :8月 13, 2018

兩次改變密碼之間相距的最小天數        :1

兩次改變密碼之間相距的最大天數        :20

在密碼過期之前警告的天數    :1

  1.     Linux用戶命令****

添加用戶前需要確定

    確定用戶的默認組是否有特殊要求

    確定用戶是否允許登陸

    確定用戶的密碼策略

    確定用戶的有效期

    確定用戶的uid是否有特殊要求

  1. 使用useradd命令新增賬戶,注意:adduser命令軟鏈接指向useradd命令

    '-u' 指定用戶的UID,不能和現有ID沖突

    '-g' 指定用戶用戶默認基本組

    '-G' 指定用戶附加組,用逗號隔開添加多個附加組

    '-d' 指定用戶家目錄

    '-c' 指定用戶注釋信息

    '-M' 不建立家目錄

    '-s' 指定用戶默認shell

    '-r' 創建系統賬戶, 沒有家目錄

    創建一個名為oldboy的用戶,指定UID5001,基本組為students,附加組為sa,dba,注釋信息為:2018 new student ,shell為bash

[root@oldboy ~]# groupadd students

[root@oldboy ~]# groupadd sa

[root@oldboy ~]# groupadd dba

[root@oldboy ~]# useradd -u 5001 -g students -G sa,dba -c "2018 new student" -d /home/oldboy -s /bin/bash oldboy

正在創建信箱文件: 文件已存在

 

//創建系統用戶,-M不建立用戶家目錄 -s指定nologin使其用戶無法登陸系統

[root@oldboy ~]# useradd -M -s /sbin/nologin mysql

[root@oldboy ~]# useradd -r -s /sbin/nologin dba

  1. 使用usermod命令修改用戶組

    '-u' 修改用戶的UID

    '-g' 修改用戶所屬的基本組GID

    '-G' 修改用戶附加組, 使用逗號隔開多個附加組, 覆蓋原有的附加組

    '-a' 追加更多的附加組, 必須和-G使用: -aG 追加附加組

    '-md' 家目錄遷移, 必須和-d一起使用, 移動用戶的家目錄到新的位置

    '-d' 指定用戶的家目錄新位置

    '-c' 修改用戶的注釋信息

    '-s' 更改用戶使用的shell

    '-l' 更改用戶登錄名

    '-L' 鎖定用戶

    '-U' 解鎖用戶

1、更改oldboy的UID為6001,基本組為network,附加組為devops

[root@oldboy ~]# groupadd -g 5008 network

[root@oldboy ~]# guoupadd -g 5009 devops

[root@oldboy ~]# usermod -u 6001 -g network -a -G devops -c "2019 new student" -md /home/oldstudent -s bin/sh -l oldstudent oldboy

[root@oldboy ~]# tail -1 /etc/passwd

oldstudent:x:6001:5008:2019 new student:/home/oldstudent:bin/sh

[root@oldboy ~]# id oldstudent

uid=6001(oldstudent) gid=5008(network) 組=5008(network),1003(sa),1004(dba),5009(devops)

2、鎖定用戶

[root@oldboy ~]# echo "123" |passwd --stdin oldstudent

[root@oldboy ~]# usermod -L oldstudent

//無法正常登錄系統

~ ssh oldstudent@10.0.0.200

oldstudent@10.0.0.200's password:

Permission denied, please try again.

 

3、解鎖用戶

[root@oldboy ~]# usermod -U oldstudent

//正常登錄系統

4、使用finger命名查詢用戶信息以及登錄信息

//安裝finger命令

[root@oldboy ~]# finger oldstudent

Login: oldstudent             Name: 2019 new student

Directory: /home/oldstudent     Shell: bin/sh

Never logged in.

No mail.

No Plan.

  1. 使用finger修改用戶信息

[root@oldboy ~]# chfn oldstudent

Changing finger information for oldstudent.

名稱 [2019 new student]: hellow i am 2020 student

辦公 []: 13369565161

辦公電話 []: 6465135

住宅電話 []: 165465

Finger information changed.

驗證修改過的用戶信息

[root@oldboy ~]# finger oldstudent

Login: oldstudent             Name: hellow i am 2020 student

Directory: /home/oldstudent     Shell: bin/sh

Office: 13369565161, 646-5135        Home Phone: 165465

Never logged in.

No mail.

No Plan.

  1. 使用chsh命令更改用戶登錄shell

New shell [bin/sh]: /bin/bash

Shell changed.

[root@oldboy ~]# tail -1 /etc/passwd

oldstudent:x:6001:5008:hellow i am 2020 student,13369565161,6465135,165465:/home/oldstudent:/bin/bash

6、使用userdel刪除用戶

    語法:userdel [-r] username

        -r:同時刪除用戶家目錄

  1. 用戶創建的原理***

Linux創建用戶默認會讀取/etc/defaults/useradd的配置文件,如果當我指定參數時,使用指定參數,如果不指定參數,默認使用/etc/defaults/useradd中的配置。當我們使用useradd命令新建用戶時,用戶家目錄下會產生相應的.bash_*文件,這些文件默認是從/etc/skel目錄中復制。如需變更環境拷貝目錄站點可修改:/etc/defaults/useradd的配置文件。

注意:如果執行useradd命令新建用戶時,指定了參數,就會覆蓋/etc/default/useradd默認的配置。

兩個配置文件 第一個

[root@student ~]# egrep -v "^#|^$" /etc/login.defs

MAIL_DIR /var/spool/mail

PASS_MAX_DAYS 99999

PASS_MIN_DAYS 0

PASS_MIN_LEN 5

PASS_WARN_AGE 7

UID_MIN 1000

UID_MAX 60000

SYS_UID_MIN 201

SYS_UID_MAX 999

GID_MIN 1000

GID_MAX 60000

SYS_GID_MIN 201

SYS_GID_MAX 999

CREATE_HOME yes

UMASK 077

USERGROUPS_ENAB yes

ENCRYPT_METHOD SHA512

第二個

[root@student ~]# cat /etc/default/useradd

GROUP=100

HOME=/home //把用戶的家目錄建在/home中。

INACTIVE=-1 //是否啟用賬號過期停權,-1表示不啟用。

EXPIRE= //賬號終止日期,不設置表示不啟用。

SHELL=/bin/bash //新用戶默認所有的shell類型。

SKEL=/etc/skel //配置新用戶家目錄的默認文件存放路徑。

CREATE_MAIL_SPOOL=yes //創建mail文件。

 

 

//用戶登錄linux操作系統,環境變量被誤刪,出現-bash-4.2$,如何解決!

-bash-4.2$ cp -a /etc/skel/.bash* ./

-bash-4.2$ exit

 

[root@student ~]# su - oldboy

[oldboy@student ~]$

  1. 密碼管理***

創建完賬戶后,默認是沒有設置密碼的,所以該賬戶是沒有辦法登陸操作系統。只有使用passwd設置好密碼后方可登錄系統。

使用passwd為用戶創建密碼時,為了安全起見,請盡量設置復雜一些。可以按照如下規則設置密碼:

  1. 密碼的設置

1.長度大於10位字符;

2.密碼中包含大小寫字母數字以及特殊字符 '!','@','$'等;

3.不規則性(不要出現自己名字、公司名字、自己電話、等等簡單的密碼)

 

  1. 需要注意:

1.普通用戶只能更改自己的密碼

2.管理員root能更改任何人密碼

使用passwd命令修改用戶密碼

語法 : passwd [username]

 

// 'passwd' 后面不加username則是修改當前賬戶的密碼。

//如果你登陸的是root賬戶,后面可以指定要修改密碼的賬戶。

//只有root才可以修該其他賬戶的密碼,普通賬戶只能修改自己的密碼,普通用戶沒有修改其他用戶的權限

 

 

//root用戶登陸,修改root賬戶密碼

[root@oldboy ~]# passwd

更改用戶 root 的密碼 。

新的 密碼:

重新輸入新的 密碼:

passwd: 所有的身份驗證令牌已經成功更新。

 

//root用戶登陸,修改oldboy1賬戶密碼

[root@oldboy ~]# passwd oldboy

更改用戶 user11 的密碼 。

新的 密碼:

重新輸入新的 密碼:

passwd: 所有的身份驗證令牌已經成功更新。

 

 

//普通用戶修改root密碼

[oldstudent@oldboy ~]$ passwd root

passwd: Only root can specify a user name.

 

//無需用戶交互修改密碼, 將前者的輸出結果, 成為后者的輸入

[root@oldboy ~]# echo "123" | passwd --stdin oldstudent

Changing password for user oldstudent.

passwd: all authentication tokens updated successfully.

 

 

隨機密碼生成工具幾種方式

//1.系統內置變量生成隨機密碼

[root@oldboy ~]# echo $RANDOM|md5sum|cut -c 1-10

d09fe9b1xs

 

//2.mkpasswd密碼生成工具

//-l密碼長度默認7位, -d數字, -c小寫字母,-C大寫字母

[root@oldboy ~]# yum install -y expect //需要安裝擴展包

[root@oldboy ~]# mkpasswd -l 15 -d 3 -C 5

yB7LpqIM31>ktpB

推薦密碼保存工具客戶端,支持windows、MacOS、手機、以及瀏覽器插件

Lastpass官方網站

  1. 組命名管理**

  2. 身份切換*****

  3. sudo提升權限*****

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM