歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 每天一個Linux命令之sudo命令詳解

每天一個Linux命令之sudo命令詳解

日期:2017/8/19 9:45:36   编辑:Linux技術

  Linux系統的sudo命令是切換用戶身份的命令。下面由學習啦小編為大家整理了每天一個Linux命令之sudo命令詳解,希望對大家有幫助!

  每天一個Linux命令之sudo命令詳解

  sudo命令用來以其他身份來執行命令,預設的身份為root。在/etc/sudoers中設置了可執行sudo指令的用戶。若其未經授權的用戶企圖使用sudo,則會發出警告的郵件給管理員。用戶使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過期限則必須重新輸入密碼。

  語法

  sudo(選項)(參數)

  選項

  -b:在後台執行指令;

  -h:顯示幫助;

  -H:將HOME環境變量設為新身份的HOME環境變量;

  -k:結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼;。

  -l:列出目前用戶可執行與無法執行的指令;

  -p:改變詢問密碼的提示符號;

  -s:執行指定的shell;

  -u<用戶>:以指定的用戶作為新的身份。若不加上此參數,則預設以root作為新的身份;

  -v:延長密碼有效期限5分鐘;

  -V :顯示版本信息。

  參數

  指令:需要運行的指令和對應的參數。

  每天一個Linux命令之sudo命令特點

  sudo扮演的角色注定了它要在安全方面格外謹慎,否則就會導致非法用戶攫取root權限。同時,它還要兼顧易用性,讓系統管理員能夠更有效,更方便地使用它。sudo設計者的宗旨是:給用戶盡可能少的權限但仍允許完成他們的工作。所以,sudo

  有以下特點:

  # 1. sudo能夠限制指定用戶在指定主機上運行某些命令。

  # 2. sudo可以提供日志,忠實地記錄每個用戶使用sudo做了些什麼,並且能將日志傳到中心主機或者日志服務器。

  # 3. sudo為系統管理員提供配置文件,允許系統管理員集中地管理用戶的使用權限和使用的主機。它默認的存放位置是/etc/sudoers。

  # 4.sudo使用時間戳文件來完成類似“檢票”的系統。當用戶執行sudo並且輸入密碼後,用戶獲得了一張默認存活期為5分鐘的“入場券”(默認值可以在編譯的時候改變)。超時以後,用戶必須重新輸入密碼。

  每天一個Linux命令之sudo命令實例

  1)[sunmeng@localhost Desktop]$ sudo -u root yum install mysql-devel        指定用戶名

  [sunmeng@localhost Desktop]$ sudo -u root yum install mysql-devel                  -u參數比較有用的地方是在多用戶時,可以臨時獲得權限打開用戶獨占的文件

  已加載插件:fastestmirror, langpacks

  Loading mirror speeds from cached hostfile

  * base: mirrors.cqu.edu.cn

  * extras: mirrors.cqu.edu.cn

  * updates: mirrors.cqu.edu.cn

  正在解決依賴關系

  --> 正在檢查事務

  ......

  --> 解決依賴關系完成

  依賴關系解決

  =============================================================================================================

  Package 架構 版本 源 大小

  =============================================================================================================

  正在安裝:

  mariadb-devel x86_64 1:5.5.47-1.el7_2

  ......

  作為依賴被升級:

  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命令結合使用的幾個例子

  [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        列出用戶可以執行的命令

  [sunmeng@localhost Desktop]$ sudo -l

  匹配此主機上 sunmeng 的默認條目:

  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 可以在該主機上運行以下命令:

  (ALL) ALL

  4[root@localhost Desktop]# sudo -i           以目標身份登錄一個shell

  [root@localhost Desktop]# sudo -i

  [root@localhost ~]# sudo -i

Copyright © Linux教程網 All Rights Reserved