日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sodu 命令场景分析

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sodu 命令场景分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘自:http://www.cnblogs.com/hazir/p/sudo_command.html?

sudo 命令情景分析

Linux 下使用?sudo?命令,可以讓普通用戶也能執行一些或者全部的 root 命令。本文就對我們常用到 sudo 操作情景進行簡單分析,通過一些例子來了解 sudo 命令相關的技巧。

情景一:用戶無權限執行 root 命令

普通用戶登錄 shell 之后,如果自身沒有權限訪問某個文件或執行某個命令時,若該用戶獲得root授權,那么就可以在需要執行的命令之前加上 sudo,臨時切換到root用戶的權限,完成相關的操作。在sudo于1980年前后被寫出之前,一般用戶管理系統的方式是利用su切換為超級用戶。但是使用su的缺點之一在于必須要先告知超級用戶的密碼,而sudo使一般用戶不需要知道超級用戶的密碼即可獲得權限。

那么哪些用戶可以臨時獲得 root 權限呢?這就需要在 /etc/sudoers 文件中進行配置:

授權給單個用戶:

# User privilege specification guohl ALL=(ALL) ALL

上面這個例子中:

  • guohl:允許使用 sudo 的用戶名
  • ALL:允許從任何終端(任何機器)使用 sudo
  • (ALL):允許以任何用戶執行 sudo 命令
  • ALL:允許 sudo 權限執行任何命令

如果我們想讓用戶 test 只能在本主機(主機名為guohl-pc)以 root 賬戶執行/bin/chown、/bin/chmod 兩條命令,那么就應該這樣配置:

# User privilege specification test guohl-pc=(root) /bin/chown,/bin/chmod

如果test 登錄之后運行 sudo 命令,不滿足上面三個條件命令均失敗。

授權給用戶組:

# Allow members of group sudo to execute any command # (Note that later entries override this, so you might need to move it further down) %sudo ALL=(ALL) ALL

和授權給單個用戶類似,只不過將用戶名在這里換成%組名,所有在該組中的用戶都按照此規則進行授權。對于該例,所有在 sudo 組內的用戶都有在任何終端(第一個ALL)、以任何用戶(第二個ALL)、執行任何命令(第三個ALL)的權限,查看 /etc/group 文件可以知道哪些用戶屬于 sudo 組。

舉例:

如果當前帳號在 /etc/sudoers 文件中被授予 sudo 的權限,那么你就可以將任何 root 命令作為 sudo 命令的參數,使用 root 權限來執行該命令。舉例來說,掛載一個文件系統只能由 root 來執行,但是一個普通用戶也可以使用 sudo 來掛載:

$sudo mount /dev/sda7 /mnt [sudo] password for guohailin:

首次使用會要求你輸入當前用戶的密碼,系統確實輸入正確即以 root 權限來執行 mount 命令,接下來一段時間(默認為5分鐘)再次使用 sudo 命令就不需要輸密碼了。

情景二:vim 編輯后發現忘記使用 sudo

我們經常會遇到這樣的一個囧境:使用 vim 對某個文件進行編輯,編輯完之后,按?ESC?之后回到普通模式,再按?:wq?準備保存退出時,發現沒有權限對該文件進行修改,我們在使用 vim 命令時忘記在前面加 sudo 了。我就經常出現這種問題,之前的做法是只能不保存強退,再加上 sudo 重新編輯。

但是今后我們再也不需要用這么愚蠢的做法了,我們可以在 vim 的普通模式下,按?:w !sudo tee %?,這樣就可以 root 權限來保存文件了,你也無需因為自己一時忘記加個 sudo 而沮喪懊惱了!

情景三:執行 root 命令忘記加 sudo

我們還會遇到這樣稍微好一點的情形:輸入一個長長的命令,按?Enter?之后出現無權限操作,因為我們忘記加 sudo 了。大多人的做法是按?↑?回到上一條命令,在該命令之前加上 sudo,再執行該命令。

以后,我們無需這樣了,只要輸入?sudo !!?即可,這里的 !! 代表上一條命令。如:

$ head -n 4 /etc/sudoers head: cannot open `/etc/sudoers' for reading: Permission denied$ sudo !! sudo head -n 4 /etc/sudoers # /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. #

情景四:shell 內置命令如何使用 sudo

shell 是一個交互式的應用程序,在執行外部命令時通過 fork 來創建一個子進程,再通過 exec 來加載外部命令的程序來執行,但是如果一個命令是 shell 內置命令,那么只能直接由 shell 來運行。sudo 的意思是,以別的用戶(如root)的權限來 fork 一個進程,加載程序并運行,因此 sudo 后面不能跟 shell 的內置命令,如:

$ sudo cd /sys/kernel/debugfs sudo: cd: command not found

在這種情況,我們又沒有 root 賬戶的密碼,我們怎樣執行該命令呢?有種辦法就是使用 sudo 獲得root shell 的權限,然后在root shell 中執行該命令。進入root shell 很簡單,輸入sudo bash?確認本用戶的密碼即可,此時你會發現命令提示符顯示當前是 root。一旦獲得root shell,你可以執行任何命令而不需要在每條命令前輸入sudo了。

另外,常用的shell 內置命令在這里?有簡單介紹,我們可以使用 type 命令來查看命令的類型,如:

$ type ls ls is /bin/ls $ type umask umask is a shell builtin

情景五:sudo 操作記錄日志

作為一個 Linux 系統的管理員,不僅可以讓指定的用戶或用戶組作為root用戶或其它用戶來運行某些命令,還能將指定的用戶所輸入的命令和參數作詳細的記錄。而sudo的日志功能就可以用戶跟蹤用戶輸入的命令,這不僅能增進系統的安全性,還能用來進行故障檢修。但是要記錄sudo的日志還要一些簡單的配置:

  • 創建sudo日志文件
    我們將sudo日志文件放置在?/var/log/sudo.log?文件中:

    $ sudo touch /var/log/sudo.log
  • 修改?/etc/rsyslog.conf?配置文件
    我使用系統為Ubuntu13.04 為改名字,但有些系統名為/etc/syslog.conf,注意不同發行版之間的差別,在該文件加入下面一行:

    local2.debug /var/log/sudo.log #空白不能用空格,必須用tab
  • 修改?/etc/sudoers?配置文件
    注意網上很多關于sudo日志文件配置都缺少這一步!在該文件中加入下面一行: Defaults logfile=/var/log/sudo.log
  • 重啟 syslog 服務: $ sudo service rsyslog restart
  • 查看 sudo 日志記錄:
    經過上面的配置,sudo 的所有成功和不成功的sudo
    命令都記錄到文件/var/log/sudo.log 中,例如我運行幾條sudo 命令之后,查看該文件的記錄如下:

    $ cat sudo.log Sep 20 22:10:51 : guohailin : TTY=pts/1 ; PWD=/var/log ; USER=root ;COMMAND=/bin/cat /etc/sudoersSep 20 22:11:36 : guohailin : TTY=pts/1 ; PWD=/var/log ; USER=root ;COMMAND=/usr/sbin/service rsyslog restartSep 20 22:11:45 : guohailin : TTY=pts/1 ; PWD=/var/log ; USER=root ;COMMAND=/bin/lsSep 20 22:12:08 : guohailin : TTY=pts/1 ; PWD=/var/log ; USER=root ;COMMAND=/bin/ls /root/

參考資料:

  • sudo mannual
  • 7 Linux sudo Command Tips and Tricks
  • sudo 日志配置

?

郵箱:haifenglinying#yahoo.cn (#->@)

個人主頁:www.hazirguo.com

轉載于:https://www.cnblogs.com/wangwangever/p/sudo.html

總結

以上是生活随笔為你收集整理的sodu 命令场景分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。