


Unix中將root帳戶權(quán)限下放給其他用戶
在實(shí)際工作中,Unix系統(tǒng)工程師可能需要將一些本來應(yīng)該是root用戶才能夠運(yùn)行的一些命令程序下放給普通的用戶進(jìn)行執(zhí)行。如passwd命令,默認(rèn)情況下只有root管理員才能夠修改用戶帳戶的密碼。不過系統(tǒng)工程師更喜歡用戶自己來修改密碼。如此的話,用戶自己的密碼只有自己知道,可能更加的安全。當(dāng)用戶忘記了自己的密碼之后,系統(tǒng)工程再利用root帳戶的權(quán)限去初始化用戶的密碼。在Windows系統(tǒng)中,這個(gè)功能可以輕而易舉的實(shí)現(xiàn)。不過在Unix系統(tǒng)中,實(shí)現(xiàn)起來就沒有這么容易了。在這篇文章中,筆者就跟大家討論一下這個(gè)話題。
一、有效的UID與真實(shí)的UID。
當(dāng)系統(tǒng)管理員在shell環(huán)境中運(yùn)行passwd命令時(shí),shell首先會(huì)創(chuàng)建另一個(gè)shell進(jìn)程。新創(chuàng)建的shell進(jìn)程映像將載入passwd可執(zhí)行映像并覆蓋自己的映像,passwd進(jìn)程就開始運(yùn)行。當(dāng)一個(gè)進(jìn)程被創(chuàng)建之后,passwd進(jìn)程會(huì)從shell父進(jìn)程中繼承大部分的屬性。跟今天這個(gè)話題有關(guān)的屬性主要有兩個(gè)。一是進(jìn)程真實(shí)的UID。這個(gè)屬性與程序文件有關(guān)。這個(gè)參數(shù)代表了運(yùn)行這個(gè)進(jìn)程的用戶(而非程序文件)的UID,通常情況下這個(gè)參數(shù)保存在/etc/passwd中與用戶有關(guān)的記錄中。二是進(jìn)程有效的UID。這個(gè)參數(shù)其實(shí)就表示程序文件的所有者,即誰能夠執(zhí)行這個(gè)命令。通常情況下,進(jìn)程的有效UID與真實(shí)UID是相同的。但是當(dāng)非root用戶運(yùn)行passwd命令時(shí),他們就會(huì)不同。
二、PASSWD文件的特殊性。
在講解如何實(shí)現(xiàn)將root帳戶的權(quán)限下放給其他用戶之前,筆者要先給大家介紹一下passwd這個(gè)命令文件跟其他文件的不同。如下圖所示,系統(tǒng)管理員可以運(yùn)行圖中所示的命令,來查看passwd程序文件與其它程序文件(如vi)的不同。

對(duì)比以上兩個(gè)文件的屬性,大家會(huì)發(fā)現(xiàn)在passwd文件里的一個(gè)權(quán)限位上標(biāo)有s這個(gè)特殊的字符。這個(gè)參數(shù)就被稱為屬主身份設(shè)置位,英文簡(jiǎn)稱為SUID,它可以用來改變一般用戶的權(quán)限模式。當(dāng)非root用戶執(zhí)行passwd更改自己帳戶的名字時(shí),真實(shí)的UID就是這個(gè)用戶自己的UID,即運(yùn)行這個(gè)程序的用戶。但是有效的UID則不是。有效的UID是root用戶,即這個(gè)程序文件的所有者。通常情況下,進(jìn)程或者命令的存取、運(yùn)行權(quán)限不是由真是UID而是有有效UID決定的,故如果沒有這個(gè)s這個(gè)特殊屬主身份設(shè)置時(shí),其他用戶將無法使用這個(gè)命令。而現(xiàn)在其他用戶也可以利用passwd命令來更改自己的命令,可見這個(gè)屬主身份設(shè)置位可以改變一般用戶的權(quán)限模式,可以將本來只有root帳戶才能夠運(yùn)行的進(jìn)程下放給其他用戶運(yùn)行。
三、臨時(shí)權(quán)限SUID。
將本來只有root帳戶才能夠運(yùn)行的進(jìn)程下放給其他用戶運(yùn)行,有專家就把這種權(quán)限的轉(zhuǎn)移叫做臨時(shí)權(quán)限SUID。大部分的Unix系統(tǒng)都有這么一個(gè)特殊的權(quán)限設(shè)置模式,允許用戶更新一些敏感的系統(tǒng)文件。往往在這些文件的用戶權(quán)限組里面有一個(gè)特殊的字母s,就代表一種特殊的模式,即屬主身份設(shè)置位。利用這種模式系統(tǒng)工程師可以讓進(jìn)程暫時(shí)擁有文件所有者的特權(quán)。因此當(dāng)一個(gè)非特權(quán)用戶執(zhí)行passwd命令時(shí),進(jìn)城有效的UID并不是用戶真實(shí)的UID。Passwd命令真是利用這個(gè)特性讓其他非特權(quán)用戶可以執(zhí)行這個(gè)passwd命令。Passwd命令默認(rèn)情況下系統(tǒng)就允許其他非特權(quán)用戶運(yùn)行。但是其他一些系統(tǒng)維護(hù)命令,如網(wǎng)絡(luò)配置文件則不是。如果系統(tǒng)工程師要把網(wǎng)絡(luò)維護(hù)的工作分配給他人,就需要借鑒passwd的配置,將網(wǎng)絡(luò)配置文件的修改權(quán)限下放給其他用戶。
關(guān)鍵字:網(wǎng)絡(luò)、PASSWD、SUID
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解