最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux命令學(xué)習(xí)之用戶(hù)切換su,sudo命令詳解

 更新時(shí)間:2023年02月08日 11:24:03   作者:試問(wèn)清風(fēng)幾許  
在操作過(guò)程中需要使用特定的用戶(hù)進(jìn)行特定的操作,多數(shù)情況下是因?yàn)闄?quán)限,比如要修改一個(gè)文件,只有root用戶(hù)有權(quán)限修改,那么就要切換到root用戶(hù)下進(jìn)行操作,本文給大家講解Linux命令學(xué)習(xí)之用戶(hù)切換su,sudo命令,感興趣的朋友跟隨小編一起看看吧

用戶(hù)切換相關(guān)命令

為什么要進(jìn)行用戶(hù)切換?

在操作過(guò)程中需要使用特定的用戶(hù)進(jìn)行特定的操作,多數(shù)情況下是因?yàn)闄?quán)限,比如要修改一個(gè)文件,只有root用戶(hù)有權(quán)限修改,那么就要切換到root用戶(hù)下進(jìn)行操作。切換用戶(hù)一般有兩個(gè)命令:

1. su命令

su命令不加參數(shù),默認(rèn)切到root用戶(hù),需要輸入root用戶(hù)密碼進(jìn)行驗(yàn)證,

                                            

exit命令可退出root用戶(hù)。

su命令可以加一個(gè)“-”再加上用戶(hù)名,此時(shí),不但身份變化了,同時(shí)也擁有了此用戶(hù)的“用戶(hù)環(huán)境”,比如用戶(hù)家目錄以及此用戶(hù)的其它個(gè)性化設(shè)置。

                                                         

普通用戶(hù)切換其它用戶(hù)需要知道其它用戶(hù)的密碼,root用戶(hù)使用su命令切換其它用戶(hù),不需要知道用戶(hù)密碼

2. sudo命令

Linux是多用戶(hù)多任務(wù)的操作系統(tǒng), 共享該系統(tǒng)的用戶(hù)往往不只一個(gè)。
出于安全性考慮, 有必要通過(guò)useradd創(chuàng)建一些非root用戶(hù), 只讓它們擁有不完全的權(quán)限; 如有必要,再來(lái)提升權(quán)限執(zhí)行。

sudo就是來(lái)解決這個(gè)需求的: 這些非root用戶(hù)不需要知道root的密碼,就可以提權(quán)到root,執(zhí)行一些root才能執(zhí)行的命令。

執(zhí)行sudo -u <用戶(hù)名> <命令>, 將允許當(dāng)前用戶(hù),提權(quán)到<用戶(hù)名>的身份,再執(zhí)行后面的<命令>, 即使<命令>原本需要root權(quán)限。
提權(quán)到<用戶(hù)名>身份時(shí),是以<用戶(hù)名>的身份來(lái)執(zhí)行命令的,因此創(chuàng)建的文件默認(rèn)屬于<用戶(hù)名>用戶(hù)。

因此,當(dāng)userB執(zhí)行如下命令時(shí):

sudo -u userA touch /tmp/belong-to-who.tmp

創(chuàng)建的/tmp/belong-to-who.tmp 文件屬于用戶(hù)userA。

如果不帶-u, 則默認(rèn)使用root用戶(hù),而大多數(shù)時(shí)候sudo都是要提權(quán)到root的,所以-u <用戶(hù)名>可以省略為:

sudo <命令>

需要注意的是: 執(zhí)行sudo時(shí)輸入的密碼是當(dāng)前用戶(hù)的密碼, 并非<用戶(hù)名>的密碼。
sudo -u <用戶(hù)名>su - <用戶(hù)名>相比:
前者需要輸入當(dāng)前用戶(hù)的密碼,提權(quán)到<用戶(hù)名>身份執(zhí)行命令后返回當(dāng)前用戶(hù);
后者則是輸入目標(biāo)用戶(hù)的密碼,切換到目標(biāo)用戶(hù)。

賦予用戶(hù)sudo操作的權(quán)限

通過(guò)useradd添加的用戶(hù),并不具備sudo權(quán)限。在ubuntu/centos等系統(tǒng)下, 需要將用戶(hù)加入admin組或者wheel組或者sudo組。

以root用戶(hù)身份執(zhí)行如下命令, 將用戶(hù)加入wheel/admin/sudo組:

usermod -a -G wheel <用戶(hù)名>

如果提示wheel組不存在, 則還需要先創(chuàng)建該組:

groupadd wheel

用公式講解/etc/sudoers的內(nèi)容

sudo的權(quán)限控制可以在/etc/sudoers文件中查看到。

如果想要控制某個(gè)用戶(hù)(或某個(gè)組用戶(hù))只能執(zhí)行root權(quán)限中的一部分命令, 或者允許某些用戶(hù)使用sudo時(shí)不需要輸入密碼,就需要對(duì)該文件有所了解。

一般來(lái)說(shuō),通過(guò)cat /etc/sudoers指令來(lái)查看該文件, 會(huì)看到如下幾行代碼:

root   ALL=(ALL:ALL) ALL
%wheel ALL=(ALL) ALL
%sudo  ALL=(ALL:ALL) ALL

對(duì)/etc/sudoers文件進(jìn)行編輯的代碼公式可以概括為:

授權(quán)用戶(hù)/組 主機(jī)=[(切換到哪些用戶(hù)或組)] [是否需要輸入密碼驗(yàn)證] 命令1,命令2,...

凡是[ ]中的內(nèi)容, 都能省略; 命令和命令之間用,號(hào)分隔;

為了方便說(shuō)明, 將公式的各個(gè)部分稱(chēng)呼為字段1 - 字段5:

授權(quán)用戶(hù)/組 主機(jī)  =[(切換到哪些用戶(hù)或組)] [是否需要輸入密碼驗(yàn)證] 命令1,命令2,...
字段1      字段2  =[(字段3)] [字段4] 字段5

字段3、字段4,是可以省略的。

在上面的默認(rèn)例子中, "字段1"不以%號(hào)開(kāi)頭的表示"將要授權(quán)的用戶(hù)", 比如例子中的root;
%號(hào)開(kāi)頭的表示"將要授權(quán)的組", 比如例子中的%wheel組 和 %sudo組。

"字段2"表示允許登錄的主機(jī), ALL表示所有; 如果該字段不為ALL,表示授權(quán)用戶(hù)只能在某些機(jī)器上登錄本服務(wù)器來(lái)執(zhí)行sudo命令. 比如:

jack mycomputer=/usr/sbin/reboot,/usr/sbin/shutdown

表示: 普通用戶(hù)jack在主機(jī)(或主機(jī)組)mycomputer上, 可以通過(guò)sudo執(zhí)行reboot和shutdown兩個(gè)命令。"字段3"和"字段4"省略。

"字段3"如果省略, 相當(dāng)于(root:root),表示可以通過(guò)sudo提權(quán)到root; 如果為(ALL)或者(ALL:ALL), 表示能夠提權(quán)到(任意用戶(hù):任意用戶(hù)組)。

請(qǐng)注意,"字段3"如果沒(méi)省略,必須使用( )雙括號(hào)包含起來(lái)。這樣才能區(qū)分是省略了"字段3"還是省略了"字段4"。

"字段4"的可能取值是NOPASSWD:。請(qǐng)注意NOPASSWD后面帶有冒號(hào):。表示執(zhí)行sudo時(shí)可以不需要輸入密碼。比如:

lucy ALL=(ALL) NOPASSWD: /bin/useradd

表示: 普通用戶(hù)lucy可以在任何主機(jī)上, 通過(guò)sudo執(zhí)行/bin/useradd命令, 并且不需要輸入密碼.

又比如:

peter ALL=(ALL) NOPASSWD: ALL

表示: 普通用戶(hù)peter可以在任何主機(jī)上, 通過(guò)sudo執(zhí)行任何命令, 并且不需要輸入密碼。

"字段5"是使用逗號(hào)分開(kāi)一系列命令,這些命令就是授權(quán)給用戶(hù)的操作; ALL表示允許所有操作。

你可能已經(jīng)注意到了, 命令都是使用絕對(duì)路徑, 這是為了避免目錄下有同名命令被執(zhí)行,從而造成安全隱患。

如果你將授權(quán)寫(xiě)成如下安全性欠妥的格式:

lucy ALL=(ALL) chown,chmod,useradd

那么用戶(hù)就有可能創(chuàng)建一個(gè)他自己的程序, 也命名為userad, 然后放在它的本地路徑中, 如此一來(lái)他就能夠使用root來(lái)執(zhí)行這個(gè)"名為useradd的程序"。這是相當(dāng)危險(xiǎn)的!

命令的絕對(duì)路徑可通過(guò)which指令查看到: 比如which useradd可以查看到命令useradd的絕對(duì)路徑: /usr/sbin/useradd

公式還要擴(kuò)充

例子1:

papi ALL=(root) NOPASSWD: /bin/chown,/usr/sbin/useradd

表示: 用戶(hù)papi能在所有可能出現(xiàn)的主機(jī)上, 提權(quán)到root下執(zhí)行/bin/chown, 不必輸入密碼; 但運(yùn)行/usr/sbin/useradd 命令時(shí)需要密碼.

這是因?yàn)?code>NOPASSWD:只影響了其后的第一個(gè)命令: 命令1.

上面給出的公式只是簡(jiǎn)化版,完整的公式如下:

授權(quán)用戶(hù)/組 主機(jī)=[(切換到哪些用戶(hù)或組)] [是否需要輸入密碼驗(yàn)證] 命令1, [(字段3)] [字段4] 命令2, ...

在具有sudo操作的用戶(hù)下, 執(zhí)行sudo -l可以查看到該用戶(hù)被允許和被禁止運(yùn)行的命令.

通配符和取消命令

例子2:

papi ALL=/usr/sbin/*,/sbin/*,!/usr/sbin/fdisk

用例子2來(lái)說(shuō)明通配符*的用法, 以及命令前面加上!號(hào)表示取消該命令。

該例子的意思是: 用戶(hù)papi在所有可能出現(xiàn)的主機(jī)上, 能夠運(yùn)行目錄/usr/sbin和/sbin下所有的程序, 但fdisk除外.

開(kāi)始編輯

“你講了這么多,但是在實(shí)踐中,我去編輯/etc/sudoers文件,系統(tǒng)提示我沒(méi)權(quán)限啊,怎么辦?”

這是因?yàn)?code>/etc/sudoers的內(nèi)容如此敏感,以至于該文件是只讀的。所以,編輯該文件前,請(qǐng)確認(rèn)清楚你知道自己正在做什么。

強(qiáng)烈建議通過(guò)visudo命令來(lái)修改該文件,通過(guò)visudo修改,如果配置出錯(cuò),會(huì)有提示。

不過(guò),系統(tǒng)文檔推薦的做法,不是直接修改/etc/sudoers文件,而是將修改寫(xiě)在/etc/sudoers.d/目錄下的文件中。

如果使用這種方式修改sudoers,需要在/etc/sudoers文件的最后行,加上#includedir /etc/sudoers.d一行(默認(rèn)已有):

#includedir /etc/sudoers.d

注意了,這里的指令#includedir是一個(gè)整體, 前面的#號(hào)不能丟,并非注釋?zhuān)膊荒茉?code>#號(hào)后有空格。

任何在/etc/sudoers.d/目錄下,不以~號(hào)結(jié)尾的文件和不包含.號(hào)的文件,都會(huì)被解析成/etc/sudoers的內(nèi)容。

文檔中是這么說(shuō)的:

# This will cause sudo to read and parse any files in the /etc/sudoers.d
# directory that do not end in '~' or contain a '.' character.
# Note that there must be at least one file in the sudoers.d directory (this
# one will do), and all files in this directory should be mode 0440.
# Note also, that because sudoers contents can vary widely, no attempt is
# made to add this directive to existing sudoers files on upgrade.
# Finally, please note that using the visudo command is the recommended way
# to update sudoers content, since it protects against many failure modes.

其他小知識(shí)

輸入密碼時(shí)有反饋

當(dāng)使用sudo后輸入密碼,并不會(huì)顯示任何東西 —— 甚至連常規(guī)的星號(hào)都沒(méi)有。有個(gè)辦法可以解決該問(wèn)題。

打開(kāi)/etc/sudoers文件找到下述一行:

Defaults env_reset

修改成:

Defaults        env_reset,pwfeedback

修改sudo會(huì)話時(shí)間

如果你經(jīng)常使用sudo 命令,你肯定注意到過(guò)當(dāng)你成功輸入一次密碼后,可以不用再輸入密碼就可以運(yùn)行幾次sudo命令。
但是一段時(shí)間后,sudo 命令會(huì)再次要求你輸入密碼。默認(rèn)是15分鐘,該時(shí)間可以調(diào)整。添加timestamp_timeout=分鐘數(shù)即可。
時(shí)間以分鐘為單位,-1表示永不過(guò)期,但強(qiáng)烈不推薦。

比如我希望將時(shí)間延長(zhǎng)到1小時(shí),還是打開(kāi)/etc/sudoers文件找到下述一行:

Defaults env_reset

修改成:

Defaults        env_reset,pwfeedback,timestamp_timeout=60

到此這篇關(guān)于Linux命令學(xué)習(xí)之用戶(hù)切換su,sudo的文章就介紹到這了,更多相關(guān)Linux用戶(hù)切換su,sudo內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • shell批量設(shè)置key過(guò)期時(shí)間的兩種方法步驟

    shell批量設(shè)置key過(guò)期時(shí)間的兩種方法步驟

    本文主要介紹了shell批量設(shè)置key過(guò)期時(shí)間的兩種方法步驟,包括設(shè)置?Redis?db1中所有key的過(guò)期時(shí)間,和設(shè)置未設(shè)置過(guò)期時(shí)間key的過(guò)期時(shí)間為1小時(shí),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • Linux Shell腳本系列教程(七):腳本調(diào)試

    Linux Shell腳本系列教程(七):腳本調(diào)試

    這篇文章主要介紹了Linux Shell腳本系列教程(七):腳本調(diào)試,本文講解了Bash內(nèi)建調(diào)試功能和自定義調(diào)試功能等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • ssh expect自動(dòng)登錄的腳本代碼

    ssh expect自動(dòng)登錄的腳本代碼

    ssh遠(yuǎn)程登錄,每次都要指定一堆用戶(hù)名和密碼,現(xiàn)要求實(shí)現(xiàn)自動(dòng)登錄
    2013-02-02
  • ubuntu修改terminal終端的主機(jī)名的實(shí)現(xiàn)方法

    ubuntu修改terminal終端的主機(jī)名的實(shí)現(xiàn)方法

    這篇文章主要介紹了ubuntu修改terminal終端的主機(jī)名的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文能幫助大家,需要的朋友可以參考下
    2017-08-08
  • Linux命令行里的“瑞士軍刀”

    Linux命令行里的“瑞士軍刀”

    本文說(shuō)的瑞士軍刀是指那些簡(jiǎn)單的一句命令就能完成其它高級(jí)語(yǔ)言一大片代碼才能完成的工作
    2013-07-07
  • 詳解Linux常用的四種壓縮命令

    詳解Linux常用的四種壓縮命令

    這篇文章主要詳細(xì)介紹了Linux常用的四種壓縮命令,tar命令,gzip命令,rar命令和zip命令,并通過(guò)代碼示例給大家講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-03-03
  • Shell腳本批量重命名文件后綴的3種實(shí)現(xiàn)

    Shell腳本批量重命名文件后綴的3種實(shí)現(xiàn)

    這篇文章主要介紹了Shell腳本批量重命名文件后綴的3種實(shí)現(xiàn),本文分別使用find + xargs +sed、for循環(huán)、rename等3種方法實(shí)現(xiàn)重命名文件后綴,需要的朋友可以參考下
    2014-09-09
  • 2022最新vmstate?命令詳解

    2022最新vmstate?命令詳解

    這篇文章主要介紹了vmstate?命令詳解2022,主要包括使用vmstat命令的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • hi 感恩節(jié)——Linux基礎(chǔ)教程之mysql和php

    hi 感恩節(jié)——Linux基礎(chǔ)教程之mysql和php

    這篇文章主要介紹了hi 感恩節(jié)——Linux基礎(chǔ)教程之mysql和php的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • Linux使用pidof命令來(lái)快速查找進(jìn)程id

    Linux使用pidof命令來(lái)快速查找進(jìn)程id

    pidof 是一個(gè)簡(jiǎn)單而強(qiáng)大的命令行工具,廣泛應(yīng)用于進(jìn)程管理和腳本編程中,理解如何有效地使用它可以大大提高你的工作效率,本文給大家介紹了Linux使用pidof命令來(lái)快速查找進(jìn)程id的方法,需要的朋友可以參考下
    2025-03-03

最新評(píng)論

尼勒克县| 郴州市| 麻栗坡县| 鄂尔多斯市| 岳池县| 福清市| 都江堰市| 西平县| 盈江县| 泰来县| 宜良县| 诸暨市| 新化县| 淮阳县| 巫溪县| 临邑县| 和田市| 房山区| 广水市| 高雄市| 元谋县| 久治县| 禹城市| 阳山县| 梓潼县| 同江市| 平遥县| 澎湖县| 宣汉县| 昌图县| 察隅县| 万山特区| 兴海县| 余庆县| 清水县| 泰安市| 原平市| 九寨沟县| 城口县| 江北区| 夹江县|