深入理解sudo

来源:https://www.cnblogs.com/caicairui/archive/2018/02/12/8444777.html
-Advertisement-
Play Games

註意:修改完(visudo)之後,需要visudo -c檢查一下是否有錯誤。 sudo -l查看用戶擁有的許可權。 1、sudoers配置文件別名介紹 (1)Host Aliases(主機別名) 生產環境中一般不會設置主機別名,一般主機別名不太常用 配置服務 創建日誌保存目錄 [root@localh ...


[root@cairui ~]# cat /etc/sudoers
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.        #sudoers允許特定的用戶去執行各種命令以rot的身份,不需要root密碼。
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
## 
## This file must be edited with the 'visudo' command.

## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using 
## wildcards for entire domains) or IP addresses instead.
# Host_Alias     FILESERVERS = fs1, fs2
# Host_Alias     MAILSERVERS = smtp, smtp2

## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname 
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem


## Command Aliases
## These are groups of related commands...

## Networking
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

## Installation and management of software
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

## Services
# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig

## Updating the locate database
# Cmnd_Alias LOCATE = /usr/bin/updatedb

## Storage
# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

## Delegating permissions
# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp 

## Processes
# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

## Drivers
# Cmnd_Alias DRIVERS = /sbin/modprobe

# Defaults specification

#
# Refuse to run if unable to disable echo on the tty.
#
Defaults   !visiblepw

#
# Preserving HOME has security implications since many programs
# use it when searching for configuration files. Note that HOME
# is already set when the the env_reset option is enabled, so
# this option is only effective for configurations where either
# env_reset is disabled or HOME is present in the env_keep list.
#
Defaults    always_set_home

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

#
# Adding HOME to env_keep may enable a user to run unrestricted
# commands via sudo.
#
# Defaults   env_keep += "HOME"

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

## Next comes the main part: which users can run what software on 
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
##     user    MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere 
root    ALL=(ALL)     ALL

## Allows members of the 'sys' group to run networking, software, 
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands
# %wheel    ALL=(ALL)    ALL

## Same thing without a password
# %wheel    ALL=(ALL)    NOPASSWD: ALL

## Allows members of the users group to mount and unmount the 
## cdrom as root
# %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

## Allows members of the users group to shutdown this system
# %users  localhost=/sbin/shutdown -h now

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d

註意:修改完(visudo)之後,需要visudo -c檢查一下是否有錯誤。

sudo -l查看用戶擁有的許可權。

 

1、sudoers配置文件別名介紹

(1)Host Aliases(主機別名)

    生產環境中一般不會設置主機別名,一般主機別名不太常用

root    ALL=(ALL)     ALL    #第一個ALL就是主機別名的應用位置

(2)
User Aliases(用戶別名)
如果表示用戶組那麼前面加%
root    ALL=(ALL)     ALL    #root就是用戶別名的應用位置
User_Aliases ADMINS = jsmith,mikem

(3)Runas_Alias別名
此別名是指定“用戶身份”,即sudo允許切換到的用戶
root    ALL=(ALL)     ALL    #第二個ALL就是用戶別名的應用位置
Runas_Alias OP = root

(4)Cmnd_Alias(命令別名)
就是定義一個別名,它可以包含一堆命令的內容(一組相關命令的集合)
root    ALL=(ALL)     ALL    

Cmnd_Alias DRIVERS = /sbin/modpro

2、sudo日誌審計
(1)生產環境中日誌方案
    a、syslog全部操作日誌審計,這種方法信息量大,不便查看
    b、sudo日誌配置syslog服務進行日誌審查
    c、堡壘機日誌審查
    d、bash安裝監視器,記錄用戶使用操作
(2)配合sudo日誌審計
安裝sudo與syslog服務

配置服務

創建日誌保存目錄

[root@localhost ~]# mkdir -p /var/log/

查看伺服器版本,6.x為/etc/rsyslog.conf,5.x版本為syslog.conf

上述為rsyslog的配置文件

 

上述為sudoers的配置文件

測試結果:

[root@localhost ~]# su - cairui
[cairui@localhost ~]$ sudo visudo
[sudo] password for cairui: 
visudo: /etc/sudoers.tmp unchanged
[cairui@localhost ~]$ cd /tmp/
[cairui@localhost tmp]$ touch 123.txt
[cairui@localhost tmp]$ sudo ll
sudo: ll: command not found
[cairui@localhost tmp]$ sudo ls -ll
total 0
-rw-rw-r--  1 cairui cairui 0 Feb 12 09:41 123.txt
-rw-------. 1 root   root   0 Feb  9 09:57 yum.log
[cairui@localhost tmp]$ sudo cat /var/log/sudo.log 
Feb 12 09:41:19 : cairui : TTY=pts/0 ; PWD=/home/cairui ; USER=root ;
    COMMAND=/usr/sbin/visudo
Feb 12 09:41:47 : cairui : TTY=pts/0 ; PWD=/tmp ; USER=root ; COMMAND=/bin/ls
    -ll
Feb 12 09:42:12 : cairui : TTY=pts/0 ; PWD=/tmp ; USER=root ; COMMAND=/bin/cat
    /var/log/sudo.log

 





 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在C#的繼承中嘗嘗會用到相關的修飾詞:override和new。這兩個修飾符都可以在新的子類中,重寫同名的父類方法。 override: 擴展或修改繼承的方法、屬性、索引器或事件的抽象或虛擬實現需要使用到。 new:在用作聲明修飾符時,new 關鍵字可以顯式隱藏從基類繼承的成員。 隱藏繼承的成員時, ...
  • 1.下載ABP項目模板, 打開網址https://aspnetboilerplate.com/Templates,選擇MultiPage Web Application,輸入項目名稱和驗證碼,即可點擊Create My Project按鈕下載代碼 2.下載完成之後,會跳到https://aspnet ...
  • 支持:可指定絕對過期時間、滑動過期明間、文件依賴 三種緩存方式,目前已在公司各種生產業務項目中有使用。優點是可以根據數據的使用頻率設置緩存有效期,特別是文件依賴緩存,比如:連接字元串讀取一次後,若CONFIG文件沒有改變,則緩存永久有效,一旦CONFIG更改,則緩存失效需重新讀取,保證數據緩存的最大 ...
  • 一個業務功能往往不只由一次資料庫請求(或者服務調用)實現。為了功能的完整性,我們希望如果該功能執行一半時出錯,則撤銷前面已執行的改動。在資料庫層面上,事務管理實現了這種完整性需求。在ABP中,一個完整的業務功能稱為一個工作單元(Unit of Work,簡稱UoW)。工作單元代表一種完整的、原子性的 ...
  • 剪切 快捷鍵方式: ~~~~ dd:剪切游標所處當前行 n + dd:剪切游標所在行及以下共 n 行 按 p 粘貼在游標所在行 ~~~~ 命令行方式: ~~~~ 例如剪切1到10行,並粘貼在12行處: 1,10 m 12 ~~~~ 複製 快捷鍵方式: ~~~~ yy:複製游標所處當前行 n + yy ...
  • 因為手頭沒有安卓手機,無法調試模塊的AP模式,於是我使用了筆記本電腦——路由器——無線模塊的STA模式調試。 其中只測試了三種情況:TCP伺服器。TCP客戶端。UDP(我認為是UDP客戶端)。 1.需要修改MDK5的源代碼SSID和password (1)模塊做TCP伺服器 1.模塊的IP地址已經在 ...
  • 在編寫腳本的時候經常會遇到這種情況,某些程式的命令執行的之後可能會要求用戶進行輸入,這個時候就需要一些特殊寫法來應對這種問題了。這裡參考 "這篇文章" 提到可以使用 delimiter 分界符來解決。 也就是說在 Shell 將 delimiter 分界符之後的的所有內容都會當做輸入,直到遇到第二個 ...
  • Nagios Check_hp HP 2014年11月18日 下午 08:49 https://IP:2381 [root@nagios ~]# tar zxvf check_hp_bladechassis-1.0.1.tar.gz [root@nagios check_hp_bladechassi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...