linux下用戶(user)和用戶組(group)命令-RH

linux的用戶和用戶組

用戶是必須的嗎?

成都創(chuàng)新互聯公司致力于成都網站建設、成都網站制作,成都網站設計,集團網站建設等服務標準化,推過標準化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務水平進行質量交付,讓企業(yè)網站從市場競爭中脫穎而出。 選擇成都創(chuàng)新互聯公司,就選擇了安全、穩(wěn)定、美觀的網站建設服務!

用戶:標識計算機上的資源的歸屬
密碼:對用戶的身份做驗證

登錄的時候計算機如何做身份驗證?

在計算機內部預先有一個數據庫,在數據庫中保存用戶名和對應的密碼,用戶登錄時候通過比對數據庫來檢查用戶和密碼是否正確

什么是數據庫?
用來保存數據的文件,數據庫管理軟件(oracle MySQL sqlserver db2)

保存賬號和密碼的數據庫文件

/etc/passwd   <<<< 保存系統(tǒng)中的全部的用戶名
/etc/shadow   <<<< 保存各個用戶的密碼
/etc/group    <<<< 保存系統(tǒng)中的全部用戶組名
/etc/gpasswd  <<<< 保存各個用戶組的密碼

windows下新建用戶

計算機-管理-本地用戶和組-用戶-新建 (用戶名 密碼)
計算機-管理-本地用戶和組-組-新建(用戶組)添加用戶
windows下有用戶和組,linux中同樣有用戶和,linux中一個用戶也可以同屬多個組,100個用戶授權的話需要授權100次,直接把用戶加到組中,直接授權組

用戶和用戶組

用戶:登錄系統(tǒng)的用戶名
用戶組:多個用戶的合集

用戶組的作用

方便為多個用戶批量授權

用戶身份標識

計算機為每一個用戶設置一個唯一的數字,當計算機識別用戶的時候,通過
該數字來識別的,數字就是UID(User IDentifier)

用戶組身份標識

GID

注意:為用戶賦權的時候,其實是針對uid賦權的
例子:zs--uid=601
賦權:zs可以訪問文件a.txt
本質:讓uid為601的用戶可以訪問a.txt

/etc/passwd文件詳解

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

文件的作用
這個文件中保存了系統(tǒng)中的全部用戶,每行是一個用戶
每個用戶的信息包括7部分,如下
第一段:用戶名
第二段:用戶密碼占位符,為了安全將密碼放在另外一個文件中
(/etc/shadow)
第三段:用戶的UID
第四段: 用戶所在組的GID(該組是用戶的基本組)
第五段:用戶的描述信息(可以隨便寫)
第六段:用戶的家目錄
第七段:用戶的shell類型
    常見的shell類型
     1:/bin/bash <<<< 默認是該shell的時候,可以登錄系統(tǒng)
     2:/sbin/nologin  <<<該shell的用戶是無法登錄系統(tǒng)的
例子:統(tǒng)計有多少用戶
    [root@localhost ~]# cat /etc/passwd | wc -l
例子:統(tǒng)計當前系統(tǒng)中有多少用戶可以登錄系統(tǒng)
    [root@localhost ~]# grep "/bin/bash$" /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    zhangsan:x:500:500::/home/zhangsan:/bin/bash
    lisi:x:502:502::/home/lisi:/bin/bash
    zs:x:503:503::/home/zs:/bin/bash
    [root@localhost ~]# grep "/bin/bash$" /etc/passwd |wc -l
    4

用戶的分類

管理員
    UID 0 
    特點:默認只有一個,就是root root不受任何權限的約束
系統(tǒng)用戶
    UID 1-499
    特點:在安裝完成linux之后或者安裝了某個程序執(zhí)行自動生成
    的用戶,這類用戶是默認情況不能登錄系統(tǒng)的,這類用戶存在的
    目的是為了運行特定的服務(程序、進程)
    默認系統(tǒng)用戶也沒有家目錄
普通用戶
    UID 500+
    特點:需要運行命令 useradd來創(chuàng)建
    普通用戶的權限非常小,通常僅僅能在自己的家目錄下進行操作
    該類用戶的家目錄/home下和用戶同名的目錄

用戶組的分類

用戶的基本組(用戶的主組)
    在/etc/passwd中第四個字段(GID)所指向的組就是用戶的基本組
用戶的附件組
注意:一個用戶可以屬于多個組。同一時間,只能有一個是主組,其他的就是附加組,除了主組之外的其他組就是該用戶的附加組

補充:在用useradd創(chuàng)建普通用戶的時候,默認情況下,會創(chuàng)建一個組,組名和用戶名
相同,該組默認就是該用戶的基本組(主組)    
useradd bajie
tail /etc/passwd
cat /etc/group

補充:linux的文件屬性
屬主:文件的屬主(誰創(chuàng)建的文件,文件的屬主就是誰)
屬組:設置文件對于一個特定用戶組所具有的權限,這個組就是該文件的屬組
注意:屬組、屬主默認都只有一個
如果一個用戶既不是屬主,也不是屬組的組內用戶,那么該用戶就是"其他用戶"

三類用戶

屬主
屬組的組內用戶
其他用戶

創(chuàng)建用戶

useradd命令
    作用:新建用戶
    格式:useradd [options]用戶名
    選項:
        -c "string" 設置新用戶的描述信息
        -d "/path/to/dir" 設置用戶的家目錄
        -e 月月/日日/年年:指定賬號的過期日期
        -g GID:指定用戶的主組ID號或名稱
        -G GID,GID,GID:指定用戶的附加組的ID號或名稱
        -m 在創(chuàng)建用戶的時候,如果用戶家目錄不存在,則自動創(chuàng)建(該選項
        自動使用)
        -M 不自動創(chuàng)建用戶家目錄
        -r 創(chuàng)建系統(tǒng)用戶
            用此選項創(chuàng)建的用戶有以下特點
                1、默認用戶無家目錄
                2、默認用戶uid<500
                3、默認用戶的shell是bash
                4、用戶可以登錄系統(tǒng)
        -s shType:指定用戶的shell類型
            常用的shell
                /bin/bash
                /sbin/nologin
        -u UID 指定用戶的uid
        -u UID -o 指定讓新用戶使用一個現有的ID
    [root@localhost ~]# useradd -c "i am tom" tom
    [root@localhost ~]# tail /etc/passwd
    tom:x:505:505:i am tom:/home/tom:/bin/bash

    useradd zhangsan   創(chuàng)建用戶zhangsan
    tail /etc/passwd   查看用戶是否存在
    id 用戶名          可以查看用戶是否存在

例子:新建用戶jerry,要求主組為gp01,附加組為gp02 和gp03
    [root@localhost ~]# useradd -g gp01 -G gp02,gp03 jerry
    [root@localhost ~]# tail /etc/passwd
    [root@localhost ~]# tail /etc/group

例子:創(chuàng)建一個用戶kity,要求將其創(chuàng)建為系統(tǒng)用戶(無家目錄,uid<500,不能登錄系統(tǒng))
     useradd -r -s /sbin/nologin kity

例子:新建用戶2222并指定UID為600
    useradd -u 600 2222
    tail /etc/passwd
    lll:x:507:509::/home/lll:/bin/bash
    2222:x:600:600::/home/2222:/bin/bash

例子:新建用戶dog,要求其uid為660,主組為gp02,附加組為gp01,gp03,家目錄在/tmp/dog,指定shell類型為bin/bash
    useradd -u 660 -g gp02 -G gp01,gp03 -d /tmp/dog -s /bin/bash dog

groupadd命令
    作用:新建用戶組
    格式:groupadd [選項]組名
    選項:-g:指定用戶組的組id
    [root@localhost ~]# groupadd gp01 
    [root@localhost ~]# groupadd gp02
    [root@localhost ~]# groupadd gp03
    [root@localhost ~]# tail /etc/group
    gp01:x:506:
    gp02:x:507:
    gp03:x:508:

id命令

作用:顯示指定用戶的id信息
格式:id[選項]用戶名
選項:
     -u:顯示用戶的UID
     -g:顯示用戶的主組的ID
     -G:顯示用戶的全部租的ID列表

     id -g hhhhh 
     useradd 
    [root@localhost ~]# useradd -u 670 -g gp01 -Ggp02,gp03 hhhhh
    [root@localhost ~]# id hhhhh
    uid=670(hhhhh) gid=506(gp01) groups=506(gp01),507(gp02),508(gp03)
    [root@localhost ~]# id -G hhhhh
    506 507 508
    [root@localhost ~]# id -g hhhhh
    506
    [root@localhost ~]# id -u hhhhh
    670

passwd命令

作用:修改用戶的密碼(給用戶設置密碼)
格式:passwd[選項]用戶名
注意:
    1:passwd 用戶 修改指定用戶的密碼
    2:passwd 修改當前用戶的密碼
    3:默認情況只有root用戶,才能修改其他用戶的密碼,普通用戶只能修改自己的密碼
    選項:
    -l:鎖定用戶(只有root才能進行鎖定操作)
    -u:解鎖用戶
    --stdin:從表示輸出來讀取內容,為用戶設置密碼(shell腳本中使用)

影子文件 /etc/shadow

作用:保存密碼
root:$6$HhL6V5BM$f29xu.FUgGnQqNtmqLGAyOy/fLMlF/JepDTfgoaqvC4.b7wiVmMc7i3HRDMVNdYQACOK9d3.wsgbZi1hPAEoj/:17997:0:99999:7:::
第一個字段:login name :系統(tǒng)中存在的用戶名
第二個字段:encrypted password :這里存放的是加密后的密碼(單向加密)
        1:如果密碼段中出現!或*,那么就不能用此密碼登錄系統(tǒng)
        2:如果密碼段為空,則表示空密碼,但是系統(tǒng)往往禁止使用空密碼登錄
        3:如果密碼開頭是*,表示密碼被鎖定了

第三個字段:date of last password change:密碼上次修改的日期,這里所寫的是舉例
        1970-1-1所經過的天數。
        (1)如果該字段為0,會要求用戶在下次登錄的時候修改密碼
        (2)該文件不能為空
第四個字段:minimum password  age ,兩次修改密碼的最短時間
        1、為空或者為0,表示沒有最短時間限制

第五個字段:maximum password age:密碼的最長有效期
        1、如果字段為空或者99999,表示不限制最長有效期
        2、如果最長時間小于最短時間,則禁止該用戶修改密碼
第六個字段:password warning period
        指定在密碼到期前N天發(fā)送報警信息
        1、如果為0,表示不會自動發(fā)送報警信息
        2、在此期間內,用戶可以正常登陸系統(tǒng)
第七個字段:password inactivity period:密碼的非活動時間
        1、在此期間登陸系統(tǒng)的時候,必須先修改密碼才能登陸系統(tǒng)。
        2、如果在此階段仍然沒有修改密碼,那么就真的登陸不上了(找管理員處理)
第八個字段:account expiration date:用戶的過期日期
        1、表示方式也是用距離1970.1.1所經過的天數
        2、該字段為空,表示該字段永不過期
        3、0表示用戶被禁用

第九個字段:reserved field :尚未使用

注意:
密碼過期:修改密碼可以繼續(xù)使用
賬戶過期:賬戶再也不能登錄系統(tǒng)

/etc/passwd <<<用戶基本信息 ,useradd新建用戶,用戶的信息保存在這里
/etc/group  <<<用戶組信息,groupadd新建用戶組,用戶組的信息保存在這里。
/etc/shadow <<<用戶的密碼文件,passwd的時候,其實就是修改這個文件中的內容

userdel命令

作用:刪除用戶
    格式: userdel [options] 用戶名
    選項:
    -r :在刪除用戶的同時,刪除用戶的家目錄

chsh命令

作用:修改用戶的shell類型
格式:chsh[-s type]username
(本質上就是修改/etc/passwd中的內容)

chfn命令

作用:修改用戶的注釋信息

usermod命令

作用:修改用戶的基本信息(/etc/passwd)
格式:usermod [options]username
選項:
    -g GID:修改基本組
    -G GID: 修改附加組
    -u UID:修改uid值
    -C string:修改用戶的描述
    -d /path/dir:修改用戶的家目錄
    -s SHELL:修改用戶的shell類型
    -l newName:修改用戶的名稱
    -L 鎖定用戶
    -U 解鎖用戶

su命令

作用:切換用戶
格式:[options]用戶
選項
    -[l]:切換用戶,并且繼承用戶的環(huán)境變量
    -c 命令:在不切換用戶情況下,以指定用戶的身份來執(zhí)行命令

注意:

su切換用戶后返回,需要執(zhí)行命令exit

例子:以root身份執(zhí)行mkdir命令

$ su - -c "mkdir /abc1" root

生產環(huán)境的注意事項:

在生產環(huán)境中,如果員工離職,通常是禁用用戶,在短時間內是不會刪除用戶的,更不會刪除用戶的家目錄以及家目錄中的文件。

禁用用戶

修改shell類型/sbin/nologin
在密碼前加上!
設置賬戶的過期時間為0(密碼文件的第八段)

權限

r:讀  可以執(zhí)行cat、head、more、less等命令讀取文件中的內容,也可以用vi打開并讀取文件中的內容
w:寫  可以用vi或者重定向等操作文件中寫入內容或者修改其中的內容
x:執(zhí)行 可以執(zhí)行文件(把程序轉換成進程)

目錄的權限

r:可以執(zhí)行l(wèi)s命令來查看目錄下的文件有哪些
w:可以在目錄下執(zhí)行文件的創(chuàng)建和刪除等操作
x:可以執(zhí)行cd命令

用戶的角色有三類

屬主用戶(u)user
屬組用戶(g)group
其他用戶(o)other
全部用戶(a)all

文件的權限位一共有10位
第一位:表示文件的類型

-:一般文件
d:目錄
l:鏈接文件
s:套接字文件
第二到第四位:表示文件的屬主所具有的權限
第五到第七位:表示文件的屬組的組內用戶所具有的權限
第八到第十位,表示系統(tǒng)中的其他用戶所具有的權限
注意:
1、每一類用戶的權限的順序都是:讀權限、寫權限、執(zhí)行權限
2、如果用戶有對應的權限,就出現字符,如果沒有對應的權限就用-表示。

例子:[root@localhost tmp]# ls -l 1.txt 
       -rw-r--r-- 1 root bin 149 Apr 16 18:22 1.txt
文件的屬主權限:可讀可寫
文件的屬組用戶權限:只讀權限
其他用戶的權限:只讀權限

chown命令

作用:修改文件的屬主
格式:chown userName [-R]fileNAme
選項: -R 在修改目錄的時候,將目錄和目錄中的文件都一并修改
例子:將文件a.txt的屬主改為zhangsan
chown zhangsan a.txt

例子:將目錄yunwei和yunwei中的文件的屬主都修改為zhangsan
chown -R zhangsan yunwei

chgrp命令

作用:修改文件的屬組
例子:將文件a.txt的屬組改為tom
chgrp tom a.txt
例子:將文件a.txt的屬主改為zhangsan ,屬組改為tom
chown zhangsan.tom a.txt 
或者
chown zhangsan:tom a.txt
注意:
修改屬主或者屬組的時候,那個用戶名和組名是存在的,否則報錯。

chmod命令

作用:修改文件的權限
格式:chmod 權限  -R fileName
選項:-R 
方式:
    +:增價某項權限
    -:去除權限
    =:將權限修改為指定的類型(和原來的權限無關)

例子:修改文件a.txt的權限
去除屬主的寫權限
將屬組的權限設置為讀和寫
給其他用戶添加寫權限
chmod u-w,g=rw,0+w a.txt

例子:給全部用戶都添加上執(zhí)行權限
chmod ugo+x a.txt
或者
chmod a+x a.txt
或者
chmod +x a.txt

例子:去除其他用戶的全部權限
chmod o=  a.txt
chmod o-rwx a.txt

基于數字表示文件的權限

r:4
w:2
x:1
---   000   0
--x   001   1
-w-   010   2
-rx   011   3 
r--   100   4
r-w   101   5
rw-   110   6
rwx   111   7

例子:將文件a.txt的屬主改為可讀可寫,屬組改為可讀,其他用戶沒有任何權限

#chmod 640 a.txt

創(chuàng)建用戶的原理

和用戶相關的文件
1、/etc/passwd
2、/etc/shadow
3、/etc/group
4、/etc/skel                      <<<<用戶家目錄的模版
5、/etc/login.defs                <<<<控制新建用戶的默認屬性
6、/etc/defaults/useradd          <<<<控制新建用戶的默認屬性
7、/var/spool/mail/用戶名

新用戶的家目錄如果生成

1、將/etc/skel目錄復制home下,改名為和用戶名相同
2、將該目錄的屬主和屬組改為用戶名
3、將該目錄的權限設改為700
假設新建一個用戶laosun
#cp r /etc/skel /home/laosun
#chown -R laosun.laosun /home/laosun
#chmod -R 700 /home/laosun

MAIL_DIR    /var/spool/mail 指定新建用戶的郵件文件的默認位置
(默認郵件文件的名稱和用戶名相同)
PASS_MAX_DAYS   99999
新用戶的密碼最長有效期

PASS_MIN_DAYS   0
修改密碼最短間隔時間

PASS_MIN_LEN    5
普通用戶密碼的最短長度

PASS_WARN_AGE   7
密碼到期前警告時間

UID_MIN           500
新建普通用戶的默認UID最小值

UID_MAX         60000
新建普通用戶的默認UID最大值

GID_MIN           500
新建普通用戶的默認GID最小值

GID_MAX         60000
新建普通用戶的默認GID最大值

CREATE_HOME yes
是否默認創(chuàng)建用戶家目錄

UMASK           077
反向掩碼值(用來控制新建文件和目錄的默認權限值)

USERGROUPS_ENAB yes
當用戶組中沒有用戶了,是否刪除用戶組

ENCRYPT_METHOD SHA512
指定加密算法
SHA512
MD5

加密后的密碼由三部分構成

$6$qSBbNTqA$ESH1UDekytAKPw4olQNulWQv/uZxOJETUQOcB
$加密算法$隨機字符串$加密后的數據
說明:
加密算法:
 1、表示MD5加密
 6、SHA512加密

vim /etc/default/useradd 

# useradd defaults file
GROUP=100                
HOME=/home               <<<<<默認普通用戶的家目錄的位置
INACTIVE=-1              <<<<<設置新用戶賬號是否過期。-1表示不啟用
EXPIRE=                  <<<<<設置新建賬戶的過期日期,空白表示不啟用
SHELL=/bin/bash          <<<<<設置新建用戶的默認shell類型
SKEL=/etc/skel           <<<<<指定新建用戶的家目錄模版目錄
CREATE_MAIL_SPOOL=yes    <<<<<設置是否給新建的用戶創(chuàng)建用戶郵件

新建用戶

useradd
passwd

完成的操作

1、/etc/passwd 添加一行
2、/etc/shadow 添加一行
3、/etc/group  添加一行
4、創(chuàng)建用戶家目錄
5、創(chuàng)建用戶郵件文件

例子:創(chuàng)建用戶timi,要求uid 777,主組hadoop (800)

附加組 python (850) hbase(860) 家目錄 /home/timi
描述 i am timi
密碼設置為123 最少使用3天才能修改,最長使用30天,到期
前5天發(fā)送報警,非活動時間2天。

實現步驟:

1、創(chuàng)建用戶基本信息(/etc/passwd)
vim /etc/passwd
timi:x:777:800:i am timi:/home/timi:/bin/bash

2、檢查用戶
id timi
3、使用openssl來生成密碼
格式:openssl -1 --salt "string" 
說明:
    -1 表示md5加密算法
    --salt表示在加密的時候摻入雜志(提升安全性)
[root@localhost ~]# openssl passwd -1 -salt "abc123"
Password: 
$1$abc123$uE7.dLhrmG/qKHqAIlwPi.

4、修改密碼文件

timi:$1$abc123$uE7.dLhrmG/qKHqAIlwPi.:18005:3:30:5:2::

5、創(chuàng)建用戶組
    vim /etc/group

    hadoop:x:800:
    python:x:850:timi
    habse:x:860:timi

6、創(chuàng)建用戶家目錄
# cp -r /etc/skel /home/timi
# cd /home/
# chown -R timi.hadoop /home/timi/
# chmod -R --reference=*** timi   ***已經存在于/home中
    (把timi的權限參照改為***的權限)
7、創(chuàng)建用戶郵件
cd /var/spool/mail/
ls
touch timi
chmod 660 timi
chown timi.mail timi
8、測試用戶是否可以正常使用

補充: 
#useradd guizi
useradd 警告:此主目錄已經存在。
不從sekl目錄里向其中復制任何文件。   <<<<<1
正在創(chuàng)建信箱文件,文件已存在         <<<<<2
新建用戶出現這個錯誤信息,就表示
1、表示用戶的家目錄已經存在
2、表示用戶的郵件文件已經存在

網頁名稱:linux下用戶(user)和用戶組(group)命令-RH
鏈接地址:http://muchs.cn/article38/jcppsp.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站收錄、企業(yè)建站、手機網站建設、網站維護、軟件開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

微信小程序開發(fā)