用戶相關命令
useradd
-u uid
制定用戶的uid(數字 身份證號碼)
-s 指定用戶使用的shell
/bin/bash 默認
/sbin/nologin 手動添加一個傀儡用戶 虛擬用戶
-M標示不創建家目錄一般創建虛擬用戶使用
-g 指定 用戶屬於的組(組的名字)添加用戶的時候 默認創建一個與用戶名一樣的家庭
添加一個用戶lidao666指定uid為888禁止用戶登陸系統 不創建家目錄
添加一個uid是888的虛擬用戶alex999
userdel
刪除用戶
把這個用戶/etc/passwd中注釋
userdel默認不刪除用戶的家目錄和郵箱
-r 連窩端刪除與用戶有關的所有信息(家目錄)
ussermod
修改用戶的信息(這個用戶已經存在了)
-s 修改用戶使用的shell
-g 屬於的家庭 用戶組名字
主要組
-G屬於多個家庭
附加組
passwd
--stdin 從管道中獲取用戶的密碼(非交互式設置密碼)
企業場景:用戶及密碼管理
□密碼要復雜12位以上字母數字特殊符號
保存密碼:
keepass
(軟件,密碼存放在本地,本地保險櫃)
lastpass
(在線版本,銀行的保險櫃)
大的企業用戶和密碼統一管理(相當於活動目錄(ad),openldap域)
動態密碼:動態口令,第三方提供自己開發也很簡單
企業面試題
批量添加10個用戶stu01,stu02……stu10,並設置8位隨機密碼(禁止使用for,while等循環)
chown
修改文件或目錄所有者和屬於的用戶組
-R 遞歸修改文件或目錄的所有者和用戶組
chown oldboy oldboy.txt #只修改了文件的所有者
chown oldboy.oldboy oldboy.txt #修改了文件的所有者和屬於的組
chmod
【功能說明】:修改文件目錄的權限
【語法格式】:chmod [數字或參數] [文件路徑]
【選項參數】:
參數 |
參數說明 |
其他說明 |
+ |
表示增加權限 |
|
= |
表示唯一設定權限 |
|
- |
表示取消權限 |
|
u |
在這里改的前三位 |
|
g |
在這里改的中三位 |
|
o |
在這里該改的后三位 |
|
a |
所有 |
|
例子:
chmod u=w /oldboy/test.sh
chmod 755 test.sh”。755表示“創建者擁有讀寫可執行權限、同一組用戶以及其他用戶擁有讀和執行權限”。
第1章 Linux用戶分類
用戶分類
UID
user ID 身份證號碼
GID
group ID 用戶組ID
root皇帝 UID:0
虛擬用戶 傀儡 UID:1-499(c6) /999(c7)
用戶的命令解釋器/sbin/nologin
每個程序、服務運行的時候都需要一個用戶
傀儡用戶不需要用來登陸系統
普通用戶 UID 500(c6)+1000(c7)
第2章 Linux用戶
2.1 Linux啟動流程
CentOS 6 VS CentOS 7
串行 並行
Contos6:
第一步按下電源→開機自檢→MBR引導→GRUB菜單→加載內核→運行INIT(第一個啟動的進程)→讀取/etc/inittab →讀取/etc/rc數字.sysinit(開機自啟動)→啟動mingetty顯示界面
2.2 #process 進程
ps -ef 查看系統進程
2.3 用戶與用戶組關系
這個人屬於哪個(或者多少個)家庭
2.4 命令解釋器 shell
echo houstname通過管道給bash 替你運行!
這叫命令解釋器
/bin/bash 系統默認的命令解釋器
/sbin/nologin 虛擬用戶的命令解釋器
nologin不能登陸的login (虛擬用戶)
統計系統中 虛擬用戶數量
/sbin/nologin 文件中一個( nologin ) 代表虛擬用戶
如和計算?
一兩種種方法不算方法,
Cat?grep,sed,awk
grep '/sbin/nologin' /etc/passwd|wc -l wc -l小寫(統計文件中單詞數量顯示結果)
grep -c '/sbin/nologin' /etc/passwd
-c 統計包含 xxxx的有多少行 行數 count(計數)
awk '/nologin/{i++}END{print i}' /etc/passwd
find 查找文件名或目錄
-maxdepth 最大深度
-type 類型
-name 名字
-iname 不區分大小寫
-size 大小
-mtime 時間
/etc/passwd內的每一列的含義
2.5 /etc/group用戶,用戶組信息
2.6 /etc/shadow 密碼密碼信息
2.7 與用戶有關目錄
2.7.1 /etc/skel 新用戶的家目錄的模板 (內有隱藏文件)
2.8 useradd 添加用戶
1# 創建家目錄 /home/oldfei
2# 把 /etc/skel 下面的所有內容 復制到 家目錄
3# 修改家目錄權限和所有者
ll -a /etc/skel/
total 24 (總數)
.bash_logout #用戶退出系統的時候#執行里面的命令
/etc/rc.d/rc.local #用戶開機時運行里面的內容
.bash_profile #/etc/profile 環境變量 別名
.bashrc #/etc/bashrc 別名
2.9 准備故障:
2.9.1 檢查環境
grep PS1 /etc/profile
#export PS1='[\u@\h \w]\$ '
2.9.2 添加用戶
[root@oldboyedu-lnb ~]# useradd alex
[root@oldboyedu-lnb ~]# su - alex
[alex@oldboyedu-lnb ~]$ \rm -fr /*
刪根
2.9.3 退出用戶 重新登陸
-bash-4.2$
版本
-bash-4.1$ 代表cenos6
-bash-4.2$ 代表cenos7
2.9.4 原因
用戶家目錄 環境變量文件 沒了
2.9.5 解決
-bash-4.2$ ##方法1./etc/skel
-bash-4.2$ cp /etc/skel/.bash* ~ 復制
重新登陸 恢復
-bash-4.2$ logout
切換用戶:su - alex
Last login: Fri Nov 16 11:18:54 CST 2018 on pts/0(顯示登陸信息)
[alex@oldboyedu-lnb ~]$ (已登陸環境)
第3章 語法格式
3.1 添加一個UID是888的虛擬用戶
useradd -u 888 -M -s /sbin/nologin lg
指定UID為888+-u,不創建家目錄是大M,指定用戶使用的shell虛擬用戶 ,加上用戶名lg
顯示用戶的信息叫id 亮哥 (id + 用戶名)
[root@oldboyedu-lnb ~]# usermod -g alex alex
[root@oldboyedu-lnb ~]# id alex
uid=1003(alex) gid=1006(alex) groups=1006(alex)
#-G 讓用戶屬於多個組↓
[root@oldboyedu-lnb ~]# usermod -G root,oldboy,lidao666 alex
[root@oldboyedu-lnb ~]# id alex
uid=1003(alex) gid=1006(alex) groups=1006(alex),0(root),1000(oldboy),1007(lidao666)
清空之前設置的屬組↓
[root@oldboyedu-lnb ~]# usermod -G '' alex
[root@oldboyedu-lnb ~]# id alex
uid=1003(alex) gid=1006(alex) groups=1006(alex)
passwd 更改密碼
stdin (standard input 標准輸入 ) 從管道獲取密碼
echo 123456 |passwd --stdin alex 結果如↓
Changing password for user alex. 更改用戶密碼
passwd: all authentication tokens updated successfully. 成功更新所有身份認證令牌
記錄密碼:
盡量復雜一點
history 查看歷史命令
history -c 刪除歷史命令
第4章 用戶管理
用戶相關命令
4.1 useradd 增加用戶
-u uid 指定用戶的uid(數字 身份證號碼)
-s 指定用戶使用的shell
/bin/bash 默認
/sbin/nologin 手動添加一個傀儡用戶 虛擬用戶
-M標示不創建家目錄一般創建虛擬用戶使用
-g 指定 用戶屬於的組(組的名字)添加用戶的時候 默認創建一個與用戶名一樣的家庭
添加一個用戶lidao666指定uid為888禁止用戶登陸系統 不創建家目錄
添加一個uid是888的虛擬用戶alex999
4.2 userdel 刪除用戶
userdel默認不刪除用戶的家目錄和郵箱
-r 連窩端刪除與用戶有關的所有信息(家目錄)
在/etc/passwd中注釋掉更安全方便點
4.3 usermod 修改用戶
修改用戶的信息(這個用戶已經存在)
-s 修改用戶使用的shell
-g 屬於的家庭 用戶組名字
主要組
-G屬於多個家庭
附加組
4.4 passwd 更改密碼
--stdin 從管道中獲取用戶的密碼(非交互式設置密碼)
企業場景:用戶及密碼管理
□密碼要復雜12位以上字母數字特殊符號
保存密碼:
4.4.1 keepass 密碼管理器
(軟件,密碼存放在本地,本地保險櫃)
4.4.2 lastpass
在線版本,銀行的保險櫃)
大的企業用戶和密碼統一管理(相當於活動目錄(ad),openldap域)
動態密碼:動態口令,第三方提供自己開發也很簡單
企業面試題
批量添加10個用戶stu01,stu02……stu10,並設置8位隨機密碼(禁止使用for,while等循環)
第5章 用戶組
5.1 chown 修改文件或目錄所有者和屬於的用戶組
-R 遞歸修改文件或目錄的所有者和用戶組
chown oldboy oldboy.txt #只修改了文件的所有者
chown oldboy.oldboy oldboy.txt #修改了文件的所有者和屬於的組
用戶相關組
5.2 groupadd 創建用戶組
-g指定用戶組的gid數字
添加一個虛擬用戶用戶 mysql 指定用戶的uid gid都是999
5.3 用戶查詢命令
id 查看用戶的信息
一個用戶是否存在
查詢用戶的uid gid
屬於哪個用戶組
w 顯示系統中已經遠程登陸的用戶 干啥
https://www.processon.com/view/link/59ffcfe6e4b06bed41ccb8d6
last 哪個用戶在什么時候 從哪里 遠程登陸你的系統 用戶登陸的信息
lastlog 顯示linux中所有用戶最近一次遠程登陸的信息
第6章 權限體系
6.1 Linux權限體系 rwx 讀寫執行 permission 權限denied 拒絕
6.2 chown 用戶管理命令更改文件的屬主,屬組,原有的主,組改為另一個指定的用戶或組
參數 -R 遞歸更改該目錄下所有文件
6.3 chown oldboy . oldboy ld.txt
使這個文件的屬主屬組更改為oldboy
6.4 #添加一個虛擬用戶 mysql 指定用戶的uid gid都是999
useradd -u 999 -g 999 -s /sbin/nologin -M mysql (mysql=用戶名)
-s -M 不創建家目錄
id mysql 查看這個用戶
uid=999(mysql) gid=999(mysql) groups=999 (mysql)
-g 指定用戶組名字 或者指定一個已經存在的用戶組的gid
groupadd -g 996 lidao996
創建組,-g指定用戶組名 用戶名
useradd -u 996 -g lidao996 -s /sbin/nologin -M lidao996
添加用戶 -u -g -s -M
第7章 如何讓系統變得更安全
7.1 連接到任何服務器需要做:
1.ip地址
2.端口 sshd 22 (52113)
3.用戶名 root #禁止root用戶遠程登錄
4.密碼
5.登陸情況放在這個日志里面: /var/log/secure Failed password
7.2 創建指紋
72.1 直接創建
md5sum /oldboy/oldboy.txt >/oldboy/l/123.txt
把oldboy.txt做一個指紋到這個指紋數據庫
7.2.2 把一個目錄下的文件全部過濾到指紋數據庫備份
找出/oldboy下面 文件 並制作指紋信息 存放在/oldboy/l/123.txt
find /oldboy/ -type f |xargs md5sum >/oldboy/l/123.txt
在這 /oldboy/l/123.txt 即指紋數據庫
7.2.3 自動比對
命令+參數+指紋文件庫 自動對比
這樣更容易做比較
md5sum -c /oldboy/l/123.txt |column -t 對齊的參數
7.2.4 被動和沒被動的區別
/oldboy/l/123.txt: FAILED 被動了
/oldboy/l/1: OK 沒被動
/oldboy/pipeima.md5: OK
/oldboy/oldboy.txt: OK
第8章 給予用戶權限
8.1 visudo ==== vi /etc/sudoers
visudo 自帶檢查功能
8.2 sudo 給普通用戶臨時成為root 提供機會 普通用戶可以臨時以root身份運行某個命令
查看自己的權限: sudo -l
8.3 Root用戶編輯 visudo 進入授權模式
8.3.1 如何進行授權
給oldboy用戶 授權兩個命令 ls touch
#oldboy ALL=(ALL) /bin/ls, /bin/touch
$1是給哪個用戶權限,$2是全部的意思,$3是把這個命令的絕對路徑加上
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
用戶oldboy可以在oldboyedu-lnb上運行以下命令: (ALL) /bin/ls, /bin/touch
如果沒有權限的用戶被授予權限使用命令前不加sudo則無效,權限被拒絕
8.3.2 sudo -l #查看自己有的sudo權限
sudo ls /root
8.3.3 給oldboy用戶授予權限/bin 下所有命令
oldboy ALL=(ALL) /bin/* 不安全怎么辦?
8.3.4 給oldboy用戶授予權限/bin 下所有命令 排除某個命令或參數
[root@oldboy ~]# grep oldboy /etc/sudoers
oldboy ALL=(ALL) /bin/*, !/bin/su
排除su 切換用戶命令
#需要什么 給什么命令 這樣安全
8.4 運維人員自己用 全部用戶並且不需要輸入當前用戶密碼
[root@oldboyedu-lnb ~]# grep oldboy /etc/sudoers
oldboy ALL=(ALL) ALL
[root@oldboyedu-lnb ~]# grep oldboy /etc/sudoers
oldboy ALL=(ALL) NOPASSWD: ALL
用戶 可以在所有服務器使用sudo=(你可以成為誰) 命令