接觸Linux的朋友應(yīng)該都接觸sudo這個(gè)命令,特別是剛一接觸ubuntu朋友,只要進(jìn)入系統(tǒng)執(zhí)行特殊的命令都需要在命令前加+sudo命令才能執(zhí)行命令,sudo到到底是個(gè)什么神器呢?sudo是個(gè)統(tǒng)管一切的命令。它的字面意思是代表“超級(jí)用戶才能做!”(super user do!) 也可以使用 su - "switch user",但是使用su方式容易將系統(tǒng)用戶密碼泄露,導(dǎo)致系統(tǒng)不安全,由于root用戶權(quán)限過大,在實(shí)際生產(chǎn)過程中很少使用root用戶直接登錄系統(tǒng),而是使用普通用戶登錄系統(tǒng);但是如果普通用戶要對(duì)系統(tǒng)進(jìn)行日常維護(hù)操作時(shí)需要su到root用戶,為了提高安全性,可以使用sudo授權(quán)某一用戶在某一主機(jī)以某一用戶身份運(yùn)行某些命令;從而減少root用戶密碼知曉人,提高系統(tǒng)安全性。
我們提供的服務(wù)有:網(wǎng)站制作、網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、饒陽ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的饒陽網(wǎng)站制作公司
sudo的優(yōu)勢(shì):
①授權(quán)指定用戶在指定的主機(jī)上運(yùn)行指定的管理命令;
②sudo審計(jì)安全性:將一些管理命令授權(quán)給某些普通用戶使用,并且還能限定其僅能夠在某些主機(jī)上執(zhí)行此類的命令,操作過程還會(huì)被記錄與日志中,以便于日后審計(jì);
③"檢票系統(tǒng)":時(shí)效性認(rèn)證,用戶第一次執(zhí)行sudo命令時(shí)會(huì)要求輸入密碼來驗(yàn)證用戶身份,成功后用戶會(huì)獲得一個(gè)有固定存活時(shí)長的"令牌"(令牌默認(rèn)存活時(shí)長為5分鐘)
sudo常用參數(shù):
##參數(shù) -V 顯示版本編號(hào) -h 會(huì)顯示版本編號(hào)及指令的使用方式說明 -l 會(huì)顯示出自己(執(zhí)行sudo的使用者)的權(quán)限 -v 因?yàn)閟udo在第一次執(zhí)行時(shí)或是在N分鐘內(nèi)沒有執(zhí)行(N預(yù)設(shè)為五)會(huì)問密碼,這個(gè)參數(shù)是重新做一次確認(rèn),如果超過N 分鐘,也會(huì)問密碼 -k 將會(huì)強(qiáng)迫使用者在下一次執(zhí)行sudo時(shí)問密碼(不論有沒有超過N分鐘) -b 將要執(zhí)行的指令放在后臺(tái)后臺(tái)執(zhí)行
使用sudo的過程:
sudo的授權(quán)文件:/etc/sudoers,只有管理員能夠編輯
1、實(shí)現(xiàn)sudo授權(quán)的方法
①使用vim打開編輯:
可以實(shí)現(xiàn)文本著色,但是不能檢測(cè)語法錯(cuò)誤,不建議使用
②visudo:專用的sudoers文本編輯工具
配置完成后能夠檢測(cè)提示語法錯(cuò)誤,建議使用此編輯工具進(jìn)行/etc/sudoers進(jìn)行編輯
幫助文檔:man visudo;man visudoers
③定義sudo授權(quán),/etc/sudoers
語法: who which_host=(whom) command
誰能以誰的身份,在那些主機(jī)上執(zhí)行那些命令
sudo配置文件別名應(yīng)用:
別名:Alias(都以大寫字母定義)
Host_Alias:定義主機(jī)別名,使用,分隔
User_Alias:定義用戶別名,可以是用戶名,也可以是組名(%組名)
Cmnd_Alias:定義命令別名,可以定義不能執(zhí)行的命令,使用!/usr/bin/passwd root
Runas_Alias:定義以那些用戶執(zhí)行
NOPASSWD:定義用戶執(zhí)行命令時(shí)可以不輸入密碼
PASSWD:定義用戶執(zhí)行命令時(shí)需要輸入密碼
sudo案例應(yīng)用:
授權(quán)samlee用戶擁有添加用戶權(quán)限、修改密碼權(quán)限,但不能修改root密碼(防止用戶修改root密碼):
[root@rsyncmaster ~]# visudo samlee ALL=(root) /usr/sbin/useradd, /usr/bin/passwd, ! /usr/bin/passwd root
使用samlee登錄測(cè)試:
[samlee@rsyncmaster ~]$ sudo useradd samleetest #創(chuàng)建用戶沒有問題 [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別名定義及別名調(diào)用
[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
測(cè)試;samlee用戶登錄測(cè)試指定的相關(guān)命令:
#建立測(cè)試用戶及測(cè)試組 [root@rsyncmaster ~]# groupadd admin [root@rsyncmaster ~]# useradd -g admin admin [root@rsyncmaster ~]# passwd admin #使用samlee用戶測(cè)試: [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組用戶測(cè)試: [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)