學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 >

Linux系統(tǒng)sudo命令怎么用詳解

時(shí)間: 加城1195 分享

  Linux系統(tǒng)我們需要切換用戶身份時(shí)候,用到什么命令呢。下面由學(xué)習(xí)啦小編為大家整理了每天一個(gè)Linux命令之sudo命令詳解,希望對(duì)大家有幫助!

  每天一個(gè)Linux命令之sudo命令詳解

  sudo命令用來(lái)以其他身份來(lái)執(zhí)行命令,預(yù)設(shè)的身份為root。在/etc/sudoers中設(shè)置了可執(zhí)行sudo指令的用戶。若其未經(jīng)授權(quán)的用戶企圖使用sudo,則會(huì)發(fā)出警告的郵件給管理員。用戶使用sudo時(shí),必須先輸入密碼,之后有5分鐘的有效期限,超過(guò)期限則必須重新輸入密碼。

  語(yǔ)法

  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í)行與無(wú)法執(zhí)行的指令;

  -p:改變?cè)儐?wèn)密碼的提示符號(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í)間戳文件來(lái)完成類似“檢票”的系統(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

3973407