1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        搞懂 Linux 權(quán)限管理,提升系統(tǒng)安全性與穩(wěn)定性

        共 18220字,需瀏覽 37分鐘

         ·

        2024-11-12 17:43

        目錄

        • 權(quán)限管理

          • 4.1 linux安全上下文

          • 4.2 特殊權(quán)限

          • 2.1 修改權(quán)限的命令chmod

          • 2.2 修改文件屬主和屬組的命令chown

          • 1.權(quán)限簡(jiǎn)介

          • 2.權(quán)限管理命令

          • 3. 遮罩碼

          • 4. linux安全上下文與特殊權(quán)限

          • 5. 文件系統(tǒng)訪問(wèn)控制列表facl

          • 6. sudo

          • 7. 管理命令


        1.權(quán)限簡(jiǎn)介

        文件的權(quán)限主要針對(duì)三類(lèi)對(duì)象進(jìn)行定義:

        owner 屬主 u
        group 屬組 g
        other 其它 o

        每個(gè)文件針對(duì)每個(gè)訪問(wèn)者都定義了三種權(quán)限:

        權(quán)限 對(duì)應(yīng)的操作對(duì)象 權(quán)限說(shuō)明
        r 文件 可讀
        可以使用類(lèi)似cat等命令查看文件內(nèi)容
        w 文件 可寫(xiě)
        可以編輯或刪除此文件
        x 文件 可執(zhí)行,eXacutable
        可以在命令提示符下
        當(dāng)作命令提交給內(nèi)核運(yùn)行
        r 目錄 可以對(duì)此目錄執(zhí)行l(wèi)s以列出內(nèi)部的所有文件
        w 目錄 可以在此目錄中創(chuàng)建文件
        也可刪除此目錄中的文件
        x 目錄 可以使用cd切換進(jìn)此目錄
        也可以使用ls -l查看內(nèi)部文件的詳細(xì)信息

        權(quán)限的二進(jìn)制與十進(jìn)制轉(zhuǎn)換:

        2.權(quán)限管理命令

        2.1 修改權(quán)限的命令chmod

        //修改三類(lèi)用戶的權(quán)限:
        //語(yǔ)法:chmod MODE file,...
        -R //遞歸修改權(quán)限

        //修改某類(lèi)用戶或某些類(lèi)用戶權(quán)限:
        //u,g,o,a(用戶類(lèi)別)

        //chmod 用戶類(lèi)別=MODE file,.....
        //chmod 用戶類(lèi)別=MODE,用戶類(lèi)別=MODE file,.....

        //修改某類(lèi)的用戶某位或某些位權(quán)限:
        //u,g,o,a(用戶類(lèi)別)

        //chmod 用戶類(lèi)別+|-MODE file,.....
        //chmod 用戶類(lèi)別+|-MODE,用戶類(lèi)別+|-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的屬主寫(xiě)權(quán)限
        [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其他這里賦予它可以寫(xiě)的權(quán)限
        [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的屬組賦予可寫(xiě)和可執(zhí)行權(quán)限,它之前可讀權(quán)限消失了
        [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賦予可讀可寫(xiě)可執(zhí)行權(quán)限
        [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賦予可讀可寫(xiě)可執(zhí)行權(quán)限
        //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
        //遞歸修改權(quán)限
        //給tushanbu目錄下的333文件賦予可讀可寫(xiě)可執(zhí)行權(quán)限
        [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
        //也可以通過(guò)數(shù)字的方式賦予文件111可讀可寫(xiě)權(quán)限

        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. 遮罩碼

        為什么文件創(chuàng)建以后默認(rèn)權(quán)限是644?
        為什么目錄創(chuàng)建以后默認(rèn)權(quán)限是755?

        這是由遮罩碼umask來(lái)控制的。

        從名字就能看出來(lái),遮罩碼umask是用來(lái)隱藏一些權(quán)限的。舉例:如果你不想讓人家認(rèn)出你,你會(huì)怎么辦?

        文件最終的權(quán)限為:

        666-umask
        目錄最終的權(quán)限為:

        777-umask
        文件默認(rèn)是不能具有執(zhí)行權(quán)限的,如果算得的結(jié)果有執(zhí)行權(quán)限則將其權(quán)限整體加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
        //因?yàn)槲募臐M權(quán)限是666,如果有x執(zhí)行權(quán)限在那么就會(huì)整體權(quán)限加一,
        目錄的滿權(quán)限是777,可以看見(jiàn)遮罩碼是只能改變后面創(chuàng)建的文件或者目錄權(quán)限,之前已經(jīng)存在的不會(huì)改變

        4. linux安全上下文與特殊權(quán)限

        4.1 linux安全上下文

        前提:進(jìn)程有屬主和屬組;文件有屬主和屬組

        任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程,取決于發(fā)起者對(duì)程序文件是否擁有可執(zhí)行權(quán)限;
        啟動(dòng)為進(jìn)程后,其進(jìn)程的屬主為發(fā)起者,屬組為發(fā)起者所屬的組
        進(jìn)程訪問(wèn)文件時(shí)的權(quán)限取決于進(jìn)程的發(fā)起者:
        進(jìn)程的發(fā)起者是文件的屬主時(shí),則應(yīng)用文件屬主權(quán)限
        進(jìn)程的發(fā)起者是文件的屬組時(shí),則應(yīng)用文件屬組權(quán)限
        應(yīng)用文件“其它”權(quán)限

        4.2 特殊權(quán)限

        linux默認(rèn)權(quán)限是根據(jù)linux安全上下文的方式來(lái)控制的,而特殊權(quán)限的存在打破了linux安全上下文的規(guī)則。
        SUID(4) //運(yùn)行程序時(shí),這個(gè)程序啟動(dòng)的進(jìn)程的屬主是程序文件自身的屬主,而不是啟動(dòng)者為屬主
        chmod u+s file
        chmod u-s file
        //如果file本身原來(lái)就有執(zhí)行權(quán)限,則SUID顯示為s,否則顯示為S

        SGID(2) //運(yùn)行程序時(shí),這個(gè)程序啟動(dòng)的進(jìn)程的屬組是程序文件自身的屬組,而不是啟動(dòng)者所屬的基本組
        //默認(rèn)情況下,用戶創(chuàng)建文件時(shí),其屬組為此用戶所屬的基本組;
        //一旦某目錄被設(shè)定了SGID,則對(duì)此目錄有寫(xiě)權(quán)限的用戶在此目錄中創(chuàng)建的文件或目錄,其所屬的組
        //為此設(shè)定了SGID的目錄的屬組
        chmod g+s DIR
        chmod g-s DIR
        //如果file本身原來(lái)就有執(zhí)行權(quán)限,則SGID顯示為s,否則顯示為S

        Sticky(1) //在一個(gè)公共目錄,每個(gè)人都能創(chuàng)建文件,刪除自己的文件,但是不能刪除別人創(chuàng)建的文件
        chmod o+t DIR
        chmod o-t DIR
        //如果DIR本身原來(lái)就有執(zhí)行權(quán)限,則Sticky顯示為t,否則顯示為T(mén)

        4755 //有SUID,文件權(quán)限為755
        2755 //有SGID,文件權(quán)限為755
        1755 //有Sticky,文件權(quán)限為755
        //這里前面的4、2、1分別表示SUID、SGID、Sticky
        SUID:


        //可以看見(jiàn)sleep這個(gè)命令程序本來(lái)的屬主是root,但是你在另外一個(gè)用戶上面啟動(dòng)這個(gè)命令程序后它的進(jìn)程屬主變成了啟動(dòng)它的用戶而不是root本來(lái)這個(gè)屬主,不過(guò)你可以給這個(gè)命令程序賦予suid權(quán)限后,再次進(jìn)行測(cè)試發(fā)現(xiàn)最終其屬主還是root本身
        //此處w后面出現(xiàn)一個(gè)小s代表賦予執(zhí)行權(quán)限,如果是大S那么就是這條命令本來(lái)就沒(méi)有執(zhí)行權(quán)限


        //可以看見(jiàn)通過(guò)設(shè)置u-s可以取消那個(gè)權(quán)限也可以設(shè)置755權(quán)限后就沒(méi)有suid權(quán)限然后這條執(zhí)行命令的用戶回到了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的屬組設(shè)置成為了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 //按道理說(shuō)這里234的屬組應(yīng)該是lxb,但是我們的默認(rèn)情況下會(huì)讓root為屬組
        [root@lnh tushanbu]# chmod 2755 abc //賦予abc這個(gè)命令sgid權(quán)限
        [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 //可以看見(jiàn)456的屬組還是lxb本身
        //正常情況下我們就算是修改了屬組但是默認(rèn)下還是之前目錄本身沒(méi)有修改前的屬組,但是加上sgid權(quán)限后可以把修改后的屬組變成它修改后的屬組
        [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 //沒(méi)有執(zhí)行權(quán)限是大寫(xiě)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
        //有執(zhí)行權(quán)限是小寫(xiě)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權(quán)限,就是說(shuō)在這個(gè)公共目錄中,你可以創(chuàng)建并且刪除自己的東西,其他的還是需要管理員給予權(quán)限
        [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
        //可以刪除自己的東西和修改自己的東西權(quán)限

        5. 文件系統(tǒng)訪問(wèn)控制列表facl

        facl(Filesystem Access Control List),利用文件擴(kuò)展保存額外的訪問(wèn)控制權(quán)限。

        //語(yǔ)法:setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
        -m //設(shè)定
        u:UID:perm
        g:GID:perm
        //setfacl -m u:test:rw file
        //setfacl -m g:test:rw file
        //如果要為某個(gè)目錄設(shè)定默認(rèn)的訪問(wèn)控制列表,只需要設(shè)定時(shí)在u或g前面加上d即可。 如:
        //setfacl -m d:u:test:rw file,此時(shí)在此目錄中創(chuàng)建的文件均繼承此訪問(wèn)控制列表所設(shè)置的權(quán)限
        -x //取消
        u:UID
        g:GID
        //setfacl -x u:test file
        //setfacl -x g:test file
        -b //Remove all

        //語(yǔ)法: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 u:lxb:x 111 //設(shè)置lxb這個(gè)用戶對(duì)111有執(zhí)行權(quán)限
        [root@lnh tmp]# getfacl 111
        # file: 111
        # owner: lxb
        # group: lxb
        user::rw-
        user:lxb:--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 清除了它的所有權(quán)限

        6. sudo

        sudo可以實(shí)現(xiàn)某個(gè)用戶能夠以另外哪一個(gè)用戶的身份通過(guò)哪些主機(jī)執(zhí)行什么命令

        sudo的配置文件:/etc/sudoers

        使用visudo命令進(jìn)行sudo的配置,每一行就是一個(gè)sudo條目,條目格式如下:

        who which_hosts=(runas) command
        who:User_Alias,表示運(yùn)行命令者的身份
        which_hosts:Host_Alias,通過(guò)哪些主機(jī)
        runas:Runas_Alias,以哪個(gè)用戶的身份
        command:Cmnd_Alias,運(yùn)行哪些命令
        別名必須全部而且只能使用大寫(xiě)英文字母的組合,可以使用感嘆號(hào)取反

        別名分類(lèi):

        用戶別名:
        User_Alias NETWORKADMIN =
        用戶的用戶名
        組名,使用%引導(dǎo)
        還可以其它已經(jīng)定義的用戶別名
        主機(jī)別名:
        Host_Alias =
        主機(jī)名
        IP地址
        網(wǎng)絡(luò)地址
        其它主機(jī)別名
        Runas別名:
        Runas_Alias =
        用戶名
        %組名
        其它的Runas別名
        命令別名:
        Cmnd_Alias =
        命令路徑
        目錄(此目錄內(nèi)的所有命令)
        其它已定義的命令別名
        //sudo命令語(yǔ)法:sudo [options] COMMAND
        -V //顯示版本編號(hào)
        -h //會(huì)顯示版本編號(hào)及指令的使用方式說(shuō)明
        -l //列出當(dāng)前用戶可以使用的所有sudo類(lèi)命令
        -v //因?yàn)閟udo在第一次執(zhí)行時(shí)或是在N分鐘內(nèi)沒(méi)有執(zhí)行(N默認(rèn)為5)會(huì)問(wèn)密碼,這個(gè)參數(shù)
        //是重新做一次確認(rèn),如果超過(guò)N分鐘,也會(huì)問(wèn)密碼
        -k //讓認(rèn)證信息失效,如果不指定-k,默認(rèn)認(rèn)證信息在5分鐘后失效
        -b //將要執(zhí)行的指令放在后臺(tái)執(zhí)行
        -u USERNAME //以指定的用戶名執(zhí)行命令,默認(rèn)為root
        通過(guò)visudo命令進(jìn)入:

        //設(shè)置允許lxb用戶使用/usr/sbin/useradd這個(gè)命令

        [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
        //要設(shè)置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
        //因?yàn)閯倓傒斎肓嗣艽a所以這里不用
        [lxb@lnh ~]$ sudo userdel -r ml
        Sorry, user lxb is not allowed to execute '/sbin/userdel -r ml' as root on lnh.
        //只能創(chuàng)建,不能刪除用戶
        [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
        //顯示版本編號(hào)
        [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]
        [<command>]
        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
        //會(huì)顯示版本編號(hào)及指令的使用方式說(shuō)明
        [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
        //因?yàn)閟udo在第一次執(zhí)行時(shí)或是在N分鐘內(nèi)沒(méi)有執(zhí)行(N默認(rèn)為5)會(huì)問(wèn)密碼,這個(gè)參數(shù) 是重新做一次確認(rèn),如果超過(guò)N分鐘,也會(huì)問(wèn)密碼

        7. 管理命令

        w //顯示當(dāng)前登錄到系統(tǒng)的用戶有哪些,以及其正在做什么
        sleep //睡眠,寫(xiě)腳本為防止上一個(gè)命令沒(méi)執(zhí)行完下一命令就開(kāi)始執(zhí)行時(shí)可以加上sleep #
        //表示停頓#秒后再執(zhí)行后面的命令
        sleep NUMBER[SUFFIX]...
        SUFFIX:
        s:秒,默認(rèn)
        m:分
        h:小時(shí)
        d:天
        last //顯示/var/log/wtmp文件,顯示用戶登錄歷史及系統(tǒng)重啟歷史
        -n # //顯示最近#次的相關(guān)信息
        lastb //顯示/var/log/btmp文件,顯示用戶錯(cuò)誤的登錄嘗試
        -n # //顯示最近#次的相關(guān)信息
        lastlog //顯示每個(gè)用戶最近一次成功登錄信息
        -u username //顯示特定用戶最近的登錄信息
        basename //顯示路徑基名

        [root@lnh ~]# sleep 3
        //睡眠3秒
        [root@lnh ~]# sleep 3;echo 123
        123
        //3秒后打印123
        [root@lnh ~]# time sleep 3

        real 0m3.021s
        user 0m0.000s
        sys 0m0.003s
        //統(tǒng)計(jì)這個(gè)命令執(zhí)行的時(shí)間
        [root@lnh ~]# whoami
        root
        //我是誰(shuí)
        [root@lnh ~]# who am i
        root pts/0 2022-06-30 11:24 (192.168.222.1)
        //我在哪里登錄的 登錄的時(shí)間 在哪個(gè)主機(jī)上面登錄的
        [root@lnh ~]# who
        root tty1 2022-06-29 23:00
        root pts/0 2022-06-30 11:24 (192.168.222.1)
        //有哪些登錄了我這個(gè)終端
        [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地址 什么時(shí)間點(diǎn) 登錄時(shí)cpu的運(yùn)行時(shí)間 這個(gè)家伙在干啥
        [root@lnh ~]# last 111

        鏈接:https://www.cnblogs.com/tushanbu/p/16456831.html

        (版權(quán)歸原作者所有,侵刪)


        瀏覽 89
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产成人性生活 | 60一70欧美老妇在线 | 1313午夜精品美女爱做视频 | 天美传媒换妻黄色三级片 | 美女视频黄片 | 一级黄色视频看看 | 影音先锋成人中文在线视频 | 乱伦小说视频网 | 成人精品午夜无码免费 | 国产激情自拍片 |