歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux命令

Linux操作系統下Sudo命令的使用方法說明

sudoLinux命令

  “Sudo” 是Unix/Linux平台上的一個非常有用的工具,它允許系統管理員分配給普通用戶一些合理的“權利”,讓他們執行一些只有超級用戶或其他特許用戶才能完成的任務,比如:運行一些像mount,halt,su之類的命令,或者編輯一些系統配置文件,像/etc/mtab, /etc/samba/smb.conf等。這樣以來,就不僅減少了root用戶的登陸次數和管理時間,也提高了系統安全性。

  一. sudo的特點

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

  # 1. sudo能夠限制指定用戶在指定主機上運行某些命令。
  # 2. sudo可以提供日志,忠實地記錄每個用戶使用sudo做了些什麼,並且能將日志傳到中心主機或者日志服務器。
  # 3. sudo為系統管理員提供配置文件,允許系統管理員集中地管理用戶的使用權限和使用的主機。它默認的存放位置是/etc/sudoers。
  # 4.sudo使用時間戳文件來完成類似“檢票”的系統。當用戶執行sudo並且輸入密碼後,用戶獲得了一張默認存活期為5分鐘的“入場券”(默認值可以在編譯的時候改變)。超時以後,用戶必須重新輸入密碼。

  二. sudo命令

  sudo程序本身就是一個設置了SUID位的二進制文件。我們可以檢查一下它的權限:

  $ls -l /usr/bin/sudo
  ---s--x--x 2 root root 106832 02-12 17:41 /usr/bin/sudo

  它的所有者是root,所以每個用戶都可以像root那樣執行該程序。設置了SUID的程序在運行時可以給使用者以所有者的EUID。這也是為什麼設置了SUID的程序必須小心編寫。但是設置一個命令文件的SUID 和用sudo來運行它是不同的概念,它們起著不同的作用。

  sudo的配置都記錄在/etc/sudoers文件中,我們下面將會詳細說明。配置文件指明哪些用戶可以執行哪些命令。要使用sudo,用戶必須提供一個指定用戶名和密碼。注意:sudo需要的不是目標用戶的密碼,而是執行sudo的用戶的密碼。如果不在sudoers中的用戶通過sudo執行命令,sudo會向管理員報告這一事件。用戶可以通過sudo -v來查看自己是否是在sudoers 之中。如果是,它還可以更新你的“入場券”上的時間;如果不是,它會提示你,但不會通知管理員。

  sudo命令格式如下:

  sudo -K | -L | -V | -h | -k | -l | -vsudo [-HPSb] [-a auth_type] [-c
  class|-] [-p prompt] [-u username|#uid] {-e file [...] | -i | -s | command}

  下面我們再來看一下sudo其它常用的一些參數:

  選項 含義 作用
  sudo -h Help 列出使用方法,退出。
  sudo -V Version 顯示版本信息,並退出。
  sudo -l List 列出當前用戶可以執行的命令。只有在sudoers裡的用戶才能使用該選項。
  sudo -u username|#uid User 以指定用戶的身份執行命令。後面的用戶是除root以外的,可以是用戶名,也可以是#uid。

  sudo -k Kill 清除“入場卷”上的時間,下次再使用sudo時要再輸入密碼。

  sudo -K Sure kill 與-k類似,但是它還要撕毀“入場卷”,也就是刪除時間戳文件。

  sudo -b command Background 在後台執行指定的命令。
  sudo -p prompt command Prompt 可以更改詢問密碼的提示語,其中%u會代換為使用者帳號名稱,%h會顯示主機名稱。非常人性化的設計。
  sudo -e file Edit 不是執行命令,而是修改文件,相當於命令sudoedit。

  還有一些不常用的參數,在手冊頁sudo(8)中可以找到。

Copyright © Linux教程網 All Rights Reserved