Linux系統(tǒng)sudo命令怎么用詳解
Linux系統(tǒng)我們需要切換用戶身份時(shí)候,用到什么命令呢。下面由學(xué)習(xí)啦小編為大家整理了每天一個(gè)Linux命令之sudo命令詳解,希望對(duì)大家有幫助!
每天一個(gè)Linux命令之sudo命令詳解
sudo命令用來以其他身份來執(zhí)行命令,預(yù)設(shè)的身份為root。在/etc/sudoers中設(shè)置了可執(zhí)行sudo指令的用戶。若其未經(jīng)授權(quán)的用戶企圖使用sudo,則會(huì)發(fā)出警告的郵件給管理員。用戶使用sudo時(shí),必須先輸入密碼,之后有5分鐘的有效期限,超過期限則必須重新輸入密碼。
語法
sudo(選項(xiàng))(參數(shù))
選項(xiàng)
-b:在后臺(tái)執(zhí)行指令;
-h:顯示幫助;
-H:將HOME環(huán)境變量設(shè)為新身份的HOME環(huán)境變量;
-k:結(jié)束密碼的有效期限,也就是下次再執(zhí)行sudo時(shí)便需要輸入密碼;。
-l:列出目前用戶可執(zhí)行與無法執(zhí)行的指令;
-p:改變?cè)儐柮艽a的提示符號(hào);
-s:執(zhí)行指定的shell;
-u<用戶>:以指定的用戶作為新的身份。若不加上此參數(shù),則預(yù)設(shè)以root作為新的身份;
-v:延長(zhǎng)密碼有效期限5分鐘;
-V :顯示版本信息。
參數(shù)
指令:需要運(yùn)行的指令和對(duì)應(yīng)的參數(shù)。
每天一個(gè)Linux命令之sudo命令特點(diǎn)
sudo扮演的角色注定了它要在安全方面格外謹(jǐn)慎,否則就會(huì)導(dǎo)致非法用戶攫取root權(quán)限。同時(shí),它還要兼顧易用性,讓系統(tǒng)管理員能夠更有效,更方便地使用它。sudo設(shè)計(jì)者的宗旨是:給用戶盡可能少的權(quán)限但仍允許完成他們的工作。所以,sudo
有以下特點(diǎn):
# 1. sudo能夠限制指定用戶在指定主機(jī)上運(yùn)行某些命令。
# 2. sudo可以提供日志,忠實(shí)地記錄每個(gè)用戶使用sudo做了些什么,并且能將日志傳到中心主機(jī)或者日志服務(wù)器。
# 3. sudo為系統(tǒng)管理員提供配置文件,允許系統(tǒng)管理員集中地管理用戶的使用權(quán)限和使用的主機(jī)。它默認(rèn)的存放位置是/etc/sudoers。
# 4.sudo使用時(shí)間戳文件來完成類似“檢票”的系統(tǒng)。當(dāng)用戶執(zhí)行sudo并且輸入密碼后,用戶獲得了一張默認(rèn)存活期為5分鐘的“入場(chǎng)券”(默認(rèn)值可以在編譯的時(shí)候改變)。超時(shí)以后,用戶必須重新輸入密碼。
每天一個(gè)Linux命令之sudo命令實(shí)例
1)[sunmeng@localhost Desktop]$ sudo -u root yum install mysql-devel 指定用戶名
[sunmeng@localhost Desktop]$ sudo -u root yum install mysql-devel -u參數(shù)比較有用的地方是在多用戶時(shí),可以臨時(shí)獲得權(quán)限打開用戶獨(dú)占的文件
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.cqu.edu.cn
* extras: mirrors.cqu.edu.cn
* updates: mirrors.cqu.edu.cn
正在解決依賴關(guān)系
--> 正在檢查事務(wù)
......
--> 解決依賴關(guān)系完成
依賴關(guān)系解決
=============================================================================================================
Package 架構(gòu) 版本 源 大小
=============================================================================================================
正在安裝:
mariadb-devel x86_64 1:5.5.47-1.el7_2
......
作為依賴被升級(jí):
krb5-libs.x86_64 0:1.13.2-12.el7_2 krb5-workstation.x86_64 0:1.13.2-12.el7_2
openssl.x86_64 1:1.0.1e-51.el7_2.5 openssl-libs.x86_64 1:1.0.1e-51.el7_2.5
pcre.x86_64 0:8.32-15.el7_2.1 zlib.x86_64 0:1.2.7-15.el7
完畢!
2)sudo命令與rpm命令結(jié)合使用的幾個(gè)例子
[sunmeng@localhost Desktop]$ sudo rpm -q MySQL-embedded-5.5.28-1.linux2.6.i386.rpm
[sudo] password for sunmeng:
未安裝軟件包 MySQL-embedded-5.5.28-1.linux2.6.i386.rpm
[sunmeng@localhost Desktop]$ sudo rpm -qpR MySQL-embedded-5.5.28-1.linux2.6.i386.rpm
MySQL-devel
libaio.so.1
libaio.so.1(LIBAIO_0.1)
libaio.so.1(LIBAIO_0.4)
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libc.so.6(GLIBC_2.3.3)
libcrypt.so.1
libcrypt.so.1(GLIBC_2.0)
libdl.so.2
libdl.so.2(GLIBC_2.0)
libdl.so.2(GLIBC_2.1)
libm.so.6
libm.so.6(GLIBC_2.0)
libm.so.6(GLIBC_2.1)
libncurses.so.5
libpthread.so.0
libpthread.so.0(GLIBC_2.0)
libpthread.so.0(GLIBC_2.1)
libpthread.so.0(GLIBC_2.2)
libpthread.so.0(GLIBC_2.3.2)
librt.so.1
librt.so.1(GLIBC_2.2)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
3)[sunmeng@localhost Desktop]$ sudo -l 列出用戶可以執(zhí)行的命令
[sunmeng@localhost Desktop]$ sudo -l
匹配此主機(jī)上 sunmeng 的默認(rèn)條目:
requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC
KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME
LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
用戶 sunmeng 可以在該主機(jī)上運(yùn)行以下命令:
(ALL) ALL
4[root@localhost Desktop]# sudo -i 以目標(biāo)身份登錄一個(gè)shell
[root@localhost Desktop]# sudo -i
[root@localhost ~]# sudo -i