1. 程式人生 > >Linux伺服器許可權管理之sudo高階應用

Linux伺服器許可權管理之sudo高階應用

      Linux系統修改許可權與預設許可權,它都是徵對使用者對於目錄或檔案的一些許可權控制,那麼其實真正從安全性角度上來考慮的話,是要控制使用者一定執行命令的許可權,也就是哪些使用者可以執行哪些命令,不可以執行哪些命令,因此也就有了sudo這個應用

對於sudo提權,也就是修改/etc/sudoers的配置檔案

[[email protected]~]# ls -ll /etc/sudoers

-r--r-----.1 root root 5870 Aug 19 16:53 /etc/sudoers

可以看出/etc/sudoers預設的許可權是440(也是系統比較安全的許可權設定),當然了超級管理員肯定是有許可權修改其檔案內容的,不然還不哦哦了...........。

修改sudoers檔案注意事項

1、操作時最好用echo >>追加,不過cat sed同樣也可以實現(不常用)

2、修改完成後一定記得檢查語法visudo -c

3、確保/etc/sudoers預設的許可權是440(防止許可權誤用)

4、及時驗證修改的配置是否正確

5、確保知道root密碼,以便普通使用者可以通過sudo su -命令切換

檢視 sudoers檔案

 [[email protected]~]# cat /etc/sudoers

# Sudoers allows particular users torun various commands as

## Examples are provided at the bottomof the file for collections

## of related commands, which can thenbe delegated out to particular

## users or groups.

## This file must be edited with the'visudo' command.

## Host Aliases

## Groups of machines. You may preferto use hostnames (perhaps using 

## wildcards for entire domains) or IPaddresses instead.

# Host_Alias     MAILSERVERS= smtp, smtp2

## User Aliases

## These aren't often necessary, as youcan use regular groups

## (ie, from files, LDAP, NIS, etc) inthis file - just use %groupname 

## rather than USERALIAS

# User_Alias ADMINS = jsmith, mikem

修改時儘量複製系統的格式進行相關修改,防止配置錯誤,難以改正

修改授權某使用者許可權成功後,切換到使用者下面,用sudo -l 來檢視自己擁有哪些許可權

[[email protected] ~]$ sudo -l

[sudo] password for yuw001: 

User yuw001 may run the followingcommands on this host:

    (root) /bin/ping,/bin/hostname, /usr/bin/free, /sbin/route,

/bin/netstat

使用命令時記得加上sudo 

[[email protected] ~]$ hostname  linux

hostname: you must be root to changethe host name

[[email protected] ~]$ /bin/hostname linux

hostname: you must be root to changethe host name

[[email protected] ~]$ sudo hostnamelinux 

[[email protected] ~]#          退出重新登陸後發現主機名修改成功

配置檔案一行是一個規則,前面都會用#進行註釋,用‘\’續行(換行)

sudoers配置檔案別名型別

別名型別分為以下幾類

a、Host_Alias(主機別名)

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

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

 b、User_Alias(使用者別名)

如果是表示使用者組那麼前面要加%

root   ALL=(ALL)       ALL        root就是使用者別名的應用位置

User_AliasADMINS = jsmith, mikem

c、Runas_Alias別名

此別名是指定“使用者身份”,即 sudo允許切換到的使用者

root   ALL=(ALL)      ALL        第二個(ALL)就是使用者別名的應用位置

Runas_Alias OP = root  

d、Cmnd_Alias(命令別名)

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

root   ALL=(ALL)      ALL        第三個ALL就是使用者別名的應用位置

Cmnd_AliasDRIVERS = /sbin/modprobe

說明

I.       使用者別名中的使用者必須是系統真實存在的,書寫時注意空格,使用者別名具有特殊意義,使用者別名必須使用大寫

II.       命令別下的成員必須使用絕對路徑,可以用‘\’換行

sudoers配置檔案授權規則

授權規則就是執行的規則,授權中的所有ALL必須大寫

## Allow root to run any commandsanywhere 

root       ALL=(ALL)      ALL

yumw    ALL=(ALL)      /usr/sbin/useradd,/usr/sbin/userdel 

###user group sa allow to run commandsanywhere

yuw  ALL=/usr/sbin*,/sbin*

sa    ALL=/usr/sbin*,/sbin*,!/sbin/fdisk  

!表示禁止執行這個命令

 [[email protected] ~]$ sudo -l

User sa may run the following commandson this host:

    (root) /usr/bin*, (root)/sbin*, (root) !/sbin/fdisk

[[email protected] ~]$ sudo fdisk

Sorry, user sa is not allowed toexecute '/sbin/fdisk' as root on linux.

如果將配置做下修改

###user group sa allow to run commandsanywhere

yuw  ALL=/usr/sbin*,/sbin*

sa    ALL= !/sbin/fdisk,/usr/sbin*,/sbin*

 [[email protected] ~]$ sudo -l

User sa may run the following commandson this host:

    (root) /usr/bin*, (root)/sbin*, (root) !/sbin/fdisk

然後進行測試

[[email protected] ~]# su - sa

[[email protected] ~]$ sudo fdisk

[sudo] password for sa: 

Usage:

 fdisk [options] <disk>   change partition table

 fdisk [options] -l <disk>list partition table(s)

 fdisk -s <partition>     give partition size(s) in blocks

Options:

 -b <size>              sector size (512, 1024, 2048 or 4096)

 -c                          switch offDOS-compatible mode

 -h                          print help

 -u <size>              give sizes in sectors instead of cylinders

 -v                          print version

 -C <number>        specify the number of cylinders

 -H <number>        specify the number of heads

 -S <number>         specify the number of sectors per track

所以經測試結果表明,sa   ALL= !/sbin/fdisk ,/usr/sbin*,/sbin*命令執行的匹配規則是從後到前的,所以後面執行sudofdisk不會提示許可權不足的現像

更多內容請關注民工哥的個人公眾號——友侃有笑

掃描下方二維碼圖片關注公眾號——友侃有笑


相關推薦

Linux伺服器許可權管理sudo高階應用

      Linux系統修改許可權與預設許可權,它都是徵對使用者對於目錄或檔案的一些許可權控制,那麼其實真正從安全性角度上來考慮的話,是要控制使用者一定執行命令的許可權,也就是哪些使用者可以執行哪些

20181126檔案許可權管理高階許可權suid

檔案許可權管理之:高階許可權suid [[email protected] ~]# touch /root/file1.txt[[email protected] ~]# ll /root/file1.txt-rw-r--r--. 1 root root 0 11月 9 09:02 /r

Linux檔案許可權管理 讀寫執行許可權

經過了入門篇的介紹,相信小夥伴們都已經瞭解了Linux檔案許可權的基礎相關知識了,下面就來了解一下讀寫執行許可權。 在Linux系統中,對於檔案和目錄的許可權無外乎三個——讀、寫、執行。 (一)對於檔案: 許可權 作用 操作 r 讀取內容 c

Linux 檔案許可權管理 ACL

一 ACL 許可權簡介   Linux 下使用者對檔案的操作許可權有 r-讀, w-寫, x-可執行三種,而對linux 下的檔案而言,使用者身份分為:所有者, 所屬組, 其它人, 且檔案的所有者,所屬組都只能是一個,所以在對檔案分配使用者的使用許可權時,只能對這三種身份進

Linux系列教程(十七)——Linux權限管理文件系統系統屬性chattr權限和sudo命令

系統屬性 brush 選項 all 好的 幫助 博客 簡單 命令   上篇博客我們介紹了權限管理的ACL權限,通過設定 ACL 權限,我們為某個用戶指定某個文件的特定權限。這篇博客我們將介紹權限管理中用的比較多的兩個命令 chattr 和 sudo 。 1、設定文件系統

雲端計算linux伺服器使用者管理

技術背景:        工程師A:公司裡那麼多伺服器,每天伺服器上都會建立些新使用者,這樣不安全        工程師B:不給他們建立使用者的許可權不就好了?        工程師A:不放權,事事都自己管,那不累死了       工程師B:那就寫指令碼監控,這樣就知

linux系統檔案許可權管理 'ACL'

一 ACL 許可權簡介 Linux 下使用者對檔案的操作許可權有 r-讀, w-寫, x-可執行三種,而對linux 下的檔案而言,使用者身份分為:所有者, 所屬組, 其它人, 且檔案的所有者,所屬組都只能是一個,所以在對檔案分配使用者的使用許可權時,只能對這三種身份進行分配rwx 許可

linux下搭建git伺服器 許可權管理

1、新增git使用者 useradd -m git 2、修改git使用者密碼(密碼為git) passwd git 3、解壓git-1.7.12.2.tar.gz並安裝git tar -x

Linux用戶管理使用/bin/false和/usr/sbin/nologin拒絕用戶登錄及其功能分析(轉)

其他 spa 狀態 roo 服務器 linux用戶 密碼 targe let /bin/nologin,/bin/false的意思是禁止某個用戶登錄。 比較常用的用法: #添加一個不能登錄的用戶 useradd -d /usr/local/apache -g ap

linux磁盤管理df和du命令

director comm 方式 問題 參數 war 管理 缺省 ID df 查看已掛載磁盤的總容量、使用容量、剩余容量等,可以不加任何參數,默認是按k為單位顯示的 df常用參數有 –i -h -k –m等 -i 使用inodes 顯示結果 -h 使用合適的單位顯示

Linux程序包管理rpm

ont 版本 查詢 bsp 自己 軟件包 詳解 manage IT rpm簡介 rpm( Red Hat Package Manager )是一個開放的軟件包管理系統。它工作於Red Hat Linux及其他Linux系統,成為Linux中公認的軟件包管理標準。

Linux程序包管理yum源安裝

文件夾 ide IT update 事務 lob dde 重新安裝 顯示 yum源安裝是我們工作中常用的一種方式,它是在Fedora和RedHat以及SUSE中基於rpm的軟件包管理器,它可以使系統管理人員交互和自動化地更細與管理RPM軟件包,能夠從指定的服務器自動下載RP

Linux軟件管理src源碼安裝編譯

可能 form 就是 參考 install 官方 dev fluent 幫助 在很多時候我們需要自定義軟件的特性,這時就需要用到源碼安裝。那麽,網上有很多編譯源碼的工具,那麽,我們怎麽知道別人使用的是什麽工具呢。其實我也不知道(*^▽^*)。 那麽本篇博客主要是寫C代碼的源

Linux文件管理文件權限判斷邏輯

ges shadow x文件 ado roc 管理 vpd color linux文件 Linux文件管理之文件權限判斷邏輯

Linux 筆記 - 第十三章 Linux 系統日常管理(三)Linux 系統日誌和服務

pac ica link tor 包含 3.1 request closed comm 博客地址:http://www.moonxy.com 一、前言 日誌文件記錄了系統每天發生的各種各樣的事情,比如監測系統狀況、排查問題等。作為系統運維人員可以通過日誌來檢查錯誤發生的原因

Linux 筆記 - 第十三章 Linux 系統日常管理(四)Linux 數據備份工具 rsync 和網絡配置

方法 target speed cnblogs rsync -av html links 布爾值 單個 博客地址:http://www.moonxy.com 一、前言 sync 命令是一個遠程數據同步工具,可通過 LAN/WAN 快速同步多臺主機間的文件,可以理解為 rem

linux進程管理進程創建(三)

while 變量 call 兩次返回 pen lan under strong () 在linux系統中,許多進程在誕生之初都與其父進程共同用一個存儲空間。但是子進程又可以建立自己的存儲空間,並與父進程“分道揚鑣”,成為與父進程一樣真正意義上的進程。 linux系統運行的

linux進程管理輕量級進程(四)

lin 內存 文件 bsp 內核 inf 最小 進程 one 在Linux中,輕量級進程可以是進程,也可以是線程。我們所說的線程,在Linux中,其實是輕量級進程之間共享代碼段,文件描述符,信號處理,全局變量時; 如果不共享,就是我們所說的進程。 進程是資源管理的最小單位,

名詞解釋:Linux內存管理RSS和VSZ

linux 大小 進制 side 計算 span res linu 進程 Linux內存管理中不管是top命令還是pmap命令,都會有RSS和VSZ這兩個名詞,這裏解釋一下: RSS( Resident Set Size )常駐內存集合大小,表示相應進程在RAM中

Linux 記憶體管理vmalloc實現

vmalloc最小分配一個page.並且分配到的頁面不保證是連續的.因為vmalloc內部呼叫alloc_page多次分配單個頁面. vmalloc主要內容: 1. 從VMALLOC_START到VMALLOC_END查詢空閒的虛擬地址空間(hole) 2.根據分配的size,呼叫all