用戶管理相關配置文件及命令

9月19日任務linux

2.27linux和windows互傳文件shell

3.1 用戶配置文件和密碼配置文件windows

3.2 用戶組管理centos

3.3 用戶管理安全

 

擴展知識

實用小工具

簡單命令行下實現Linux/Windows文件互傳bash

前提:使用遠程工具Xshell/SecureCRT登陸遠程Linux服務器(暫不支持putty)服務器

安裝:yum install -y lrzsz工具

使用:ui

  • rz:Windows內文件傳至Linux加密

        用法: rz + 回車鍵

rz傳遞的文件默認保存在Linux系統的當前目錄下,也能夠更改存放目錄

 

  • sz:Linux內文件傳至Windows

        用法: sz + File[s]+ Enter

        只能傳遞文件,沒法傳整個目錄

 

用戶配置文件 /etc/passwd

該文件每行表明一個用戶,每行由7個字段組成,用冒號分割

[root@localhost ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
.....

以第一列爲例:root:x:0:0:root:/root:/bin/bash

 

  1. 用戶名:表明用戶帳號的用戶名;本例中爲root

  2. 密碼:在之前存儲着該用戶的密碼,可是發現不安全,使用x佔位,真實密碼在/etc/shadow文件內(加密);本例中爲x

  3. uid:用戶標識號,取值範圍爲0-65535,對於6.x版本的普通用戶uid從500開始,7.x版本從1000開始, root用戶的uid爲0,0-499表示系統用戶;本例中爲0

  4. gid:組標識號;本例中爲0

  5. 註釋說明:對用戶進行說明,可選內容,使用chfn修改;本例中爲root

  6. 用戶家目錄:能夠在/etc/passwd內修改;本例中爲/root

  7. 用戶登陸shell:有sh、bash、zsh、csh、tcsh等,設置了/sbin/nologin的用戶不容許登陸;本例中爲/bin/bash

 

密碼配置文件 /etc/shadow

專門用來設置用戶祕密的文件,每一行對應與/etc/passwd的每一行的用戶的密碼信息; 一樣以冒號分割爲9個字段

[root@localhost ~]# head /etc/shadow
root:$6$uvD2N3N9$/lS24AXbOwnQWQcDwuZ0Fc2Dn2UJFTS99rW2Nz08M46ZrJ8hs7QaGUNtANSnvWYucY8HVSkN/2CH4S4MoSctK.:17408:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
shutdown:*:15980:0:99999:7:::
halt:*:15980:0:99999:7:::
mail:*:15980:0:99999:7:::
uucp:*:15980:0:99999:7:::
...

可使用man shadow查看/etc/shadow文件內容具體含義

具體每列含義以下:

  1. 用戶名:對應/etc/passwd文件的用戶名

  2. 密碼:真實密碼(已加密,沒法從該加密的字符串獲取真實密碼),*表示無密碼

  3. 上次更改密碼的時間:自1970.1.1以來的天數

  4. 過多少天后才能夠修改密碼:默認爲0,表示不受限

  5. 密碼多少天后到期,必須修改:默認99999,表示不需修改

  6. 密碼到期前的警告天數:默認爲7,到期前7天警告

  7. 帳戶失效期限:密碼到期後n天,帳戶失效

  8. 帳戶的生命週期:表明帳戶在該日期前可使用,到期後帳戶被做廢(自1971.1.1以來的天數)

  9. 保留使用

系統會自動將/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow文件進行備份,

若是誤操做,能夠將對於的如passwd-文件拷貝後恢復。須要注意的是2個文件可能存在部分差異,但關係不大。

 

用戶組管理

普通用戶默認的uid/gid從1000開始(centos6.x從500開始)

[root@localhost ~]# groupadd castiel
[root@localhost ~]# tail -n 1 /etc/group
castiel:x:1000:

建立組

用法:groupadd [-g gid] group

[root@localhost ~]# groupadd -g 1024 test
[root@localhost ~]# tail -n 1 /etc/group
test:x:1024:

# 不指定gid,默認從以前最大的gid後一個開始;
# 若是未設置或普通組,會從1000開始計數
[root@localhost ~]# tail -n 1 /etc/group
test1:x:1025:

刪除組

用法:groupdel group (刪除組的前提:組內無用戶)

[root@localhost ~]# groupdel test1
[root@localhost ~]# tail -n 1 /etc/group
test:x:1024:
以前最後一個顯示的test1組已經刪除

用戶管理

新增用戶 useradd

幾個經常使用參數

  • -u 指定新增用戶的uid或用戶名;默認1000或在最大uid基礎上+1;

  • -g 指定新增用戶的gid或組名(必須是已存在的組);默認等於uid值,若是該值已被使用,就在該值上自增1,不然不會自增長;

  • -d 指定新增用戶的家目錄;默認/home/USER;

  • -M 表示新增用戶時不建立同名家目錄;

  • -s 指定其登陸使用的shell;默認/bin/bash;

  • -p 建立新用戶的同時指定密碼;默認無密碼;

  • -r 建立系統用戶(不加默認建立普通用戶);

  • -e 設置帳戶到期日期,格式YYYY-MM-DD;默認永不到期;

  • -f 帳戶到期至其失效的天數;默認爲7;

  • -G 指定擴展組(一個用戶有多個所屬組);默認不加入任何擴展組;

使用useradd新建用戶,參數能夠隨意搭配,不指定即爲默認值

# 注意指定-g的時候,該gid的組必須存在,不然會出錯
# 不指定-g參數時,默認會建立同名的組,
# gid的值從最大的gid後按順序使用;
# 默認的uid的值也一樣按順序選擇
[root@localhost ~]# groupadd -g 1080 test

# 一次性指定uid、gid、家目錄、shell、密碼、
# 到期日期、到期後失效天數
[root@localhost ~]# useradd -u 1024 \
> -g 1080 \
> -d /home/test \
> -s /bin/chsh \
> -p 123456 \
> -e 2017-10-25 \
> -f 2 \
> -G castiel test

[root@localhost ~]# tail -n1 /etc/passwd
test:x:1024:1080::/home/test:/bin/chsh

# 使用-p指定的密碼,在/etc/shadow內是明文顯示的,不太安全!!
# 但適合在腳本內建立用戶!
[root@localhost ~]# tail -n1 /etc/shadow
test:123456:17460:0:99999:7:2:17464:
# 17464即2017-10-25

# -G 將test組加到了castiel用戶的擴展組內
[root@localhost ~]# tail -n 2 /etc/group
castiel:x:1000:test
test1:x:1080:

刪除用戶 userdel

  • -r 參數 刪除用戶的同時刪除其家目錄(包括其內的文件)

  • 不加-r參數 用戶的家目錄及email文件不會被刪除(未徹底刪除用戶)

等效於-r參數的操做:執行userdel命令後手動刪除用戶家目錄和/var/spool/mail/USER目錄

# 建立2個普通用戶,會同時建立同名組、家目錄以及email文件
[root@localhost ~]# useradd test1
[root@localhost ~]# useradd test2

# 以加不加參數做爲對照
[root@localhost ~]# userdel test1
[root@localhost ~]# userdel -r test2

# /etc/passwd和/etc/shadow文件內的信息已刪除
[root@localhost ~]# tail -n 2 /etc/passwd /etc/shadow
==> /etc/passwd <==
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
castiel:x:1000:1000::/home/castiel:/bin/bash

==> /etc/shadow <==
chrony:!!:17456::::::
castiel:!!:17460:0:99999:7:::

# test2用戶的家目錄以及mail文件已刪除,test1還在(刪除不完全)
[root@localhost ~]# ls -ld /home/test1 /home/test2 /var/spool/mail/test1 /var/spool/mail/test2
ls: 沒法訪問/home/test2: 沒有那個文件或目錄
ls: 沒法訪問/var/mail/test2: 沒有那個文件或目錄
drwx------. 2 1001 1001 62 ... /home/test1
-rw-rw----. 1 1001 mail  0 ... /var/mail/test1

關於用戶建立時的mail文件,它實際上會建立2個文件:/var/spool/mail/USER和/var/mail/USER,

這2個文件互爲硬鏈接

[root@localhost ~]# ls -li /var/spool/mail/test1  /var/mail/test1
17061940 -rw-rw----. 1 1001 mail 0 ... /var/mail/test1
17061940 -rw-rw----. 1 1001 mail 0 ... /var/spool/mail/test1

手動刪除用戶步驟:

刪除/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow文件中的用戶信息

刪除用戶家目錄

刪除用戶郵件文件/var/spool/mail/USER或/var/mail/USER

 

usermod命令

更改用戶屬性

經常使用參數

  • -g 修改用戶gid或組名(組需存在)

  • -u 修改uid或用戶名

  • -G 設置用戶還屬於的擴展組

        對於-G參數須要注意的是後接的擴展組只有一個組時,再次使用相同方法想添加擴展組會不行的,它將覆蓋原擴展組!

        同時建立多個擴展組的方法是將多個組用逗號鏈接一塊兒設置!!

  • -s 修改shell

  • -d 修改家目錄

  • -e 修改過時日期

  • -f 修改帳戶到期至其失效的天數

  • -L 鎖定用戶,不讓其登陸

  • -U 解鎖因-L鎖定的用戶

用戶密碼管理

用法:passwd USER(不加USER,修改當前用戶的密碼;/etc/passwd文件有set_uid位,使得普通用戶也能夠修改本身的密碼)

對於/etc/shadow文件的第二個密碼字段

  • !! 沒有密碼,沒法登陸

  • * 密碼被鎖定,沒法使用、登陸

  • 一串字符串,表示用戶有密碼但 加密

        凡有!!或*,代表帳戶沒法登陸

 

經常使用用法

鎖定密碼: passwd -l USER

執行該命令後有密碼的用戶會在其/etc/shadow文件的密碼字段(加密的字符串)前加上!!;

解鎖密碼:passwd -u USER

--stdin,密碼只須要輸入一次:passwd --stdin USER

關於密碼的幾個建議

  • 長度大於10個字符

  • 包含大小寫、數字和特殊字符

  • 不規則性(不要全字母或數字)

  • 不要包含本身的生日、姓名等易被獲取的信息

  • 不要多個帳戶共用一個密碼

 

mkpasswd命令

使用命令來建立密碼

安裝: yum install expect

使用方法

-l num 建立的密碼長度

-d num 建立的密碼中數字的個數

-s num 建立的密碼中特殊字符的個數

-C num 建立的密碼中大寫數字的個數

-c num 建立的密碼中小寫數字的個數

不加參數,默認建立的密碼長度爲9位,包含大小寫字母、數字和特殊字符!

[root@centos7 ~]# mkpasswd
nf72HG?ra
[root@centos7 ~]# mkpasswd -l 12 -c 3 -C 5 -s 2
W$]46NkcADfX
相關文章
相關標籤/搜索