1. 程式人生 > >用戶管理上

用戶管理上

產生原因 用戶限制 auth pda 家庭 隱藏文件 cas pool 統一

第1章 查看ip的其他方法 ip

1.1 ip address == ip a

查看所有的網卡信息。

[[email protected] ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:a8:e4:14 brd ff:ff:ff:ff:ff:ff

inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0

inet6 fe80::20c:29ff:fea8:e414/64 scope link

valid_lft forever preferred_lft forever

1.2 ip address show eth0 == ip a s eth0

查看第一塊網卡的信息。

[[email protected] ~]# ip a s eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:a8:e4:14 brd ff:ff:ff:ff:ff:ff

inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0

inet6 fe80::20c:29ff:fea8:e414/64 scope link

valid_lft forever preferred_lft forever

1.3 ip route == ip r

查看網關。

[[email protected] ~]# ip r

10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.201

169.254.0.0/16 dev eth0 scope link metric 1002

default via 10.0.0.2 dev eth0

第2章 vi/vim常見的錯誤

2.1 swap file exist 錯誤

2.1.1 產生原因

在編輯文件的時候突然退出/斷網/斷電,不正常的退出了系統。

2.1.2 錯誤信息

Found a swap file by the name ".1.swp"

……

Swap file ".1.swp" already exists!

[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

2.1.3 解決辦法

(E)dit anyway 繼續編輯無視這個錯誤

(R)ecover 把剛才沒有保存的內容先回復 繼續編輯

(D)elete it 刪除這個臨時文件

2.1.4 6.x之前版本解決辦法

".1.swp" 找到與編輯的問文件,同名的 .swp 的隱藏文件。

第3章 用戶管理

3.1 用戶的分類

類型 UID

root 0

虛擬用戶 1-499

虛擬用戶時為了滿足系統中每個服務/進程在運行的時候都要有一個用戶和家庭。

普通用戶 500+

3.1.1 兩種常用的shell

/bin/bash 普通用戶默認的命令解釋器

/sbin/nologin 傀儡用戶虛擬用戶使用

3.2 與用戶有關的配置文件

[[email protected] ~]# ll /etc/passwd /etc/shadow /etc/group /etc/gshadow

-rw-r--r-- 1 root root 648 Sep 12 12:05 /etc/group 用戶組信息

---------- 1 root root 529 Sep 12 12:05 /etc/gshadow 用戶組密碼

-rw-r--r-- 1 root root 1271 Sep 12 12:05 /etc/passwd 用戶信息

---------- 1 root root 936 Sep 12 12:09 /etc/shadow 用戶密碼

3.2.1 /etc/passwd 文件詳解

[[email protected] ~]# head -1 /etc/passwd

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

用戶名:原來存放密碼的位置:UID:GID:說明信息:家目錄:shell(命令解釋器)

第4章 與用戶有關的目錄

4.1.1 /etc/skel

/etc/skel目錄是在linux下面添加一個新用戶使用的用戶老家的模板。

4.1.2 創建一個新的用戶過程

新用戶家目錄中的三個隱藏文件,與/etc.skel中的相同。

[[email protected] skel]# useradd alex888

[[email protected] skel]# su - alex888

[[email protected] ~]$ ll -a

total 20

drwx------ 2 alex888 alex888 4096 Sep 12 10:18 .

drwxr-xr-x. 6 root root 4096 Sep 12 10:18 ..

-rw-r--r-- 1 alex888 alex888 18 Mar 23 08:15 .bash_logout

-rw-r--r-- 1 alex888 alex888 176 Mar 23 08:15 .bash_profile

-rw-r--r-- 1 alex888 alex888 124 Mar 23 08:15 .bashrc

4.1.3 /etc/skel 目錄下文件詳解

[[email protected] skel]# ll -a /etc/skel/

total 20

drwxr-xr-x. 2 root root 4096 Aug 10 18:34 .

drwxr-xr-x. 78 root root 4096 Sep 12 10:18 ..

-rw-r--r--. 1 root root 18 Mar 23 08:15 .bash_logout

-rw-r--r--. 1 root root 176 Mar 23 08:15 .bash_profile

-rw-r--r--. 1 root root 124 Mar 23 08:15 .bashrc

.bash_logout 用戶登出的時候運行這個文件裏的內容

.bash_profile 環境變量

.bashrc 存放用戶的別名數

4.2 -bash-4.1$ 錯誤的解決辦法

4.2.1 產生的原因

因為用戶家目錄裏面的與環境變量相關的文件被刪除

.bash_profile

.bashrc

4.2.2 解決辦法

第一步 切換到這個用戶

[[email protected] skel]# su - alex888

bash-4.1$

第二步 /etc/skel下的文件復制過來 ( .bash* 隱藏文件)

註意:復制隱藏文件的是時候使用 .bash*

-bash-4.1$ cp /etc/skel/.bash* ~

-bash-4.1$ ll -a

total 24

drwx------ 2 alex888 alex888 4096 Sep 12 10:27 .

drwxr-xr-x. 6 root root 4096 Sep 12 10:18 ..

-rw------- 1 alex888 alex888 23 Sep 12 10:25 .bash_history

-rw-r--r-- 1 alex888 alex888 18 Sep 12 10:27 .bash_logout

-rw-r--r-- 1 alex888 alex888 176 Sep 12 10:27 .bash_profile

-rw-r--r-- 1 alex888 alex888 124 Sep 12 10:27 .bashrc

第三步 退出重新連接即可

-bash-4.1$ logout

[[email protected] skel]# su - alex888

[[email protected] ~]$

4.3 .* 極度危險

.* 查找的時候匹配 ..

.. 為上級目錄

操作文件的時候盡量的精確 .bash*

第5章 用戶相關的命令

5.1 添加用戶 useradd

5.1.1 useradd adduser

[[email protected] home]# ls -l `which useradd adduser`

lrwxrwxrwx. 1 root root 7 Aug 10 18:36 /usr/sbin/adduser -> useradd

-rwxr-x---. 1 root root 111320 May 11 2016 /usr/sbin/useradd

5.1.2 useradd參數說明

-c 添加說明信息

-u 指定用戶的uid

-s 添加用戶的時候指定命令解釋器 默認/bin/bash /sbin/nologin

-M 不創建家目錄

-g 添加用戶的時候 默認會創建一個與用戶名一樣的家庭

5.1.3 添加用戶 指定uid666 禁止用戶登錄系統 不創建家目錄

[[email protected] ~]# useradd znix -u 666 -M -s /sbin/nologin

[[email protected] ~]# grep znix /etc/passwd

znix:x:666:666::/home/znix:/sbin/nologin

[[email protected] ~]# id znix

uid=666(znix) gid=666(znix) groups=666(znix)

5.1.4 /etc/login.defs 控制用戶的默認信息

/etc/login.defs文件定義了與/etc/password/etc/shadow配套的用戶限制設定。這個文件是需要的,缺失並不會影響系統的使用,但是也許會產生意想不到的錯誤。

如果/etc/shadow文件裏有相同的選項,則以/etc/shadow裏的設置為準,也就是說/etc/shadow的配置優先級高於/etc/login.defs

5.1.5 添加用戶時的的基本信息(默認信息)

[[email protected] ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

5.2 刪除用戶userdel

5.2.1 方法一 註釋/etc/passwd

/etc/passwd裏面,在這個用戶行的前面加上# 將這一行註釋就可以。

盡量不要使用userdel去刪除用戶,可能會發生意料之外的錯誤。

5.2.2 刪除用戶時常見的錯誤信息

[[email protected] ~]# userdel alex888

userdel: user alex888 is currently used by process 23823

提示: 用戶被23823進程使用中

第一步 檢查進程

[[email protected] ~]# ps -ef |grep 23864

alex888 23864 23863 0 11:39 pts/1 00:00:00 -bash

root 23885 23718 0 11:39 pts/0 00:00:00 grep --color=auto 23864

第二步 強制結束進程 kill -9

[[email protected] ~]# kill -9 23864

第三步 檢查是否還有這個進程

[[email protected] ~]# ps -ef |grep 23864

root 23923 23904 0 11:45 pts/1 00:00:00 grep --color=auto 23864

#另一個在登陸的窗口提示信息

[[email protected] ~]$ Killed

[[email protected] ~]#

第四步 刪除用戶 ,沒有占用的進程後,刪除用戶不再報錯。

[[email protected] ~]# userdel alex888

5.2.3 常見參數

userdel 默認不刪除家目錄和郵箱

-r 刪除與用戶有關的所有文件

#########盡量不要使用userdel來刪除一個用戶

5.3 修改用戶的信息 usermod

5.3.1 查看用戶的信息

[[email protected] ~]# grep znix /etc/passwd

znix:x:666:666:znix super:/home/znix:/sbin/nologin

5.3.2 為用戶增加說明信息

[[email protected] ~]# usermod -c "Super User" znix

[[email protected] ~]# grep znix /etc/passwd

znix:x:666:666:Super User:/home/znix:/sbin/nologin

5.3.3 讓用戶屬於新的家庭

[[email protected] ~]# id znix

uid=666(znix) gid=666(znix) groups=666(znix)

[[email protected] ~]# usermod -g root znix

[[email protected] ~]# id znix

uid=666(znix) gid=0(root) groups=0(root)

5.3.4 用戶屬於多個家庭(附加組)

[[email protected] ~]# id znix

uid=666(znix) gid=666(znix) groups=666(znix)

[[email protected] ~]# usermod -G root,oldboy znix

[[email protected] ~]# id znix

uid=666(znix) gid=666(znix) groups=666(znix),0(root),500(oldboy)

5.3.5 usermod常用參數

-c 修改說明信息

-s 修改用戶的命令解釋器

-g 讓用戶屬於新的家庭

-G 用戶屬於多個家庭(附加組)

5.4 passwd 修改用戶密碼

5.4.1 交互式修改

[[email protected] ~]# passwd znix

Changing password for user znix.

New password:

BAD PASSWORD: it is too simplistic/systematic

BAD PASSWORD: is too simple

#提示密碼的強度太弱。

Retype new password:

passwd: all authentication tokens updated successfully.

交互式輸入密碼要輸入兩次密碼。

一次只能修改一個用戶的密碼

5.4.2 非交互式設置密碼 --stdin

[[email protected] ~]# echo 123456 |passwd --stdin oldboy

Changing password for user oldboy.

passwd: all authentication tokens updated successfully.

5.5 密碼管理軟件

keeppass

把密碼記錄到硬盤中(本地管理)

lastpass

在線軟件,把密碼存放的別人家(雲端管理)

AD統一管理

動態密碼

5.6 讓系統更加安全

5.6.1 方法

查看日誌 /var/log/secure 查找failed 進行分析

chattr +i +a 給主要文件加上文件系統權限

指紋加密

5.6.2 指紋加密 md5sum 命令

只要文件的內容變量,加密信息就變化

第一步 給一個文件創建指紋

[[email protected] ~]# md5sum oldboy.txt

058c5119928950d06f48d901a101511a oldboy.txt

第二步 進指紋放到一個文件中

[[email protected] ~]# md5sum oldboy.txt > list.txt

第三步 可以對文件進行校驗 正確顯示 OK 不一致顯示Failed

[[email protected] ~]# md5sum -c list.txt

oldboy.txt: OK

[[email protected] ~]# > oldboy.txt

[[email protected] ~]# md5sum -c list.txt

oldboy.txt: FAILED

md5sum: WARNING: 1 of 1 computed checksum did NOT match

由於文件中保存的式相對路徑,所以指紋文件要和目標文件在同一個文件內。

5.7 【企業面試題】

5.7.1 批量添加3個用戶stu01,stu02,stu03,並設置123456(禁止使用for,while等循環)

[[email protected] ~]# echo stu{01..3}|xargs -n1 -exec useradd

添加密碼

[[email protected] ~]# echo 123456 |passwd --stdin stu01 stu02 stu03

用戶管理上