日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

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

 liang1234_ 2019-02-21

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

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

1.su

        su是最簡(jiǎn)單的身份切換名,用su我們能夠進(jìn)行不論什么用戶的切換,一般都是su - username,然后輸入password就ok了,可是root用su切換到其它身份的時(shí)候是不須要輸入password的。起初我都是用su來切換的,后來老大看見了說我這樣的方式切換是不好的。你能夠嘗試其它的方式來切換。我認(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ì)路徑來運(yùn)行。這樣的方式僅僅是切換到root的身份。

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

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

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

2.sudo

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


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

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

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

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

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

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


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

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

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

        2).利用用戶組處理visudo:

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

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

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

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


        可是假設(shè)僅僅是運(yùn)行sudo passwd命令,改動(dòng)的就是root的password,當(dāng)然我們不希望普通用戶能具有改動(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).通過別名設(shè)置visudo

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

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

[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

        從上面來看。我們都僅僅是切換到別的用戶然后運(yùn)行命令,接著就切回到我們自己的用戶了。假設(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)慎了,由于這樣用戶user1。user2,user3等就直接切換到root了,切換后他們就是老大了。


        有沒有發(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)用戶的password。而sudo僅僅須要輸入自己的password,所以sudo能夠保護(hù)目標(biāo)用戶的password不外流的。當(dāng)幫root管理系統(tǒng)的時(shí)候,su是直接將root全部權(quán)利交給用戶。而sudo能夠更好分工,僅僅要配置好/etc/sudoers,這樣sudo能夠保護(hù)系統(tǒng)更安全,并且分工明白,有條不紊。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(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)遵守用戶 評(píng)論公約

    類似文章 更多