這篇文章將為大家詳細(xì)講解有關(guān)怎么在Linux中配置sudo訪問權(quán)限,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
武平網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)從2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
sudo
是一個(gè)程序,普通用戶可以使用它以超級(jí)用戶或其他用戶的身份執(zhí)行命令,是由安全策略指定的。
sudo 用戶的訪問權(quán)限是由 /etc/sudoers
文件控制的。
在 Linux 系統(tǒng)中,如果你不熟悉一個(gè)命令,sudo
是運(yùn)行它的一個(gè)安全方式。
Linux 系統(tǒng)在 /var/log/secure
和 /var/log/auth.log
文件中保留日志,并且你可以驗(yàn)證 sudo 用戶實(shí)施了哪些行為操作。
每一次它都為當(dāng)前的操作提示輸入密碼。所以,你將會(huì)有時(shí)間去驗(yàn)證這個(gè)操作是不是你想要執(zhí)行的。如果你發(fā)覺它是不正確的行為,你可以安全地退出而且沒有執(zhí)行此操作。
基于 RHEL 的系統(tǒng)(如 Redhat (RHEL)、 CentOS 和 Oracle Enterprise Linux (OEL))和基于 Debian 的系統(tǒng)(如 Debian、Ubuntu 和 LinuxMint)在這點(diǎn)是不一樣的。
我們將會(huì)教你如何在本文中提及的兩種發(fā)行版中執(zhí)行該操作。
這里有三種方法可以應(yīng)用于兩個(gè)發(fā)行版本。
增加用戶到相應(yīng)的組?;?RHEL 的系統(tǒng),我們需要添加用戶到 wheel
組?;?Debain 的系統(tǒng),我們添加用戶到 sudo
或 admin
組。
手動(dòng)添加用戶到 /etc/group
文件中。
用 visudo
命令添加用戶到 /etc/sudoers
文件中。
在基于 RHEL 的系統(tǒng)中(如 Redhat (RHEL)、 CentOS 和 Oracle Enterprise Linux (OEL)),使用下面的三個(gè)方法就可以做到。
wheel 是基于 RHEL 的系統(tǒng)中的一個(gè)特殊組,它提供額外的權(quán)限,可以授權(quán)用戶像超級(jí)用戶一樣執(zhí)行受到限制的命令。
注意,應(yīng)該在 /etc/sudoers
文件中激活 wheel
組來獲得該訪問權(quán)限。
# grep -i wheel /etc/sudoers ## Allows people in group wheel to run all commands%wheel ALL=(ALL) ALL# %wheel ALL=(ALL) NOPASSWD: ALL
假設(shè)我們已經(jīng)創(chuàng)建了一個(gè)用戶賬號(hào)來執(zhí)行這些操作。在此,我將會(huì)使用 daygeek
這個(gè)用戶賬號(hào)。
執(zhí)行下面的命令,添加用戶到 wheel
組。
# usermod -aG wheel daygeek
我們可以通過下面的命令來確定這一點(diǎn)。
# getent group wheelwheel:x:10:daygeek
我將要檢測用戶 daygeek
是否可以訪問屬于 root 用戶的文件。
$ tail -5 /var/log/securetail: cannot open /var/log/secure for reading: Permission denied
當(dāng)我試圖以普通用戶身份訪問 /var/log/secure
文件時(shí)出現(xiàn)錯(cuò)誤。 我將使用 sudo
訪問同一個(gè)文件,讓我們看看這個(gè)魔術(shù)。
$ sudo tail -5 /var/log/secure[sudo] password for daygeek:Mar 17 07:01:56 CentOS7 sudo: daygeek : TTY=pts/0 ; PWD=/home/daygeek ; USER=root ; COMMAND=/bin/tail -5 /var/log/secureMar 17 07:01:56 CentOS7 sudo: pam_unix(sudo:session): session opened for user root by daygeek(uid=0)Mar 17 07:01:56 CentOS7 sudo: pam_unix(sudo:session): session closed for user rootMar 17 07:05:10 CentOS7 sudo: daygeek : TTY=pts/0 ; PWD=/home/daygeek ; USER=root ; COMMAND=/bin/tail -5 /var/log/secureMar 17 07:05:10 CentOS7 sudo: pam_unix(sudo:session): session opened for user root by daygeek(uid=0)
我們可以通過編輯 /etc/group
文件來手動(dòng)地添加用戶到 wheel
組。
只需打開該文件,并在恰當(dāng)?shù)慕M后追加相應(yīng)的用戶就可完成這一點(diǎn)。
$ grep -i wheel /etc/groupwheel:x:10:daygeek,user1
在該例中,我將使用 user1
這個(gè)用戶賬號(hào)。
我將要通過在系統(tǒng)中重啟 Apache httpd 服務(wù)來檢查用戶 user1
是不是擁有 sudo 訪問權(quán)限。讓我們看看這個(gè)魔術(shù)。
$ sudo systemctl restart httpd[sudo] password for user1: $ sudo grep -i user1 /var/log/secure[sudo] password for user1:Mar 17 07:09:47 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/systemctl restart httpdMar 17 07:10:40 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/systemctl restart httpdMar 17 07:12:35 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/grep -i httpd /var/log/secure
sudo 用戶的訪問權(quán)限是被 /etc/sudoers
文件控制的。因此,只需將用戶添加到 sudoers
文件中 的 wheel
組下即可。
只需通過 visudo
命令將期望的用戶追加到 /etc/sudoers
文件中。
# grep -i user2 /etc/sudoersuser2 ALL=(ALL) ALL
在該例中,我將使用 user2
這個(gè)用戶賬號(hào)。
我將要通過在系統(tǒng)中重啟 MariaDB 服務(wù)來檢查用戶 user2
是不是擁有 sudo 訪問權(quán)限。讓我們看看這個(gè)魔術(shù)。
$ sudo systemctl restart mariadb[sudo] password for user2: $ sudo grep -i mariadb /var/log/secure[sudo] password for user2:Mar 17 07:23:10 CentOS7 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/systemctl restart mariadbMar 17 07:26:52 CentOS7 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/grep -i mariadb /var/log/secure
在基于 Debian 的系統(tǒng)中(如 Debian、Ubuntu 和 LinuxMint),使用下面的三個(gè)方法就可以做到。
sudo
或 admin
是基于 Debian 的系統(tǒng)中的特殊組,它提供額外的權(quán)限,可以授權(quán)用戶像超級(jí)用戶一樣執(zhí)行受到限制的命令。
注意,應(yīng)該在 /etc/sudoers
文件中激活 sudo
或 admin
組來獲得該訪問權(quán)限。
# grep -i 'sudo\|admin' /etc/sudoers # Members of the admin group may gain root privileges%admin ALL=(ALL) ALL # Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL
假設(shè)我們已經(jīng)創(chuàng)建了一個(gè)用戶賬號(hào)來執(zhí)行這些操作。在此,我將會(huì)使用 2gadmin
這個(gè)用戶賬號(hào)。
執(zhí)行下面的命令,添加用戶到 sudo
組。
# usermod -aG sudo 2gadmin
我們可以通過下面的命令來確定這一點(diǎn)。
# getent group sudosudo:x:27:2gadmin
我將要檢測用戶 2gadmin
是否可以訪問屬于 root 用戶的文件。
$ less /var/log/auth.log/var/log/auth.log: Permission denied
當(dāng)我試圖以普通用戶身份訪問 /var/log/auth.log
文件時(shí)出現(xiàn)錯(cuò)誤。 我將要使用 sudo
訪問同一個(gè)文件,讓我們看看這個(gè)魔術(shù)。
$ sudo tail -5 /var/log/auth.log[sudo] password for 2gadmin:Mar 17 20:39:47 Ubuntu18 sudo: 2gadmin : TTY=pts/0 ; PWD=/home/2gadmin ; USER=root ; COMMAND=/bin/bashMar 17 20:39:47 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by 2gadmin(uid=0)Mar 17 20:40:23 Ubuntu18 sudo: pam_unix(sudo:session): session closed for user rootMar 17 20:40:48 Ubuntu18 sudo: 2gadmin : TTY=pts/0 ; PWD=/home/2gadmin ; USER=root ; COMMAND=/usr/bin/tail -5 /var/log/auth.logMar 17 20:40:48 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by 2gadmin(uid=0)
或者,我們可以通過添加用戶到 admin
組來執(zhí)行相同的操作。
運(yùn)行下面的命令,添加用戶到 admin
組。
# usermod -aG admin user1
我們可以通過下面的命令來確定這一點(diǎn)。
# getent group adminadmin:x:1011:user1
讓我們看看輸出信息。
$ sudo tail -2 /var/log/auth.log[sudo] password for user1:Mar 17 20:53:36 Ubuntu18 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/usr/bin/tail -2 /var/log/auth.logMar 17 20:53:36 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user1(uid=0)
我們可以通過編輯 /etc/group
文件來手動(dòng)地添加用戶到 sudo
組或 admin
組。
只需打開該文件,并在恰當(dāng)?shù)慕M后追加相應(yīng)的用戶就可完成這一點(diǎn)。
$ grep -i sudo /etc/groupsudo:x:27:2gadmin,user2
在該例中,我將使用 user2
這個(gè)用戶賬號(hào)。
我將要通過在系統(tǒng)中重啟 Apache httpd 服務(wù)來檢查用戶 user2
是不是擁有 sudo
訪問權(quán)限。讓我們看看這個(gè)魔術(shù)。
$ sudo systemctl restart apache2[sudo] password for user2: $ sudo tail -f /var/log/auth.log[sudo] password for user2:Mar 17 21:01:04 Ubuntu18 systemd-logind[559]: New session 22 of user user2.Mar 17 21:01:04 Ubuntu18 systemd: pam_unix(systemd-user:session): session opened for user user2 by (uid=0)Mar 17 21:01:33 Ubuntu18 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/systemctl restart apache2
sudo 用戶的訪問權(quán)限是被 /etc/sudoers
文件控制的。因此,只需將用戶添加到 sudoers
文件中的 sudo
或 admin
組下即可。
只需通過 visudo
命令將期望的用戶追加到 /etc/sudoers
文件中。
# grep -i user3 /etc/sudoersuser3 ALL=(ALL:ALL) ALL
在該例中,我將使用 user3
這個(gè)用戶賬號(hào)。
我將要通過在系統(tǒng)中重啟 MariaDB 服務(wù)來檢查用戶 user3
是不是擁有 sudo
訪問權(quán)限。讓我們看看這個(gè)魔術(shù)。
$ sudo systemctl restart mariadb[sudo] password for user3: $ sudo tail -f /var/log/auth.log[sudo] password for user3:Mar 17 21:12:32 Ubuntu18 systemd-logind[559]: New session 24 of user user3.Mar 17 21:12:49 Ubuntu18 sudo: user3 : TTY=pts/0 ; PWD=/home/user3 ; USER=root ; COMMAND=/bin/systemctl restart mariadbMar 17 21:12:49 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user3(uid=0)Mar 17 21:12:53 Ubuntu18 sudo: pam_unix(sudo:session): session closed for user rootMar 17 21:13:08 Ubuntu18 sudo: user3 : TTY=pts/0 ; PWD=/home/user3 ; USER=root ; COMMAND=/usr/bin/tail -f /var/log/auth.logMar 17 21:13:08 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user3(uid=0)
關(guān)于“怎么在Linux中配置sudo訪問權(quán)限”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。