目錄
權限管理
4.1 linux安全上下文
4.2 特殊權限
2.1 修改權限的命令chmod
2.2 修改文件屬主和屬組的命令chown
1.權限簡介
2.權限管理命令
3. 遮罩碼
4. linux安全上下文與特殊權限
5. 文件系統訪問控制列表facl
6. sudo
7. 管理命令
1.權限簡介
文件的權限主要針對三類對象進行定義:
owner | 屬主 | u |
---|---|---|
group | 屬組 | g |
other | 其它 | o |
每個文件針對每個訪問者都定義了三種權限:
權限 | 對應的操作對象 | 權限說明 |
---|---|---|
r | 文件 |
可讀 可以使用類似cat等命令查看文件內容 |
w | 文件 |
可寫 可以編輯或刪除此文件 |
x | 文件 |
可執行,eXacutable 可以在命令提示符下 當作命令提交給內核運行 |
r | 目錄 | 可以對此目錄執行ls以列出內部的所有文件 |
w | 目錄 |
可以在此目錄中創建文件 也可刪除此目錄中的文件 |
x | 目錄 |
可以使用cd切換進此目錄 也可以使用ls -l查看內部文件的詳細信息 |
權限的二進制與十進制轉換:
2.權限管理命令
2.1 修改權限的命令chmod
//修改三類用戶的權限:
//語法:chmod MODE file,...
-R //遞歸修改權限
//修改某類用戶或某些類用戶權限:
//u,g,o,a(用戶類別)
//chmod 用戶類別=MODE file,.....
//chmod 用戶類別=MODE,用戶類別=MODE file,.....
//修改某類的用戶某位或某些位權限:
//u,g,o,a(用戶類別)
//chmod 用戶類別+|-MODE file,.....
//chmod 用戶類別+|-MODE,用戶類別+|-MODE file,.....
//chmod +|-MODE file,.....
[root@lnh ~]# ll total 24 -rw-r--r--. 1 root root 0 Jul 4 12:22 111 -rw-r--r--. 1 root root 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 6 Jul 3 12:00 tushanbu [root@lnh ~]# chmod u-w 111 [root@lnh ~]# ll total 24 -r--r--r--. 1 root root 0 Jul 4 12:22 111 -rw-r--r--. 1 root root 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 6 Jul 3 12:00 tushanbu //不要111的屬主寫權限 [root@lnh ~]# chmod o+w 111 [root@lnh ~]# ll total 24 -r--r--rw-. 1 root root 0 Jul 4 12:22 111 -rw-r--r--. 1 root root 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 6 Jul 3 12:00 tushanbu //給111其他這里賦予它可以寫的權限 [root@lnh ~]# ll total 24 -r--r--rw-. 1 root root 0 Jul 4 12:22 111 -rw-r--r--. 1 root root 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 6 Jul 3 12:00 tushanbu [root@lnh ~]# chmod g=wx 222 [root@lnh ~]# ll total 24 -r--r--rw-. 1 root root 0 Jul 4 12:22 111 -rw--wxr--. 1 root root 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 6 Jul 3 12:00 tushanbu //給222的屬組賦予可寫和可執行權限,它之前可讀權限消失了 [root@lnh ~]# chmod ugo=rwx 222 [root@lnh ~]# ll total 24 -r--r--rw-. 1 root root 0 Jul 4 12:22 111 -rwxrwxrwx. 1 root root 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 6 Jul 3 12:00 tushanbu //給222賦予可讀可寫可執行權限 [root@lnh ~]# chmod a=rwx 111 [root@lnh ~]# ll total 24 -rwxrwxrwx. 1 root root 0 Jul 4 12:22 111 -rwxrwxrwx. 1 root root 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 6 Jul 3 12:00 tushanbu //給111賦予可讀可寫可執行權限 //a=u屬主+g屬組+o其他 [root@lnh ~]# chmod -R a=rwx tushanbu/333 [root@lnh ~]# ll tushanbu/333 -rwxrwxrwx. 1 root root 0 Jul 4 12:49 tushanbu/333 //遞歸修改權限 //給tushanbu目錄下的333文件賦予可讀可寫可執行權限 [root@lnh ~]# chmod 666 111 [root@lnh ~]# ll total 24 -rw-rw-rw-. 1 root root 0 Jul 4 12:56 111 -rwxrwxrwx. 1 root root 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 17 Jul 4 12:49 tushanbu //也可以通過數字的方式賦予文件111可讀可寫權限
2.2 修改文件屬主和屬組的命令chown
chown命令只有管理員可以使用。
chown 用戶名.屬組 文件名
-R //chown 用戶名.屬組 目錄/文件名
chown 用戶名:屬組 文件名
[root@lnh ~]# ll total 28 -rw-rw-rw-. 1 root root 0 Jul 4 12:56 111 -rwxrwxrwx. 1 root root 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-------. 1 lxb root 1003 Jul 4 13:18 lxb -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 17 Jul 4 12:49 tushanbu [root@lnh ~]# chown lxb.lxb 111 [root@lnh ~]# ll total 28 -rw-rw-rw-. 1 lxb lxb 0 Jul 4 12:56 111 -rwxrwxrwx. 1 root root 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-------. 1 lxb root 1003 Jul 4 13:18 lxb -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 17 Jul 4 12:49 tushanbu //修改111的用戶和屬組為lxb [root@lnh ~]# chown -R lxb.lxb tushanbu/333 [root@lnh ~]# ll tushanbu/333 -rwxrwxrwx. 1 lxb lxb 0 Jul 4 12:49 tushanbu/333 //修改tushanbu目錄下的333文件用戶和屬組為lxb [root@lnh ~]# chown .lxb 222 [root@lnh ~]# ll total 28 -rw-rw-rw-. 1 lxb lxb 0 Jul 4 12:56 111 -rwxrwxrwx. 1 root lxb 0 Jul 4 12:20 222 -rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg -rw-------. 1 lxb root 1003 Jul 4 13:18 lxb -rw-r--r--. 1 root root 15032 Jul 4 08:33 outfile -rw-r--r--. 1 root root 156 Jul 3 07:38 test drwxr-xr-x. 2 root root 17 Jul 4 12:49 tushanbu //修改文件222的屬組為lxb
3. 遮罩碼
為什么文件創建以后默認權限是644?
為什么目錄創建以后默認權限是755?
這是由遮罩碼umask來控制的。
從名字就能看出來,遮罩碼umask是用來隱藏一些權限的。舉例:如果你不想讓人家認出你,你會怎么辦?
文件最終的權限為:
666-umask
目錄最終的權限為:
777-umask
文件默認是不能具有執行權限的,如果算得的結果有執行權限則將其權限整體加1。
[root@lnh tushanbu]# umask 0022 //遮罩碼 [root@lnh tushanbu]# umask 011 [root@lnh tushanbu]# mkdir 876 [root@lnh tushanbu]# touch 345 [root@lnh tushanbu]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 13:54 123 drwxr-xr-x. 2 root root 6 Jul 4 13:54 234 -rwxrwxrwx. 1 lxb lxb 0 Jul 4 12:49 333 -rw-rw-rw-. 1 root root 0 Jul 4 13:54 345 drwxrw-rw-. 2 root root 6 Jul 4 13:54 876 [root@lnh tushanbu]# ll total 0 -rw-r--r--. 1 root root 0 Jul 4 13:54 123 drwxr-xr-x. 2 root root 6 Jul 4 13:54 234 -rw-rw-rw-. 1 root root 0 Jul 4 13:54 345 drwxrw-rw-. 2 root root 6 Jul 4 13:54 876 //因為文件的滿權限是666,如果有x執行權限在那么就會整體權限加一, 目錄的滿權限是777,可以看見遮罩碼是只能改變后面創建的文件或者目錄權限,之前已經存在的不會改變
4. linux安全上下文與特殊權限
4.1 linux安全上下文
前提:進程有屬主和屬組;文件有屬主和屬組
任何一個可執行程序文件能不能啟動為進程,取決于發起者對程序文件是否擁有可執行權限;
啟動為進程后,其進程的屬主為發起者,屬組為發起者所屬的組
進程訪問文件時的權限取決于進程的發起者:
進程的發起者是文件的屬主時,則應用文件屬主權限
進程的發起者是文件的屬組時,則應用文件屬組權限
應用文件“其它”權限
4.2 特殊權限
linux默認權限是根據linux安全上下文的方式來控制的,而特殊權限的存在打破了linux安全上下文的規則。
SUID(4) //運行程序時,這個程序啟動的進程的屬主是程序文件自身的屬主,而不是啟動者為屬主
chmod u+s file
chmod u-s file
//如果file本身原來就有執行權限,則SUID顯示為s,否則顯示為S
SGID(2) //運行程序時,這個程序啟動的進程的屬組是程序文件自身的屬組,而不是啟動者所屬的基本組
//默認情況下,用戶創建文件時,其屬組為此用戶所屬的基本組;
//一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此目錄中創建的文件或目錄,其所屬的組
//為此設定了SGID的目錄的屬組
chmod g+s DIR
chmod g-s DIR
//如果file本身原來就有執行權限,則SGID顯示為s,否則顯示為S
Sticky(1) //在一個公共目錄,每個人都能創建文件,刪除自己的文件,但是不能刪除別人創建的文件
chmod o+t DIR
chmod o-t DIR
//如果DIR本身原來就有執行權限,則Sticky顯示為t,否則顯示為T
4755 //有SUID,文件權限為755
2755 //有SGID,文件權限為755
1755 //有Sticky,文件權限為755
//這里前面的4、2、1分別表示SUID、SGID、Sticky
SUID:
//可以看見sleep這個命令程序本來的屬主是root,但是你在另外一個用戶上面啟動這個命令程序后它的進程屬主變成了啟動它的用戶而不是root本來這個屬主,不過你可以給這個命令程序賦予suid權限后,再次進行測試發現最終其屬主還是root本身
//此處w后面出現一個小s代表賦予執行權限,如果是大S那么就是這條命令本來就沒有執行權限
//可以看見通過設置u-s可以取消那個權限也可以設置755權限后就沒有suid權限然后這條執行命令的用戶回到了lxb
SGID:
[root@lnh tushanbu]# mkdir abc [root@lnh tushanbu]# ll abc total 0 [root@lnh tushanbu]# touch abc/123 [root@lnh tushanbu]# ll abc/ total 0 -rw-r--r--. 1 root root 0 Jul 4 17:20 123 [root@lnh tushanbu]# chown .lxb abc/ //這里我們將abc的屬組設置成為了lxb [root@lnh tushanbu]# ll total 0 drwxr-xr-x. 2 root lxb 17 Jul 4 17:20 abc [root@lnh tushanbu]# touch abc/234 [root@lnh tushanbu]# ll abc/ total 0 -rw-r--r--. 1 root root 0 Jul 4 17:20 123 -rw-r--r--. 1 root root 0 Jul 4 17:21 234 //按道理說這里234的屬組應該是lxb,但是我們的默認情況下會讓root為屬組 [root@lnh tushanbu]# chmod 2755 abc //賦予abc這個命令sgid權限 [root@lnh tushanbu]# ll total 0 drwxr-sr-x. 2 root lxb 28 Jul 4 17:21 abc [root@lnh tushanbu]# touch abc/456 [root@lnh tushanbu]# ll abc/ total 0 -rw-r--r--. 1 root root 0 Jul 4 17:20 123 -rw-r--r--. 1 root root 0 Jul 4 17:21 234 -rw-r--r--. 1 root lxb 0 Jul 4 17:23 456 //可以看見456的屬組還是lxb本身 //正常情況下我們就算是修改了屬組但是默認下還是之前目錄本身沒有修改前的屬組,但是加上sgid權限后可以把修改后的屬組變成它修改后的屬組 [root@lnh tushanbu]# ll total 0 drwxr-sr-x. 2 root lxb 28 Jul 4 14:55 abc [root@lnh tushanbu]# chmod g-x abc [root@lnh tushanbu]# ll total 0 drwxr-Sr-x. 2 root lxb 28 Jul 4 14:55 abc //沒有執行權限是大寫S [root@lnh tushanbu]# chmod g+x abc [root@lnh tushanbu]# ll total 0 drwxr-sr-x. 2 root lxb 28 Jul 4 14:55 abc //有執行權限是小寫s
Sticky:
[root@lnh tmp]# ll / total 16 lrwxrwxrwx. 1 root root 7 May 19 2020 bin -> usr/bin dr-xr-xr-x. 5 root root 4096 Jun 27 21:10 boot drwxr-xr-x. 20 root root 3140 Jun 30 04:30 dev drwxr-xr-x. 77 root root 8192 Jul 4 13:01 etc drwxr-xr-x. 5 root root 44 Jul 4 13:01 home lrwxrwxrwx. 1 root root 7 May 19 2020 lib -> usr/lib lrwxrwxrwx. 1 root root 9 May 19 2020 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 May 19 2020 media drwxr-xr-x. 2 root root 6 May 19 2020 mnt drwxr-xr-x. 2 root root 6 Jul 4 13:17 opt dr-xr-xr-x. 193 root root 0 Jun 29 18:58 proc dr-xr-x---. 4 root root 258 Jul 4 14:45 root drwxr-xr-x. 23 root root 660 Jun 29 18:58 run lrwxrwxrwx. 1 root root 8 May 19 2020 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 May 19 2020 srv dr-xr-xr-x. 13 root root 0 Jun 29 18:58 sys drwxrwxrwt. 7 root root 136 Jul 4 15:03 tmp drwxr-xr-x. 12 root root 144 Jun 27 21:06 usr drwxr-xr-x. 20 root root 278 Jun 27 21:10 var //tmp有Sticky權限,就是說在這個公共目錄中,你可以創建并且刪除自己的東西,其他的還是需要管理員給予權限 [root@lnh tmp]# ll total 8 -rw-r--r--. 1 root root 15 Jul 3 08:40 hello.out -rwx------. 1 root root 701 Jun 27 21:09 ks-script-mnbhyjqk [root@lnh tmp]# touch xbd [root@lnh tmp]# ll total 8 -rw-r--r--. 1 root root 15 Jul 3 08:40 hello.out -rwx------. 1 root root 701 Jun 27 21:09 ks-script-mnbhyjqk -rw-rw-rw-. 1 root root 0 Jul 4 15:06 xbd [root@lnh tmp]# rm -f xbd [root@lnh tmp]# ll total 8 -rw-r--r--. 1 root root 15 Jul 3 08:40 hello.out -rwx------. 1 root root 701 Jun 27 21:09 ks-script-mnbhyjqk //可以刪除自己的東西和修改自己的東西權限
5. 文件系統訪問控制列表facl
facl(Filesystem Access Control List),利用文件擴展保存額外的訪問控制權限。
//語法:setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-m //設定
uperm
gperm
//setfacl -m urw file
//setfacl -m grw file
//如果要為某個目錄設定默認的訪問控制列表,只需要設定時在u或g前面加上d即可。 如:
//setfacl -m dtest:rw file,此時在此目錄中創建的文件均繼承此訪問控制列表所設置的權限
-x //取消
u:UID
g:GID
//setfacl -x u:test file
//setfacl -x g:test file
-b //Remove all
//語法:getfacl [-aceEsRLPtpndvh] file ...
//getfacl file
[root@lnh tmp]# ll total 8 -rw-rw-rw-. 1 lxb lxb 0 Jul 4 15:14 111 -rw-rw-rw-. 1 root root 0 Jul 4 15:14 222 -rw-r--r--. 1 root root 15 Jul 3 08:40 hello.out -rwx------. 1 root root 701 Jun 27 21:09 ks-script-mnbhyjqk [root@lnh tmp]# setfacl -m ux 111 //設置lxb這個用戶對111有執行權限 [root@lnh tmp]# getfacl 111 # file: 111 # owner: lxb # group: lxb user::rw- user--x group::rw- mask::rwx other::rw- //可以查看是否更改成功 [root@lnh tmp]# setfacl -b 111 [root@lnh tmp]# getfacl 111 # file: 111 # owner: lxb # group: lxb user::rw- group::rw- other::rw //-b 清除了它的所有權限
6. sudo
sudo可以實現某個用戶能夠以另外哪一個用戶的身份通過哪些主機執行什么命令
sudo的配置文件:/etc/sudoers
使用visudo命令進行sudo的配置,每一行就是一個sudo條目,條目格式如下:
who which_hosts=(runas) command
who:User_Alias,表示運行命令者的身份
which_hosts:Host_Alias,通過哪些主機
runas:Runas_Alias,以哪個用戶的身份
command:Cmnd_Alias,運行哪些命令
別名必須全部而且只能使用大寫英文字母的組合,可以使用感嘆號取反
別名分類:
用戶別名:
User_Alias NETWORKADMIN =
用戶的用戶名
組名,使用%引導
還可以其它已經定義的用戶別名
主機別名:
Host_Alias =
主機名
IP地址
網絡地址
其它主機別名
Runas別名:
Runas_Alias =
用戶名
%組名
其它的Runas別名
命令別名:
Cmnd_Alias =
命令路徑
目錄(此目錄內的所有命令)
其它已定義的命令別名
//sudo命令語法:sudo [options] COMMAND
-V //顯示版本編號
-h //會顯示版本編號及指令的使用方式說明
-l //列出當前用戶可以使用的所有sudo類命令
-v //因為sudo在第一次執行時或是在N分鐘內沒有執行(N默認為5)會問密碼,這個參數
//是重新做一次確認,如果超過N分鐘,也會問密碼
-k //讓認證信息失效,如果不指定-k,默認認證信息在5分鐘后失效
-b //將要執行的指令放在后臺執行
-u USERNAME //以指定的用戶名執行命令,默認為root
通過visudo命令進入:
//設置允許lxb用戶使用/usr/sbin/useradd這個命令
[lxb@lnh ~]$ useradd ml useradd: Permission denied. useradd: cannot lock /etc/passwd; try again later. [lxb@lnh ~]$ sudo useradd ml We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for lxb: Sorry, try again. [sudo] password for lxb: sudo: 1 incorrect password attempt //要設置lxb的密碼 [lxb@lnh ~]$ su - root Password: Last login: Mon Jul 4 15:50:37 CST 2022 on pts/1 [root@lnh ~]# echo "redhat" | passwd --stdin lxb Changing password for user lxb. passwd: all authentication tokens updated successfully. [root@lnh ~]# su - lxb Last login: Mon Jul 4 15:50:51 CST 2022 on pts/1 [lxb@lnh ~]$ sudo useradd ml //因為剛剛輸入了密碼所以這里不用 [lxb@lnh ~]$ sudo userdel -r ml Sorry, user lxb is not allowed to execute '/sbin/userdel -r ml' as root on lnh. //只能創建,不能刪除用戶 [lxb@lnh ~]$ sudo -V Sudo version 1.8.29 Sudoers policy plugin version 1.8.29 Sudoers file grammar version 46 Sudoers I/O plugin version 1.8.29 //顯示版本編號 [lxb@lnh ~]$ sudo -h sudo - execute a command as another user usage: sudo -h | -K | -k | -V usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user] usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command] usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] [] usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ... Options: -A, --askpass use a helper program for password prompting -b, --background run command in the background -B, --bell ring bell when prompting -C, --close-from=num close all file descriptors >= num -E, --preserve-env preserve user environment when running command --preserve-env=list preserve specific environment variables -e, --edit edit files instead of running a command -g, --group=group run command as the specified group name or ID -H, --set-home set HOME variable to target user's home dir -h, --help display help message and exit -h, --host=host run command on host (if supported by plugin) -i, --login run login shell as the target user; a command may also be specified -K, --remove-timestamp remove timestamp file completely -k, --reset-timestamp invalidate timestamp file -l, --list list user's privileges or check a specific command; use twice for longer format -n, --non-interactive non-interactive mode, no prompts are used -P, --preserve-groups preserve group vector instead of setting to target's -p, --prompt=prompt use the specified password prompt -r, --role=role create SELinux security context with specified role -S, --stdin read password from standard input -s, --shell run shell as the target user; a command may also be specified -t, --type=type create SELinux security context with specified type -T, --command-timeout=timeout terminate command after the specified time limit -U, --other-user=user in list mode, display privileges for user -u, --user=user run command (or edit file) as specified user name or ID -V, --version display version information and exit -v, --validate update user's timestamp without running a command -- stop processing command line arguments //會顯示版本編號及指令的使用方式說明 [lxb@lnh ~]$ sudo -l [sudo] password for lxb: Matching Defaults entries for lxb on lnh: !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin:/bin:/usr/sbin:/usr/bin User lxb may run the following commands on lnh: (ALL) /usr/sbin/useradd //因為sudo在第一次執行時或是在N分鐘內沒有執行(N默認為5)會問密碼,這個參數 是重新做一次確認,如果超過N分鐘,也會問密碼
7. 管理命令
w //顯示當前登錄到系統的用戶有哪些,以及其正在做什么
sleep //睡眠,寫腳本為防止上一個命令沒執行完下一命令就開始執行時可以加上sleep #
//表示停頓#秒后再執行后面的命令
sleep NUMBER[SUFFIX]...
SUFFIX:
s:秒,默認
m:分
h:小時
d:天
last //顯示/var/log/wtmp文件,顯示用戶登錄歷史及系統重啟歷史
-n # //顯示最近#次的相關信息
lastb //顯示/var/log/btmp文件,顯示用戶錯誤的登錄嘗試
-n # //顯示最近#次的相關信息
lastlog //顯示每個用戶最近一次成功登錄信息
-u username //顯示特定用戶最近的登錄信息
basename //顯示路徑基名
[root@lnh ~]# sleep 3 //睡眠3秒 [root@lnh ~]# sleep 3;echo 123 123 //3秒后打印123 [root@lnh ~]# time sleep 3 real0m3.021s user0m0.000s sys0m0.003s //統計這個命令執行的時間 [root@lnh ~]# whoami root //我是誰 [root@lnh ~]# who am i root pts/0 2022-06-30 11:24 (192.168.222.1) //我在哪里登錄的 登錄的時間 在哪個主機上面登錄的 [root@lnh ~]# who root tty1 2022-06-29 23:00 root pts/0 2022-06-30 11:24 (192.168.222.1) //有哪些登錄了我這個終端 [root@lnh ~]# w 15:55:29 up 20:56, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - Wed23 11:24m 0.02s 0.02s -bash root pts/0 192.168.222.1 11:24 1.00s 0.69s 0.00s w 在哪里登錄 登錄的ip地址 什么時間點 登錄時cpu的運行時間 這個家伙在干啥 [root@lnh ~]# last 111
-
Linux
+關注
關注
87文章
11420瀏覽量
212355 -
權限
+關注
關注
0文章
13瀏覽量
7335
原文標題:搞懂 Linux 權限管理,提升系統安全性與穩定性
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
諧波檢測與電力系統穩定性
電子負載的保護功能:如何保障電源測試的穩定性

如何有效地監控電力系統的運行狀態并保證系統安全性?

混合部署 | 在迅為RK3568上同時部署RT-Thread和Linux系統
如何選擇和使用發那科機床數據采集網關?確保數據的實時性、穩定性和安全性

VCO的頻率穩定性是什么
自動控制原理如何提高系統穩定性
自動控制原理怎么判斷系統的穩定性
環路增益的穩定性
影響放大器穩定性的因素
4針M5公頭產品耐用性和穩定性如何?

評論