linux系統是乙個支援多使用者管理的作業系統,多個使用者可以同時管理作業系統。
1.1 使用者分類
超級管理員使用者 root uid=0 屬於最高端的存在,幾乎不受任何限制
普通使用者 uid=1000+ 只在家目錄中不受限制,其它目錄中預設只能檢視
虛擬使用者 nobody uid=1~999 沒有家目錄,不能登入系統,用於管理系統服務程序
1.2 使用者相關的檔案和目錄檔案
/etc/passwd --- 記錄所有使用者資訊
/etc/shadow --- 記錄所有使用者密碼資訊,其中密碼資訊是密文的
/etc/group --- 記錄所有使用者組資訊
/etc/gshadow --- 記錄所有使用者組密碼資訊
目錄/etc/skel/ --- 普通使用者家目錄的樣板房
cat /etc/passwd
使用者名稱:uid:組id:使用者介紹別名:/使用者家目錄:是否能登入
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
test01:x:1000:1000:test01:/home/test01:/bin/bash
1.3 使用者管理相關命令useradd --- 建立新使用者
-u --- 建立使用者時設定id
-m --- 不建立家目錄
-s --- 設定使用者登入系統方式,即是否能登陸系統 /bin/bash /sbin/nologin
-g --- 設定使用者所屬主要組
-g --- 設定使用者所屬附屬組
-c --- 給使用者新增注釋資訊
eg1:建立乙個使用者,uid為666,所屬主要組是oldboy,附屬組是oldgirl,使用者名為pyuser1。
1. 判斷使用者是否存在
id pyuser1
2. 新建使用者
useradd -u 666 -g oldboy -g oldgirl pyuser1
eg2:建立乙個虛擬使用者,uid為888,使用者名為pyuser2。
1. 判斷使用者是否存在
grep 888 /etc/passwd
2. 新建使用者,虛擬使用者不能有家目錄,不能登陸系統
useradd -u 888 -m -s /sbin/nologin pyuser2 -c 虛擬使用者
usermod --- 修改使用者資訊
-u --- 修改使用者id
-s --- 修改使用者登入系統的方式 /bin/bash /sbin/nologin
-g --- 修改使用者所屬主要組
-g --- 修改使用者所屬附屬組
-c --- 修改注釋資訊
userdel --- 刪除使用者
-r --- 將使用者所有資訊徹底刪除
groupadd --- 建立使用者組
groupdel --- 刪除使用者組
passwd --- 設定或修改使用者密碼資訊
互動方式設定密碼:passwd oldboy
免互動方式設定密碼:echo 123456|passwd --stdin oldboy
chown --- 修改屬主和屬組
-r --- 以遞迴的方式修改目錄及其子目錄下所有資料的屬主和屬組資訊
eg01:修改目錄或檔案的屬主和屬組資訊
chown oldboy.oldboy 目錄名/檔名
.或:前面為屬主資訊,後面為屬組資訊。
eg02:修改目錄內所有資料的屬主和屬組資訊
chown -r oldboy.oldboy 目錄名
id --- 檢視使用者屬組和id
su --- 切換使用者
su - 使用者名稱
2.1 許可權介紹
對於目錄
r:可以檢視目錄下的檔案和子目錄
w:可以在目錄中進行建立、刪除、重新命名操作
x:是否可以切換進入這個目錄
對於普通使用者,訪問許可權x是最重要的,其它許可權如果想正常使用,必須結合訪問許可權x進行設定:rx / wx;
對於root使用者,即使沒有任何許可權,也可以進行操作。
2.2 許可權設定命令使用
給指定使用者設定許可權
chmod u+/-/=r|w|x --- 給屬主使用者新增/刪除/設定指定許可權
chmod g+/-/=r|w|x --- 給屬組使用者新增/刪除/設定指定許可權
chmod o+/-/=r|w|x --- 給其他使用者新增/刪除/設定指定許可權
實現批量全域性設定許可權
chmod a+/-/=r|w|x --- 對屬主、屬組、其他使用者統一設定許可權
chmod 750 目錄或檔名 --- 更靈活地設定目錄或檔案許可權,屬主7、屬組5、其他使用者0
以遞迴方式對目錄下所有許可權進行設定
chmod -r 750 目錄名
2.3 系統許可權計算方式
檔案
666 - umask數值 = 檔案許可權
666 - 022 = 644(檔案預設許可權)
666 - 033 = 633,對於奇數,對應奇數字需要加1
= 6(3+1)(3+1) = 644
目錄
777 - umask數值 = 目錄許可權
777 - 022 = 755(目錄預設許可權)
777 - 033 = 744
umask數值是來自系統配置檔案。
cat -n /etc/profile
59 if [ $uid -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
60 umask 002
61 else
62 umask 022
63 fi
2.4 系統使用者提權操作
提權操作可以讓指定使用者具有root使用者的部分能力。
提權操作
編寫使用者提權配置檔案
visudo
oldboy all=(all) /bin/cat /etc/shadow --- 對指定命令進行提權配置
oldboy all=(all) /bin/cat /etc/shadow, /usr/sbin/useradd --- 對多個命令進行提權配置
oldboy all=(all) /bin/*, /usr/sbin/*, !/user/sbin/userdel --- 使用感嘆號!對指定許可權userdel進行**
oldboy all=(all) nopasswd: /bin/*, /usr/sbin/* --- 進行免密碼提權操作
vim|vi 快捷操作
gg --- 將游標移動到檔案第一行
g --- 將游標移動到檔案最後一行
66gg/66g --- 將游標快速移動到指定行
0|^ --- 將游標快速移動到所在行的行首
$ --- 將游標快速移動到所在行的行尾
yy --- 複製指定行內容 nyy 複製多行
p --- 貼上指定行內容 np 貼上多行
dd --- 刪除指定行內容 ndd 刪除多行
檢查是否提權成功
sudo -l
進行提權操作測試
sudo cat /etc/shadow
sudo表示以提權的方式執行後面的命令。
2.5 系統特殊許可權
問:系統中有哪些許可權?
答:系統總共有12個許可權位,分別對應 r w x setuid setgid 粘滯位。
setuid
讓普通使用者可以像命令檔案的屬主使用者那樣去操作命令。
chmod u+s(2) 命令檔案
chmod u+s /bin/cat
ll /bin/cat
-rwsr-xr-x. 1 root root 54080 apr 11 2018 /bin/cat
setgid
讓普通使用者可以像命令檔案的屬組使用者那樣去操作命令。
chmod g+s(2) 命令檔案
粘滯位
粘滯位用於建立共享目錄,並且共享目錄中資料只能被資料屬主使用者進行管理,其他使用者只能檢視。
chmod o+t /dev_share/
ll /dev_share/ -d
drwxrwxrwt 2 root root 43 aug 12 11:01 /dev_share/
當使用者在系統中的操作受到制約,可以從以下幾個方面進行調整。
可以切換使用者 su - root
可以修改檔案或目錄的許可權 chmod chown
可以對使用者進行提權操作 sudo
可以設定命令特殊許可權 setuid 粘滯位
需要關注服務裡面的配置,例如使用者上傳資料被拒絕。
使用者許可權 Linux使用者組管理與許可權設定
是時候寫一篇linux使用者組管理的內容了,其實最主要的原因是因為使用conda安裝軟體,由於當前使用者不是安裝conda的使用者,又不想在自己目錄下建立虛擬環境 home空間小 然後使用了sudo,結果虛擬環境建立是建立了,不過軟體卻沒有安裝在新建的虛擬環境裡,安裝在了base環境裡,沒辦法,解除...
3 Linux 詳解檔案許可權
輸出的內容是什麼呢?第1個字母 代表檔案型別 第2,3,4個字母 分別代表擁有者的讀,寫,執行許可權 第5,6,7個字母 分別代表所屬使用者組的讀,寫,執行許可權 第8,9,10個字母 分別代表其他使用者的讀,寫,執行許可權 如果對應位置為 表示沒有該許可權 注意,linux裡面一切皆檔案 chgr...
linux 使用者與許可權管理
使用者,使用者組相關檔案 etc passwd 記錄所有使用者 etc group 記錄使用者與使用者組資訊 useradd m s bin bash nagios 新增使用者nagios m建立使用者資料夾 home nagios s bin bash 使用bash功能 比如tab鍵補全 pass...