使用sudo配置設定管理權限
2.1 問題
本案例要求利用sudo機制配置設定管理操作權限,主要完成以下任務:
使用su指令臨時切換賬戶身份,并執行指令
允許softadm管理系統服務的權限
允許使用者useradm通過sudo方式添加/删除/修改除root以外的使用者賬号
允許wheel組成員以特權執行/usr/bin/下的指令
為sudo機制啟用日志記錄,以便跟蹤sudo執行操作
- 1
- 2
- 3
- 4
- 5
2.2 步驟
實作此案例需要按照如下步驟進行。
步驟一:使用su指令臨時切換賬戶身份,并以root執行指令
su(Substitute User)指令可以快速切換賬戶身份,普通使用者切換賬戶身份時需要輸入密碼,root使用su指令切換任何身份都不需要密碼,如法格式如下:
# su – [賬戶名稱]
# su - [賬戶名稱] -c '指令'
- 1
- 2
1)從普通使用者切換為root賬戶身份(如果沒有普通賬戶則需要先建立)
[[email protected] ~]# whoami
jacob
[[email protected] ~]# su – //切換賬戶,預設切換為root賬戶
密碼:
[[email protected] ~]# whoami //确認結果
root
- 1
- 2
- 3
- 4
- 5
- 6
2)以普通身份建立目錄(如果沒有普通賬戶則需要先建立),以root身份重新開機服務
[[email protected] ~]# su - tom -c "mkdir /home/tom/test" //管理者切換普通使用者
[[email protected] ~]# ll -d /home/tom/test
[[email protected] ~]# su - -c "systemctl restart sshd" //以管理者重新開機服務
密碼:
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
active: active (running) since 五 2018-01-19 08:59:40 CST; 1 months 4 days ago
- 1
- 2
- 3
- 4
- 5
- 6
- 7
步驟二:允許softadm管理系統服務的權限
1)修改/etc/sudoers配置
修改/etc/sudoers可以直接使用vim編輯該檔案,或使用visudo指令修改該檔案。
為softadm授予相關腳本的執行權限,允許通過systemctl工具來管理系統服務。
如果沒有softadm賬戶可以先建立該賬戶。
[[email protected] ~]# vim /etc/sudoers //修改檔案後,需要使用wq強制儲存
.. ..
softadm ALL=(ALL) /usr/bin/systemctl
//授權softadm以root身份執行systemctl指令
- 1
- 2
- 3
- 4
2)切換為softadm使用者,并驗證sudo執行權限
[[email protected] ~]# su – softadm
[[email protected] ~]$ sudo -l
… …
[sudo] password for softadm: //輸入softadm的密碼
.. ..
使用者 softadm 可以在該主機上運作以下指令:
(ALL) /usr/bin/systemctl
[[email protected] ~]$ systemctl start httpd //不用sudo時啟動服務失敗
Authentication is required
.. ..
[[email protected] ~]$ sudo systemctl restart httpd //通過sudo啟動服務成功
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
步驟三:允許使用者useradm通過sudo方式添加/删除/修改除root以外的使用者賬号
1)修改/etc/sudoers配置
為useradm授予使用者管理相關指令的執行權限,例外程式以!符号取反,放在後面。在執行相關程式時,可以利用通配符*。
[[email protected] ~]# vim /etc/sudoers
.. ..
useradm ALL=(ALL) /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,
!/usr/sbin/user* * root
- 1
- 2
- 3
- 4
2)切換為useradm使用者,驗證sudo權限
可以通過sudo方式來添加/删除/修改普通使用者:
[[email protected] ~]# su – useradm
[[email protected] ~]$ sudo -l
.. ..
使用者useradm可以在該主機上運作以下指令:
(root) /usr/bin/passwd, !/usr/bin/passwd root, /usr/sbin/user*,
!/usr/sbin/user* * root
[[email protected] ~]$ sudo useradd newuser01 //可以添加使用者
[[email protected] ~]$ sudo passwd newuser01 //可以修改普通使用者的密碼
更改使用者 newuser01 的密碼 。
新的 密碼:
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
但是不能修改root使用者的密碼:
[[email protected] ~]$ sudo passwd root
對不起,使用者 useradm 無權以 root 的身份在 localhost 上
執行 /usr/bin/passwd root。
- 1
- 2
- 3
步驟四:允許wheel組成員以特權執行/bin/下的所有指令
此案例用來展示sudo的便利性及設定不當帶來的危險性,生産環境下慎用。
實作時參考下列操作(如果沒有普通使用者則先建立該賬戶):
[[email protected] ~]# vim /etc/sudoers
.. ..
%wheel ALL=(ALL) /bin/*
[[email protected] ~]# usermod -a -G wheel zengye
[[email protected] ~]$ sudo -l
.. ..
使用者 zengye 可以在該主機上運作以下指令:
(root) /bin/*
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
步驟五:為sudo機制啟用日志記錄,以便跟蹤sudo執行操作
1)修改/etc/sudoers配置,添加日志設定
[[email protected] ~]# visudo
Defaults logfile="/var/log/sudo"
.. ..
- 1
- 2
- 3
2)以root(預設有所有權限)執行sudo操作
[[email protected] ~]# sudo -l //檢視授權的sudo操作
[[email protected] ~]# sudo systemctl status httpd //檢視授權的sudo操作
- 1
- 2
3)确認日志記錄已生效
[[email protected] ~]# tail /var/log/sudo
.. ..
May 16 22:14:49 : root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=list
Feb 22 22:35:43 : softadm : TTY=pts/11 ; PWD=/home/softadm ; USER=root ;
COMMAND=/bin/systemctl status httpd
- 1
- 2
- 3
- 4
- 5
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" target="_blank" rel="external nofollow" rel="stylesheet">
<div class="more-toolbox">
<div class="left-toolbox">
<ul class="toolbox-list">
<li class="tool-item tool-active is-like "><a href="javascript:;" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" ><svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-thumbsup" target="_blank" rel="external nofollow" ></use>
</svg><span class="name">點贊</span>
<span class="count"></span>
</a></li>
<li class="tool-item tool-active is-collection "><a href="javascript:;" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" data-report-click="{"mod":"popu_824"}"><svg class="icon" aria-hidden="true">
<use xlink:href="#icon-csdnc-Collection-G" target="_blank" rel="external nofollow" ></use>
</svg><span class="name">收藏</span></a></li>
<li class="tool-item tool-active is-share"><a href="javascript:;" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" data-report-click="{"mod":"1582594662_002"}"><svg class="icon" aria-hidden="true">
<use xlink:href="#icon-csdnc-fenxiang" target="_blank" rel="external nofollow" ></use>
</svg>分享</a></li>
<!--打賞開始-->
<!--打賞結束-->
<li class="tool-item tool-more">
<a>
<svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
</a>
<ul class="more-box">
<li class="item"><a class="article-report">文章舉報</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="person-messagebox">
<div class="left-message"><a href="https://blog.csdn.net/xie_qi_chao" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >
<img src="https://profile.csdnimg.cn/B/F/6/3_xie_qi_chao" class="avatar_pic" username="xie_qi_chao">
<img src="https://g.csdnimg.cn/static/user-reg-year/1x/2.png" class="user-years">
</a></div>
<div class="middle-message">
<div class="title"><span class="tit"><a href="https://blog.csdn.net/xie_qi_chao" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" data-report-click="{"mod":"popu_379"}" target="_blank">解啟超</a></span>
</div>
<div class="text"><span>釋出了330 篇原創文章</span> · <span>獲贊 52</span> · <span>通路量 3萬+</span></div>
</div>
<div class="right-message">
<a href="https://im.csdn.net/im/main.html?userName=xie_qi_chao" target="_blank" rel="external nofollow" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信
</a>
<a class="btn btn-sm attented bt-button personal-watch" data-report-click="{"mod":"popu_379"}">已關注</a>
</div>
</div>
</div>
</article>
使用sudo配置設定管理權限
2.1 問題
本案例要求利用sudo機制配置設定管理操作權限,主要完成以下任務:
使用su指令臨時切換賬戶身份,并執行指令
允許softadm管理系統服務的權限
允許使用者useradm通過sudo方式添加/删除/修改除root以外的使用者賬号
允許wheel組成員以特權執行/usr/bin/下的指令
為sudo機制啟用日志記錄,以便跟蹤sudo執行操作
- 1
- 2
- 3
- 4
- 5
2.2 步驟
實作此案例需要按照如下步驟進行。
步驟一:使用su指令臨時切換賬戶身份,并以root執行指令
su(Substitute User)指令可以快速切換賬戶身份,普通使用者切換賬戶身份時需要輸入密碼,root使用su指令切換任何身份都不需要密碼,如法格式如下:
# su – [賬戶名稱]
# su - [賬戶名稱] -c '指令'
- 1
- 2
1)從普通使用者切換為root賬戶身份(如果沒有普通賬戶則需要先建立)
[[email protected] ~]# whoami
jacob
[[email protected] ~]# su – //切換賬戶,預設切換為root賬戶
密碼:
[[email protected] ~]# whoami //确認結果
root
- 1
- 2
- 3
- 4
- 5
- 6
2)以普通身份建立目錄(如果沒有普通賬戶則需要先建立),以root身份重新開機服務
[[email protected] ~]# su - tom -c "mkdir /home/tom/test" //管理者切換普通使用者
[[email protected] ~]# ll -d /home/tom/test
[[email protected] ~]# su - -c "systemctl restart sshd" //以管理者重新開機服務
密碼:
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
active: active (running) since 五 2018-01-19 08:59:40 CST; 1 months 4 days ago
- 1
- 2
- 3
- 4
- 5
- 6
- 7
步驟二:允許softadm管理系統服務的權限
1)修改/etc/sudoers配置
修改/etc/sudoers可以直接使用vim編輯該檔案,或使用visudo指令修改該檔案。
為softadm授予相關腳本的執行權限,允許通過systemctl工具來管理系統服務。
如果沒有softadm賬戶可以先建立該賬戶。
[[email protected] ~]# vim /etc/sudoers //修改檔案後,需要使用wq強制儲存
.. ..
softadm ALL=(ALL) /usr/bin/systemctl
//授權softadm以root身份執行systemctl指令
- 1
- 2
- 3
- 4
2)切換為softadm使用者,并驗證sudo執行權限
[[email protected] ~]# su – softadm
[[email protected] ~]$ sudo -l
… …
[sudo] password for softadm: //輸入softadm的密碼
.. ..
使用者 softadm 可以在該主機上運作以下指令:
(ALL) /usr/bin/systemctl
[[email protected] ~]$ systemctl start httpd //不用sudo時啟動服務失敗
Authentication is required
.. ..
[[email protected] ~]$ sudo systemctl restart httpd //通過sudo啟動服務成功
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
步驟三:允許使用者useradm通過sudo方式添加/删除/修改除root以外的使用者賬号
1)修改/etc/sudoers配置
為useradm授予使用者管理相關指令的執行權限,例外程式以!符号取反,放在後面。在執行相關程式時,可以利用通配符*。
[[email protected] ~]# vim /etc/sudoers
.. ..
useradm ALL=(ALL) /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,
!/usr/sbin/user* * root
- 1
- 2
- 3
- 4
2)切換為useradm使用者,驗證sudo權限
可以通過sudo方式來添加/删除/修改普通使用者:
[[email protected] ~]# su – useradm
[[email protected] ~]$ sudo -l
.. ..
使用者useradm可以在該主機上運作以下指令:
(root) /usr/bin/passwd, !/usr/bin/passwd root, /usr/sbin/user*,
!/usr/sbin/user* * root
[[email protected] ~]$ sudo useradd newuser01 //可以添加使用者
[[email protected] ~]$ sudo passwd newuser01 //可以修改普通使用者的密碼
更改使用者 newuser01 的密碼 。
新的 密碼:
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
但是不能修改root使用者的密碼:
[[email protected] ~]$ sudo passwd root
對不起,使用者 useradm 無權以 root 的身份在 localhost 上
執行 /usr/bin/passwd root。
- 1
- 2
- 3
步驟四:允許wheel組成員以特權執行/bin/下的所有指令
此案例用來展示sudo的便利性及設定不當帶來的危險性,生産環境下慎用。
實作時參考下列操作(如果沒有普通使用者則先建立該賬戶):
[[email protected] ~]# vim /etc/sudoers
.. ..
%wheel ALL=(ALL) /bin/*
[[email protected] ~]# usermod -a -G wheel zengye
[[email protected] ~]$ sudo -l
.. ..
使用者 zengye 可以在該主機上運作以下指令:
(root) /bin/*
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
步驟五:為sudo機制啟用日志記錄,以便跟蹤sudo執行操作
1)修改/etc/sudoers配置,添加日志設定
[[email protected] ~]# visudo
Defaults logfile="/var/log/sudo"
.. ..
- 1
- 2
- 3
2)以root(預設有所有權限)執行sudo操作
[[email protected] ~]# sudo -l //檢視授權的sudo操作
[[email protected] ~]# sudo systemctl status httpd //檢視授權的sudo操作
- 1
- 2
3)确認日志記錄已生效
[[email protected] ~]# tail /var/log/sudo
.. ..
May 16 22:14:49 : root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=list
Feb 22 22:35:43 : softadm : TTY=pts/11 ; PWD=/home/softadm ; USER=root ;
COMMAND=/bin/systemctl status httpd
- 1
- 2
- 3
- 4
- 5
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" target="_blank" rel="external nofollow" rel="stylesheet">
<div class="more-toolbox">
<div class="left-toolbox">
<ul class="toolbox-list">
<li class="tool-item tool-active is-like "><a href="javascript:;" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" ><svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-thumbsup" target="_blank" rel="external nofollow" ></use>
</svg><span class="name">點贊</span>
<span class="count"></span>
</a></li>
<li class="tool-item tool-active is-collection "><a href="javascript:;" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" data-report-click="{"mod":"popu_824"}"><svg class="icon" aria-hidden="true">
<use xlink:href="#icon-csdnc-Collection-G" target="_blank" rel="external nofollow" ></use>
</svg><span class="name">收藏</span></a></li>
<li class="tool-item tool-active is-share"><a href="javascript:;" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" data-report-click="{"mod":"1582594662_002"}"><svg class="icon" aria-hidden="true">
<use xlink:href="#icon-csdnc-fenxiang" target="_blank" rel="external nofollow" ></use>
</svg>分享</a></li>
<!--打賞開始-->
<!--打賞結束-->
<li class="tool-item tool-more">
<a>
<svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
</a>
<ul class="more-box">
<li class="item"><a class="article-report">文章舉報</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="person-messagebox">
<div class="left-message"><a href="https://blog.csdn.net/xie_qi_chao" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >
<img src="https://profile.csdnimg.cn/B/F/6/3_xie_qi_chao" class="avatar_pic" username="xie_qi_chao">
<img src="https://g.csdnimg.cn/static/user-reg-year/1x/2.png" class="user-years">
</a></div>
<div class="middle-message">
<div class="title"><span class="tit"><a href="https://blog.csdn.net/xie_qi_chao" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" data-report-click="{"mod":"popu_379"}" target="_blank">解啟超</a></span>
</div>
<div class="text"><span>釋出了330 篇原創文章</span> · <span>獲贊 52</span> · <span>通路量 3萬+</span></div>
</div>
<div class="right-message">
<a href="https://im.csdn.net/im/main.html?userName=xie_qi_chao" target="_blank" rel="external nofollow" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信
</a>
<a class="btn btn-sm attented bt-button personal-watch" data-report-click="{"mod":"popu_379"}">已關注</a>
</div>
</div>
</div>
</article>