系統(tǒng)常見權(quán)限信息:
r(4) 讀權(quán)限:
· 文件信息: 內(nèi)容信息可以讀取
· 目錄信息: 查看目錄數(shù)據(jù)信息
w(2) 寫權(quán)限
· 文件信息: 內(nèi)容信息可以編輯
· 目錄信息: 操作目錄數(shù)據(jù)信息(刪除數(shù)據(jù)/創(chuàng)建數(shù)據(jù)/移動(dòng)數(shù)據(jù)/修改數(shù)據(jù)名稱)
x(1) 執(zhí)行權(quán)限:
· 文件信息: 文件可以進(jìn)行執(zhí)行 /etc/rc.local
· 目錄信息: 目錄可以進(jìn)行切換
系統(tǒng)權(quán)限分配方式:
rwx 第一組權(quán)限: 分配給屬主用戶
rw- 第二組權(quán)限: 分配給屬組用戶
r-- 第三組權(quán)限: 分配給其他用戶
PS: 系統(tǒng)常用權(quán)限位: 9位權(quán)限位 實(shí)際是為12位 (面試)
系統(tǒng)權(quán)限配置方法:
rwx- 000~777 001 002 003


系統(tǒng)權(quán)限詳細(xì)說明:
文件權(quán)限總結(jié):
- 文件如果想正常編寫, 必須要有讀權(quán)限
- 文件如果想正常執(zhí)行, 必須要有讀權(quán)限
- 文件如果擁有執(zhí)行權(quán)限, 管理員用戶擁有文件絕對(duì)權(quán)限
總結(jié): 對(duì)于文件來(lái)說, 讀取權(quán)限是最重要, 可以讓寫和執(zhí)行權(quán)限有意義
目錄權(quán)限總結(jié):
- 目錄如何想正常查看, 必須要有執(zhí)行權(quán)限
- 目錄如何想正常操作, 必須要有執(zhí)行權(quán)限
- 目錄沒有任何權(quán)限信息, 管理員用戶擁有目錄絕對(duì)權(quán)限
總結(jié): 對(duì)于目錄來(lái)說, 執(zhí)行權(quán)限是最重要, 可以讓讀和寫權(quán)限有意義
目錄的權(quán)限圖

最終結(jié)論:
- root用戶在系統(tǒng)中屬于無(wú)敵存在, 只要文件有執(zhí)行權(quán)限, 可以隨意操作文件和目錄信息
疑問:
-
當(dāng)目錄只有讀權(quán)限時(shí), 屬主用戶查看信息為什么只能看見文件名稱, 不能看見文件屬性信息?
說明:- 目錄只有讀權(quán)限, 只能利用讀權(quán)限查看目錄block信息
- 目錄需要有執(zhí)行權(quán)限, 才能進(jìn)入到目錄中, 查看文件的inode獲得屬性信息
提示: inode block
inode作用: 查看數(shù)據(jù)內(nèi)容索引信息
存儲(chǔ): 文件屬性信息/block指針信息
block作用: 真正存儲(chǔ)數(shù)據(jù)內(nèi)容信息
普通文件: inode 文件屬性 指針信息
block 真正文件內(nèi)容
目錄文件: inode 目錄屬性 指針信息
block 目錄下面數(shù)據(jù)名稱
image.png
一個(gè)文件權(quán)限為777, 屬主屬組為oldboy, 但是oldboy用戶無(wú)法操作管理此文件?
提示: 利用inode block, 理解系統(tǒng)數(shù)據(jù)文件讀寫原理 權(quán)限說明
說明: 對(duì)文件信息進(jìn)行讀寫操作, 和文件本身權(quán)限有關(guān)/和文件所在目錄路徑權(quán)限也有關(guān)系
系統(tǒng)數(shù)據(jù)默認(rèn)權(quán)限
文件默認(rèn)權(quán)限: 644(root)
目錄默認(rèn)權(quán)限: 755(root)
如何修改默認(rèn)權(quán)限:
umask: 0022
umask是奇數(shù)信息
文件默認(rèn)權(quán)限: 666 - umask(033) = 63(+1)3(+1) == 644 文件做奇數(shù)運(yùn)算位, 做完運(yùn)算還需要在加1
目錄默認(rèn)權(quán)限: 777 - umask(033) = 744
umask是偶數(shù)信息
文件默認(rèn)權(quán)限: 666 - umask(022) = 644
目錄默認(rèn)權(quán)限: 777 - umask(022) = 755
臨時(shí)修改:
文件默認(rèn)權(quán)限: 需求 600 666 - umask(066) = 600
需求 611 666 - umask(055) = 61(+1)1(+1) = 622
目錄默認(rèn)權(quán)限: 需求 700 777 - umask(077) = 700
永久修改:
vim /etc/profile
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
解釋01: 腳本判斷語(yǔ)句信息
a 單分支判斷語(yǔ)句: if 條件 then 操作 fi
b 雙分支判斷語(yǔ)句: if 條件 then 方案一操作 else 方案二操作 fi
解釋02: 判斷條件信息意思
a 條件判斷有單一條件和多條件判斷(并且關(guān)系 或者關(guān)系)
b 每個(gè)條件表達(dá)的意思
-gt 大于什么 >
-lt 小于什么 <
-eq 等于什么 ==
-ge 大于等于
-le 小于等于
-ne 不等于
$UID -gt 199 : 判斷當(dāng)前用戶UID數(shù)值是否大于199
"`/usr/bin/id -gn`" = "`/usr/bin/id -un`" : 當(dāng)前登錄系統(tǒng)用戶名稱和用戶組名稱是否一致
系統(tǒng)用戶提權(quán)方法
解釋說明: 讓普通用戶可以獲得管理員部分或者全部權(quán)利 皇帝root -大寶劍(sudo)- 將軍 -大寶劍(sudo)-> 貪官
實(shí)現(xiàn)方式:
第一個(gè)里程: 編寫提權(quán)配置文件
vim /etc/sudoers --- visudo (語(yǔ)法檢查)
100: oldgirl ALL=(ALL) /usr/bin/cat /etc/shadow
01 02 03
01: 將管理員權(quán)限賦予給哪個(gè)普通用戶
02: 進(jìn)行權(quán)限統(tǒng)一集中管理 (跳板機(jī)服務(wù) jumpserver)
03: 賦予普通用戶權(quán)限信息
賦予權(quán)限方法:
a 賦予權(quán)限命令必須絕對(duì)路徑信息
b 多個(gè)權(quán)限之間必須有分隔符號(hào) 利用,分隔
方法一: 配置單一權(quán)限信息
方法二: 配置多個(gè)權(quán)限信息
oldgirl ALL=(ALL) /usr/bin/cat /etc/shadow, /usr/bin/rm /etc/hosts
oldgirl ALL=(ALL) /usr/bin/cat, /usr/bin/rm
oldgirl ALL=(ALL) /usr/bin/*, /usr/sbin/*
oldgirl ALL=(ALL) /usr/bin/*, /usr/sbin/*, !/usr/bin/rm, !/usr/sbin/visudo
方法三: 免密碼進(jìn)行提權(quán)操作
oldgirl ALL=(ALL) NOPASSWD: /usr/bin/*, /usr/sbin/*, !/usr/bin/rm, !/usr/sbin/visudo
第二個(gè)里程: 切換到普通用戶查看自己提權(quán)信息
[oldgirl@linux67 ~]$ sudo -l
User oldgirl may run the following commands on linux67:
(ALL) /usr/bin/cat /etc/shadow
第三個(gè)里程: 測(cè)試提權(quán)操作是否成功
sudo cat /etc/shadow
總結(jié)結(jié)論: 普通用戶操作系統(tǒng)權(quán)限拒絕, 可以如何調(diào)整
修改文件或者目錄權(quán)限 (權(quán)限位信息 chmod)
用戶身份信息進(jìn)行調(diào)整 (切換管理員身份 su -) OK
設(shè)置普通用戶提權(quán)配置 (普通用戶擁有管理員部分權(quán)限 sudo) OK
修改文件數(shù)據(jù)特殊權(quán)限
檢查數(shù)據(jù)是否加鎖配置
操作系統(tǒng)特殊權(quán)限位
setuid : s 屬主權(quán)限 4 屬主權(quán)限位總結(jié): s r w x
概念說明: 可以讓所有普通用戶獲得指定文件屬主用戶能力, 像屬主用戶一樣執(zhí)行命令或者操作文件
以文件的所屬用戶身份執(zhí)行,而非執(zhí)行文件的用戶
作用說明: 特殊命令操作權(quán)限 --> 賦予 --> 所有普通用戶
設(shè)置方法: chmod u+s/u-s 文件信息 u(user 屬主) | chmod 4755 文件信息setgid : s 屬組權(quán)限 2 屬組權(quán)限位總結(jié): s r w x
概念說明: 可以讓所有普通用戶獲得指定文件屬組用戶能力, 像屬組用戶一樣執(zhí)行命令或者操作文件
以文件的所屬用戶組身份執(zhí)行,而非執(zhí)行文件的用戶
設(shè)置方法: chmod g+s/g-s 文件信息 g(group 屬組) | chmod 2755 文件信息Sticky bits (粘滯位) : t 1 ***** 其他用戶權(quán)限位總結(jié): t r w x
概念說明: 給目錄設(shè)置特殊權(quán)限, 將目錄變?yōu)楣蚕碣Y源目錄, 文件數(shù)據(jù)只能被屬主用戶所管理
其他用戶只看文件內(nèi)容
設(shè)置方法: chmod o+t/o-t 文件信息 o(other 其他用戶) | chmod 1777 目錄信息總結(jié)權(quán)限命令: chmod -- 修改數(shù)據(jù)權(quán)限信息
針對(duì)不同用戶修改權(quán)限
· 屬主用戶: chmod u +-= s r w x 文件/目錄
· 屬組用戶: chmod g +-= s r w x 文件/目錄
· 其它用戶: chmod o +-= t r w x 文件/目錄
針對(duì)所有用戶修改權(quán)限
· 按照字符進(jìn)行修改: chmod a +-= r w x 文件/目錄
· 按照數(shù)值進(jìn)行修改: chmod 000 ~ 777 文件/目錄
chmod 0000 - 7777 文件/目錄
PS: 使用chmod前提, 必須對(duì)權(quán)限非常熟悉
chown -- 修改文件數(shù)據(jù)屬主和屬組信息
chown oldgirl oldboy.txt --- 只修改文件屬主信息
chown .oldboy01 oldboy.txt --- 只修改文件屬組信息
chown oldgirl.oldboy01 oldboy.txt --- 屬主和屬組信息同時(shí)修改
chown oldgirl. oldboy.txt
chown -R oldgirl. /oldboy --- 遞歸修改目錄屬主屬組以及目錄下面所有數(shù)據(jù)屬主和屬組給文件上鎖命令:
chattr +i 文件信息 --- 給文件上鎖
lsattr 文件信息 --- 查看文件是否上鎖
chattr -i 文件信息 --- 給文件解鎖
說明: 系統(tǒng)中非常重要文件必須上鎖
- 普通用戶操作系統(tǒng), 出現(xiàn)權(quán)限拒絕, 如何處理
修改文件或目錄權(quán)限 chmod OK
進(jìn)行用戶身份信息轉(zhuǎn)換 su - root OK
進(jìn)行用戶提權(quán)操作 sudo OK
修改文件特殊權(quán)限位 setuid setgid 粘滯位 OK
-
文件數(shù)據(jù)信息上鎖
面試題: 根據(jù)以下文件屬性信息, 判斷文件權(quán)限, 但是此時(shí)root用戶無(wú)法編輯文件什么原因:
-rw-r--r-- 1 root root 158 Nov 8 11:38 /etc/hosts
可能文件被上鎖了, 利用lsattr查看確認(rèn), 利用chattr -i 解鎖
操作系統(tǒng)用戶管理
操作系統(tǒng)用戶知識(shí)回顧
用戶分類:
· 創(chuàng)建管理員 權(quán)限比較大 root uid 0
· 虛擬用戶 管理進(jìn)程信息 nobody uid 1-999 不能登錄系統(tǒng) 不能有家目錄
· 普通用戶 權(quán)限較低用戶 oldboy uid 1000+
用戶和用戶組關(guān)系:
用戶標(biāo)識(shí)信息:
uid : 用戶身份證號(hào)
gid : 用戶組編號(hào)
和用戶或者用戶組相關(guān)文件信息
/etc/passwd ****** : 保存系統(tǒng)所有用戶信息
/etc/shadow : 保存系統(tǒng)所有用戶密碼信息
/etc/group : 保存系統(tǒng)所有用戶組信息
/etc/gshadow : 保存系統(tǒng)所有用戶組密碼信息

sunwukong01:x:1024:1024::/home/sunwukong01:/bin/bash
sunwukong02:x:1025:1025::/home/sunwukong02:/bin/bash
sunwukong03:x:1026:1026::/home/sunwukong03:/bin/bash
sunwukong04:x:1027:1027::/home/sunwukong04:/bin/bash
sunwukong05:x:1028:1028::/home/sunwukong05:/bin/bash
01 02 03 04 05 06 07
- 用戶名稱信息
- 早期密碼信息
- 用戶UID數(shù)值信息
- 用戶GID數(shù)值信息
- 用戶描述信息
- 用戶家目錄信息
- shell信息 登錄系統(tǒng)方式
/bin/bash --- 可以登錄
/sbin/nologin --- 不可以登錄系統(tǒng)
測(cè)驗(yàn): passwd文件中有多少個(gè)虛擬用戶
grep
awk
思路1) 查出虛擬用戶
grep "/sbin/nologin" /etc/passwd
awk '$NF~/nologin/' /etc/passwd
思路2) 將查出虛擬用戶進(jìn)行統(tǒng)計(jì)
grep -c "/sbin/nologin" /etc/passwd
awk '$NF~/nologin/{i++}END{print "虛擬用戶數(shù)量:",i}' /etc/passwd
- 和用戶相關(guān)目錄信息
/etc/skel --- 用戶家目錄樣板房
.bash_logout --- 用戶退出系統(tǒng)后執(zhí)行操作
.bash_profile --- 可以配置變量 環(huán)境變量 別名 局部配置
.bashrc --- 可以配置變量 環(huán)境變量 別名 局部配置
/home/oldboy --- 用戶房子
用于修復(fù)加目錄
命令提示符出現(xiàn)錯(cuò)誤/家目錄中沒有任何信息
cp /etc/skel/.b* ~/
面試題: 命令提示符顯示異常了如何修復(fù): -bash-4.2$
方法一: 修復(fù)用戶家目錄
方法二: 設(shè)置PS1環(huán)境變量
useradd --- 創(chuàng)建用戶命令
-u --- 指定用戶uid信息
-c --- 設(shè)置用戶描述信息
-g --- 指定用戶屬于哪個(gè)主要組
-G --- 指定用戶屬于哪個(gè)附屬組
[root@linux67 ~]# useradd alex07 -u 2002 -c dba -g olddog -G linux
[root@linux67 ~]# grep -E "olddog|linux" /etc/group
linux:x:1500:alex07
olddog:x:1201:
[root@linux67 ~]# id alex07
uid=2002(alex07) gid=1201(olddog) groups=1201(olddog),1500(linux)
創(chuàng)建虛擬用戶:
-s --- 指定登錄方式 /sbin/nologin
-M --- 指定不能創(chuàng)建家目錄
useradd alex08 -M -s /sbin/nologin ***** --- 如何創(chuàng)建虛擬用戶
ll -d /home/alex08
ls: cannot access /home/alex08: No such file or directory
[root@linux67 ~]# grep alex08 /etc/passwd
alex08:x:2003:2003::/home/alex08:/sbin/nologin
[root@linux67 ~]# su - alex08
su: warning: cannot change directory to /home/alex08: No such file or directory
This account is currently not available.
測(cè)驗(yàn): 創(chuàng)建一個(gè)database用戶, uid為888, 并且不能登錄系統(tǒng), 不能有家目錄
useradd -u 888 -s /sbin/nologin -M
usermod - 修改用戶信息
-u --- 修改用戶uid信息
-c --- 修改用戶描述信息
-g --- 修改用戶屬于哪個(gè)主要組
-G --- 修改用戶屬于哪個(gè)附屬組
-s --- 修改登錄方式 /sbin/nologin
userdel --- 刪除用戶家目錄
userdel -r 用戶信息 --- 徹底刪除用戶
問題: 刪除用戶不徹底, 有可能原有家目錄會(huì)被別人占用
掌握用戶相關(guān)命令信息
groupadd : 創(chuàng)建指定用戶組 -g 指定組id
groupadd dev -g 2000
grep dev /etc/group
dev:x:2000:
groupdel :
groupmod : 修改指定用戶組 -g 指定組id
開發(fā)人員 -- 線上服務(wù)器 完全控制 開發(fā)目錄
chown dev01.dev01 /development/
chmod g+w /development/
ll /development/ -d
drwxrwxr-x 2 dev01 dev01 6 Nov 11 15:44 /development/
usermod sa01 -G dev01
運(yùn)維人員 -- 線上服務(wù)器 完全控制 開發(fā)目錄 運(yùn)維目錄 數(shù)據(jù)庫(kù)目錄
???
據(jù)庫(kù)人員 -- 線上服務(wù)器 完全控制 數(shù)據(jù)庫(kù)目錄
???
如何查看用戶信息:
whoami --- 以什么用戶登錄系統(tǒng)
id --- 查看用戶uid數(shù)值 所屬組信息 以及組id數(shù)值
w --- 顯示系統(tǒng)當(dāng)前狀態(tài)登錄用戶信息
ps -ef|grep ssh ---> kill 進(jìn)程號(hào)
last --- 記錄誰(shuí)遠(yuǎn)程連接破壞過系統(tǒng)
lastlog --- 系統(tǒng)用戶登錄情況
合理設(shè)置不同用戶權(quán)限, 設(shè)置用戶密碼信息
密碼信息如何設(shè)置管理:
方法一: excel 表格
方法二: 利用密碼管理軟件/jumpserver ******
方法三: 需要密碼令牌 動(dòng)態(tài)變化
