【CentOS實用篇】之sudo

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

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

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

[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
數據庫文件 /var/db/sudo

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

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

配置文件規則

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

屬性

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

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

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

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

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

[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
授權feng取消掛載光盤

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

## 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
創建非管理員用戶的獨立授權配置文件

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

[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命令編輯配置文件,具有語法檢查功能。在配置文件中出現語法錯誤時,visudo會提示錯誤的行號,然后詢問下一步操作。
e:重新編輯
x:不保存退出
q:強制退出

[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時,默認文本是沒有顏色,在這里可以通過設置對visudo加顏色

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

export EDITOR=vim
修改獨立配置文件的權限

在/etc/sudoers.d/文件夾中,因為用戶feng的獨立授權配置文件是手動創建的,文件的全新未644,在進行語法visudo -c語法檢查的時候會提示錯誤,可以利用visudo直接修改權限

[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
用戶組的權限配置

在CentOS 7配置文件中,默認的用戶組為wheel,默認可以代替所有人執行所有權限,把用戶feng加入wheel用戶組,可以代替root使用,但是這樣的權限設置是不安全的。在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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容