您好,登錄后才能下訂單哦!
接觸Linux的朋友應該都接觸sudo這個命令,特別是剛一接觸ubuntu朋友,只要進入系統執行特殊的命令都需要在命令前加+sudo命令才能執行命令,sudo到到底是個什么神器呢?sudo是個統管一切的命令。它的字面意思是代表“超級用戶才能做!”(super user do!) 也可以使用 su - "switch user",但是使用su方式容易將系統用戶密碼泄露,導致系統不安全,由于root用戶權限過大,在實際生產過程中很少使用root用戶直接登錄系統,而是使用普通用戶登錄系統;但是如果普通用戶要對系統進行日常維護操作時需要su到root用戶,為了提高安全性,可以使用sudo授權某一用戶在某一主機以某一用戶身份運行某些命令;從而減少root用戶密碼知曉人,提高系統安全性。
sudo的優勢:
①授權指定用戶在指定的主機上運行指定的管理命令;
②sudo審計安全性:將一些管理命令授權給某些普通用戶使用,并且還能限定其僅能夠在某些主機上執行此類的命令,操作過程還會被記錄與日志中,以便于日后審計;
③"檢票系統":時效性認證,用戶第一次執行sudo命令時會要求輸入密碼來驗證用戶身份,成功后用戶會獲得一個有固定存活時長的"令牌"(令牌默認存活時長為5分鐘)
sudo常用參數:
##參數 -V 顯示版本編號 -h 會顯示版本編號及指令的使用方式說明 -l 會顯示出自己(執行sudo的使用者)的權限 -v 因為sudo在第一次執行時或是在N分鐘內沒有執行(N預設為五)會問密碼,這個參數是重新做一次確認,如果超過N 分鐘,也會問密碼 -k 將會強迫使用者在下一次執行sudo時問密碼(不論有沒有超過N分鐘) -b 將要執行的指令放在后臺后臺執行
使用sudo的過程:
sudo的授權文件:/etc/sudoers,只有管理員能夠編輯
1、實現sudo授權的方法
①使用vim打開編輯:
可以實現文本著色,但是不能檢測語法錯誤,不建議使用
②visudo:專用的sudoers文本編輯工具
配置完成后能夠檢測提示語法錯誤,建議使用此編輯工具進行/etc/sudoers進行編輯
幫助文檔:man visudo;man visudoers
③定義sudo授權,/etc/sudoers
語法: who which_host=(whom) command
誰能以誰的身份,在那些主機上執行那些命令
sudo配置文件別名應用:
別名:Alias(都以大寫字母定義)
Host_Alias:定義主機別名,使用,分隔
User_Alias:定義用戶別名,可以是用戶名,也可以是組名(%組名)
Cmnd_Alias:定義命令別名,可以定義不能執行的命令,使用!/usr/bin/passwd root
Runas_Alias:定義以那些用戶執行
NOPASSWD:定義用戶執行命令時可以不輸入密碼
PASSWD:定義用戶執行命令時需要輸入密碼
sudo案例應用:
授權samlee用戶擁有添加用戶權限、修改密碼權限,但不能修改root密碼(防止用戶修改root密碼):
[root@rsyncmaster ~]# visudo samlee ALL=(root) /usr/sbin/useradd, /usr/bin/passwd, ! /usr/bin/passwd root
使用samlee登錄測試:
[samlee@rsyncmaster ~]$ sudo useradd samleetest #創建用戶沒有問題 [sudo] password for samlee: [samlee@rsyncmaster ~]$ sudo passwd root #無法修改root密碼 Sorry, user samlee is not allowed to execute '/usr/bin/passwd root' as root on rsyncmaster.samlee.com. [samlee@rsyncmaster ~]$ tail /etc/passwd | grep samleetest #查看添加的用戶 samleetest:x:503:503::/home/samleetest:/bin/bash
2.sudo別名定義及別名調用
[root@rsyncmaster ~]# visudo User_Alias USERADMIN = samlee,%admin Host_Alias HOST = 172.16.0.0/16,127.0.0.1 Runas_Alias ADMIN = root Cmnd_Alias COMMAND = /sbin/ifconfig,/bin/ping USERADMIN HOST=(ADMIN) COMMAND
測試;samlee用戶登錄測試指定的相關命令:
#建立測試用戶及測試組 [root@rsyncmaster ~]# groupadd admin [root@rsyncmaster ~]# useradd -g admin admin [root@rsyncmaster ~]# passwd admin #使用samlee用戶測試: [samlee@rsyncmaster ~]$ sudo ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:D3:E4:53 inet addr:172.16.100.7 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fed3:e453/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:61839 errors:0 dropped:0 overruns:0 frame:0 TX packets:60930 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6300546 (6.0 MiB) TX bytes:11935948 (11.3 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:240 (240.0 b) TX bytes:240 (240.0 b) #使用admin組用戶測試: [admin@rsyncmaster ~]$ sudo ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:D3:E4:53 inet addr:172.16.100.7 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fed3:e453/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:62130 errors:0 dropped:0 overruns:0 frame:0 TX packets:61216 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6324018 (6.0 MiB) TX bytes:11965210 (11.4 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:240 (240.0 b) TX bytes:240 (240.0 b)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。