小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

linux權(quán)限之su和sudo的差別

 liang1234_ 2019-02-21

        我們都知道非常多的文件都僅僅有root有權(quán)限來(lái)改動(dòng),那么在我們平時(shí)的開(kāi)發(fā)過(guò)程中都建議使用一般賬號(hào)來(lái)登錄進(jìn)行開(kāi)發(fā)。還記得前面說(shuō)到的ssh嗎。我們也是將同意root登錄設(shè)置成no。到必要的時(shí)候再切換到root來(lái)進(jìn)行操作,這樣就不至于有風(fēng)險(xiǎn)。

那么我們?cè)鯓忧袚Q身份呢。

1.su

        su是最簡(jiǎn)單的身份切換名,用su我們能夠進(jìn)行不論什么用戶(hù)的切換,一般都是su - username,然后輸入password就ok了,可是root用su切換到其它身份的時(shí)候是不須要輸入password的。起初我都是用su來(lái)切換的,后來(lái)老大看見(jiàn)了說(shuō)我這樣的方式切換是不好的。你能夠嘗試其它的方式來(lái)切換。我認(rèn)為這樣切換非常方便啊,那究竟是不好在哪里呢。后面再看另外一種身份的切換方式就知道了。

        一般我們切換身份都是切換到root,然后進(jìn)行一些僅僅有root能干的事,比方改動(dòng)配置文件。比方下載安裝軟件。這些都僅僅能是root才有權(quán)限干的事。切換到root能夠是單純的su,或者是su -和su - root,后面兩個(gè)是一樣的意思。


        單純使用su切換到root,讀取變量的方式是non-login shell,這樣的方式下非常多的變量都不會(huì)改變。尤其是PATH。所以root用的非常多的命令都僅僅能用絕對(duì)路徑來(lái)運(yùn)行。這樣的方式僅僅是切換到root的身份。

而用su -這樣的方式的話(huà),是login shell方式,它是先以root身份登錄然后再運(yùn)行別的操作。

        假設(shè)我們僅僅要切換到root做一次操作就好了,僅僅要在su后面加個(gè)-c參數(shù)就好了。運(yùn)行完這次操作后。又會(huì)自己主動(dòng)切換回我們自己的身份。非常方便。

        那么假設(shè)有非常多人管理這個(gè)主機(jī)的話(huà),那不是非常多人都要知道root的password嗎,并且可能有的人僅僅是單純的進(jìn)行一次root操作就能夠了,這個(gè)時(shí)候,su方式就不是非常好,rootpassword越少人知道越好,越少人知道就越安全,這時(shí)就須要另外一種方式了。

2.sudo

        相比于su切換身份須要用戶(hù)的password,常常性的是須要rootpassword,sudo僅僅是須要自己的password,就能夠以其它用戶(hù)的身份來(lái)運(yùn)行命令。常常是以root的身份運(yùn)行命令。也并不是全部人都能夠用sudo:


        這里我要查看/etc/shadow這個(gè)文件的前三行,可是卻發(fā)現(xiàn)看不了,提示的錯(cuò)誤是說(shuō)我當(dāng)前這個(gè)用戶(hù)不在sudoers這個(gè)文件,所以sudo是依賴(lài)于/etc/sudoers這個(gè)配置文件的。

sudo的運(yùn)行有這樣一個(gè)流程:

        1).當(dāng)用戶(hù)運(yùn)行sudo時(shí),系統(tǒng)于/etc/sudoers文件里查找該用戶(hù)是否有運(yùn)行sudo的權(quán)限;

        2).若用戶(hù)具有可運(yùn)行sudo的權(quán)限。那么讓用戶(hù)輸入用戶(hù)自己的password,注意這里輸入的是用戶(hù)自己的password。

        3).假設(shè)password正確。變開(kāi)始進(jìn)行sudo后面的命令,root運(yùn)行sudo是不須要輸入password的,切換到的身份與運(yùn)行者身份同樣的時(shí)候。也不須要輸入password。

        以下看看/etc/sudoers這個(gè)配置文件:


        為何剛開(kāi)始僅僅有root能運(yùn)行sudo,切換到root身份通過(guò)visudo查看/etc/sudoers這個(gè)配置文件,假設(shè)是vim /etc/sudoers是能夠查看的,可是不能改動(dòng),由于sudoers這個(gè)文件是由語(yǔ)法的,僅僅能通過(guò)visudo來(lái)改動(dòng)。第一個(gè)紅色方框那行代碼,這行代碼是什么意思呢。第一列root不用多說(shuō),是用戶(hù)賬號(hào),第二列的ALL意思是登陸者的來(lái)源主機(jī)名,第三列等號(hào)右邊小括號(hào)里的ALL是代表能夠切換的身份。第四列ALL是可運(yùn)行的命令。

        1).單個(gè)用戶(hù)的sudoers語(yǔ)法:

        假設(shè)我要我當(dāng)前這個(gè)用戶(hù)能運(yùn)行root的全部操作,那么我僅僅要加一行l(wèi)earnpython ALL=(ALL) ALL。那么假設(shè)有非常多人須要運(yùn)行sudo。那不是要寫(xiě)編寫(xiě)非常多行啊,這樣不是非常麻煩,這樣就要用到用戶(hù)組了。

        2).利用用戶(hù)組處理visudo:

        看看第二個(gè)紅色方框那行代碼。%wheel代表wheel用戶(hù)組。假設(shè)我們將須要運(yùn)行root全部操作的用戶(hù)都加入到wheel用戶(hù)組,或者我們自己定義的用戶(hù)組。然后加入一行代碼。那么就不用一個(gè)用戶(hù)一個(gè)用戶(hù)的加入進(jìn)來(lái)了,這樣不是非常省事啊。

        3).限制用戶(hù)sudo的權(quán)限:

        可是常常我們不須要用戶(hù)有那么大的權(quán)限。僅僅要讓他們具有他們負(fù)責(zé)范圍的權(quán)限就能夠了。比方有的有的人來(lái)管理password,我們就僅僅讓他能進(jìn)行password的管理,而不讓他有別的權(quán)限,這樣就須要權(quán)限的控制了。

假設(shè)我讓我當(dāng)前用戶(hù)來(lái)管理password。即learnpython這個(gè)用戶(hù)能使用passwd這個(gè)命令來(lái)幫root改動(dòng)用戶(hù)password。僅僅要加這行l(wèi)earnpython ALL=(root) /usr/bin/passwd,那么learnpython這個(gè)用戶(hù)就能夠使用passwd這個(gè)命令了:


        可是假設(shè)僅僅是運(yùn)行sudo passwd命令,改動(dòng)的就是root的password,當(dāng)然我們不希望普通用戶(hù)能具有改動(dòng)rootpassword的權(quán)限,那么在visudo的時(shí)候就須要將命令的參數(shù)限制好。如改成這樣:

[root@localhost ~]# visudo
learnpython    ALL=(root)    !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root

        4).通過(guò)別名設(shè)置visudo

        查看sudoers這個(gè)文件的時(shí)候。你會(huì)看見(jiàn)User_Alias。Host_Alias和Cmnd_Alias這些東西,他們都是一些別名,User_Alias表示具有sudo權(quán)限的用戶(hù)列表,就是第一列參數(shù)。Host_Alias表示主機(jī)的列表。就是第二列參數(shù)。Cmnd_Alias表示同意運(yùn)行命令的列表,就是第四列參數(shù)。還有個(gè)Runas_Alias。我初始的sudoers里是沒(méi)有的,這個(gè)表示用戶(hù)以什么身份登錄。也就是第三列參數(shù)。

        所以假設(shè)有幾個(gè)password管理員的話(huà)就能夠加上例如以下代碼:

[root@localhost ~]# visudo
User_Alias PWMNG = manager1, manager2, manager3
Cmnd_Alias PWCMD = !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
PWMNG    ALL=(root)    PWCMD

        5).sudo搭配su

        從上面來(lái)看。我們都僅僅是切換到別的用戶(hù)然后運(yùn)行命令,接著就切回到我們自己的用戶(hù)了。假設(shè)我們要像su那樣直接切換到root。然后干自己想干的。這個(gè)時(shí)候,就要將命令改動(dòng)成/bin/su -。例如以下:

[root@localhost ~]# visudo
User_Alias ADMINS = user1, user2, user3
ADMINS    ALL=(root)    /bin/su -

        當(dāng)然這個(gè)是須要謹(jǐn)慎了,由于這樣用戶(hù)user1。user2,user3等就直接切換到root了,切換后他們就是老大了。


        有沒(méi)有發(fā)現(xiàn),當(dāng)我們連續(xù)使用sudo的時(shí)候,在一定時(shí)間內(nèi)是不用再次輸入我們的password,這個(gè)事實(shí)上是系統(tǒng)自己設(shè)定的,在五分鐘之內(nèi)運(yùn)行sudo僅僅須要輸入一次password就能夠了。

3.總結(jié)

        了解完su和sudo,是不是發(fā)現(xiàn)sudo有太多的優(yōu)點(diǎn)了。su方式切換是須要輸入目標(biāo)用戶(hù)的password。而sudo僅僅須要輸入自己的password,所以sudo能夠保護(hù)目標(biāo)用戶(hù)的password不外流的。當(dāng)幫root管理系統(tǒng)的時(shí)候,su是直接將root全部權(quán)利交給用戶(hù)。而sudo能夠更好分工,僅僅要配置好/etc/sudoers,這樣sudo能夠保護(hù)系統(tǒng)更安全,并且分工明白,有條不紊。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多