【CentOS實(shí)用篇】之sudo

在普通用戶登錄中,很多需要管理員權(quán)限的命令無法執(zhí)行,雖然提升了root的安全性,難免會(huì)影響了部分工作的進(jìn)行,此時(shí)可以使用sudo命令進(jìn)行授權(quán),允許普通用戶在特定時(shí)間內(nèi),利用特定的身份權(quán)限去執(zhí)行特定的指令。

sudo能夠授權(quán)指定用戶在指定主機(jī)上運(yùn)行某些命令。如果未授權(quán)用戶嘗試使用sudo,會(huì)提示聯(lián)系管理員
sudo可以提供日志,記錄每個(gè)用戶使用sudo操作
sudo為系統(tǒng)管理員提供配置文件,允許系統(tǒng)管理員集中地管理用戶的使用權(quán)限和使用的主機(jī)
sudo使用時(shí)間戳文件來完成類似“檢票”的系統(tǒng),默認(rèn)存活期為5分鐘的“入場券”

普通用戶臨時(shí)切換其他用戶權(quán)限需要知道用戶的密碼,安全性大大降低,在執(zhí)行完畢后,切回自身原有身份

[feng@c7 root]$ su -l root -c "hostname"
Password: 
c7
[feng@c7 root]$ 
sudo的文件列表

軟件包 sudo-1.8.6p7-20.el7.x86_64
幫助手冊 man 5 sudoers
配置文件 /etc/sudoers
日志文件 /var/log/secure
數(shù)據(jù)庫文件 /var/db/sudo

數(shù)據(jù)庫里記錄時(shí)間戳信息:
普通用戶在使用sudo執(zhí)行命令時(shí),需要輸入自己的用戶口令,
以驗(yàn)證用戶的安全性,口令的保存時(shí)間為五分鐘,
五分鐘之后執(zhí)行命令需要重新輸入口令

配置文件也可以存放在文件夾/etc/sudoers.d/,針對每個(gè)非管理員用戶創(chuàng)建獨(dú)立的管理文件
配置文件支持通配符glob

配置文件規(guī)則

1、別名定義:不是必須的
2、授權(quán)規(guī)則:必須的
授權(quán)規(guī)則格式
用戶 登入主機(jī)=(代表用戶) 命令
示例:root ALL=(ALL) ALL
格式說明:
user:運(yùn)行命令者的身份
host::通過哪些主機(jī)
(runas):以哪個(gè)用戶的身份
command::運(yùn)行哪些命令

屬性

-b:在后臺執(zhí)行指令;
-h:顯示幫助;
-H:將HOME環(huán)境變量設(shè)為新身份的HOME環(huán)境變量;
-k:結(jié)束密碼的有效期限,也就是下次再執(zhí)行sudo時(shí)便需要輸入密碼;
-l:列出目前用戶可執(zhí)行與無法執(zhí)行的指令;
-p:改變詢問密碼的提示符號;
-s:執(zhí)行指定的shell;
-u<用戶>:以指定的用戶作為新的身份。若不加上此參數(shù),則預(yù)設(shè)以root作為新的身份;
-v:延長密碼有效期限5分鐘;
-V :顯示版本信息。

修改配置文件,用賬戶feng掛載光盤

第一步:編輯/etc/sudoers文件,在配置中添加授權(quán)feng掛載光盤的命令,在sudoers配置中,要執(zhí)行的命令需要寫下完整的路徑。
在配置文件/etc/sudoers中,root ALL=(ALL) ALL定義了root可以執(zhí)行最高權(quán)限,這條配置同時(shí)定義在root的UID不為0的時(shí)候的權(quán)限

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
feng    ALL=(ALL)       /usr/bin/mount /dev/sr0 /mnt/cdrom

第二步:在feng賬戶登錄下,用sudo命令發(fā)起掛載授權(quán)請求,注意光盤掛載的路徑必須和配置中完全一樣,避免出錯(cuò)

[feng@c7 root]$ sudo mount /dev/sr0 /mnt/cdrom
[sudo] password for feng: 
mount: /dev/sr0 is write-protected, mounting read-only
[feng@c7 root]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       52403200 3846176  48557024   8% /
devtmpfs          485304       0    485304   0% /dev
tmpfs             499980      84    499896   1% /dev/shm
tmpfs             499980   13528    486452   3% /run
tmpfs             499980       0    499980   0% /sys/fs/cgroup
/dev/sda5       41922560   32964  41889596   1% /app
/dev/sda1        1038336  172120    866216  17% /boot
tmpfs             100000      16     99984   1% /run/user/42
tmpfs             100000       0    100000   0% /run/user/0
/dev/sr0         8086368 8086368         0 100% /mnt/cdrom
授權(quán)feng取消掛載光盤

授權(quán)同一個(gè)用戶可執(zhí)行多條命令,在前一個(gè)命令后面用逗號 , 隔開。在umount命令中,如果后面不寫路徑,將授權(quán)取消所有的掛載

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
feng    ALL=(ALL)       /usr/bin/mount /dev/sr0 /mnt/cdrom,/usr/bin/umount /mnt.cdrom
[feng@c7 root]$ sudo umount /mnt/cdrom
[sudo] password for feng: 
[feng@c7 root]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       52403200 3846268  48556932   8% /
devtmpfs          485304       0    485304   0% /dev
tmpfs             499980      84    499896   1% /dev/shm
tmpfs             499980   13528    486452   3% /run
tmpfs             499980       0    499980   0% /sys/fs/cgroup
/dev/sda5       41922560   32964  41889596   1% /app
/dev/sda1        1038336  172120    866216  17% /boot
tmpfs             100000      16     99984   1% /run/user/42
tmpfs             100000       0    100000   0% /run/user/0
創(chuàng)建非管理員用戶的獨(dú)立授權(quán)配置文件

在文件夾/etc/sudoers.d/下,我們可以根據(jù)不同的用戶創(chuàng)建不同的授權(quán)配置文件文件,獨(dú)立授權(quán),方便管理。
以下步驟重新授權(quán)feng掛載光盤和取消掛載光盤并實(shí)施命令

[root@c7 sudoers.d]#vim feng

feng    ALL=(ALL)       /usr/bin/mount /dev/sr0 /mnt/cdrom,/usr/bin/umount /mnt/cdrom
~                                                                                         
[feng@c7 root]$ sudo mount /dev/sr0 /mnt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
[feng@c7 root]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       52403200 3845208  48557992   8% /
devtmpfs          485304       0    485304   0% /dev
tmpfs             499980      84    499896   1% /dev/shm
tmpfs             499980   13528    486452   3% /run
tmpfs             499980       0    499980   0% /sys/fs/cgroup
/dev/sda5       41922560   32964  41889596   1% /app
/dev/sda1        1038336  172120    866216  17% /boot
tmpfs             100000      16     99984   1% /run/user/42
tmpfs             100000       0    100000   0% /run/user/0
/dev/sr0         8086368 8086368         0 100% /mnt/cdrom
[feng@c7 root]$ sudo umount /mnt/cdrom
[feng@c7 root]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       52403200 3845208  48557992   8% /
devtmpfs          485304       0    485304   0% /dev
tmpfs             499980      84    499896   1% /dev/shm
tmpfs             499980   13528    486452   3% /run
tmpfs             499980       0    499980   0% /sys/fs/cgroup
/dev/sda5       41922560   32964  41889596   1% /app
/dev/sda1        1038336  172120    866216  17% /boot
tmpfs             100000      16     99984   1% /run/user/42
tmpfs             100000       0    100000   0% /run/user/0

語法檢查

通過visudo命令編輯配置文件,具有語法檢查功能。在配置文件中出現(xiàn)語法錯(cuò)誤時(shí),visudo會(huì)提示錯(cuò)誤的行號,然后詢問下一步操作。
e:重新編輯
x:不保存退出
q:強(qiáng)制退出

[root@c7 sudoers.d]#visudo
visudo: >>> /etc/sudoers: syntax error near line 79 <<<
What now? 
Options are:
  (e)dit sudoers file again
  e(x)it without saving changes to sudoers file
  (Q)uit and save changes to sudoers file (DANGER!)

What now? 
visudo加顏色

用visudo打開/etc/sudoers時(shí),默認(rèn)文本是沒有顏色,在這里可以通過設(shè)置對visudo加顏色

[root@c7 ~]#cd /etc/profile.d/
[root@c7 profile.d]#vim env.sh

export EDITOR=vim
修改獨(dú)立配置文件的權(quán)限

在/etc/sudoers.d/文件夾中,因?yàn)橛脩鬴eng的獨(dú)立授權(quán)配置文件是手動(dòng)創(chuàng)建的,文件的全新未644,在進(jìn)行語法visudo -c語法檢查的時(shí)候會(huì)提示錯(cuò)誤,可以利用visudo直接修改權(quán)限

[root@c7 ~]#cd /etc/sudoers.d/
[root@c7 sudoers.d]#ll
total 4
-rw-r--r--. 1 root root 86 Sep 13 21:01 feng
[root@c7 sudoers.d]#visudo -f feng 
[root@c7 sudoers.d]#ll
total 4
-r--r-----. 1 root root 85 Sep 13 22:06 feng
用戶組的權(quán)限配置

在CentOS 7配置文件中,默認(rèn)的用戶組為wheel,默認(rèn)可以代替所有人執(zhí)行所有權(quán)限,把用戶feng加入wheel用戶組,可以代替root使用,但是這樣的權(quán)限設(shè)置是不安全的。在CentOS 6中,用戶組的配置是注釋掉的

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
[root@c7 ~]#usermod -aG wheel feng

[root@c7 ~]#su feng

[feng@c7 root]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容