用戶權限sudo、suid、sgid以及facl等

su

切換用戶或以指定用戶運行命令。

使用su可以指定運行命令的身份(user/group/uid/gid)。

為了向后兼容,su默認不會改變當前目錄,且僅設置HOME和SHELL這兩個環境變量(若目標用戶非root,則還設置USER和LOGNAME環境變量)。推薦使用--login選項(即"-"選項)避免環境變量混亂

-c command使用-c選項傳遞要指定的命令到shell上執行。使用-c執行命令會為每個su都分配新的會話環境?
-, -l, --login

啟動shell作為登錄的shell,模擬真正的登錄環境。它會做下面幾件事:

? ?1.清除除了TERM外的所有環境變 ? ? ? 量
? ?2.初始化HOME,SHELL,USER,

? ? ? LOGNAME,PATH環境變量
? ?3.進入目標用戶的家目錄
? ?4.設置argv[0]為"-"以便設置shell ? ? ? ? 作為登錄的shell使用--login的su ? ? ? 是交互式登錄。不使用--login的 ? ? ? su是非交互式登錄(除不帶任何 ? ? ? ? 參數的su外

(1). 若su沒有給定任何參數,將默認以root身份運行交互式的shell(交互式,所以需要輸入密碼),即切換到root用戶,但只改變HOME和SHELL環境變量。

(2). su - username是交互式登錄,要求密碼,會重置整個環境變量,它實際上是在模擬真實的登錄環境。

(3). su username是非交互登錄,不會重置除HOME/SHELL外的環境變量

-m, -p, --preserve-environment保留整個環境變量(不會重新設置HOME,SHELL,USER和LOGNAME),保留環境的方法是新用戶shell上執行原用戶的各配置文件,如~/.bashrc。當設置了--login時,將忽略該選項
-s SHELL

運行指定的shell而非默認shell,選擇shell的順序優先級如下:
1.--shell指定的shell
2.如果使用了--preserve-environment,選擇SHELL環境變量的shell

?3.選項目標用戶在passwd文件中指定的shell
? 4./bin/sh

sudo

-b ? (background)該選項告訴sudo在后臺執行指定的命令。
? ? ??注意,如果使用該選項,將無法使用任務計劃(job)來控 ? ? ? ? 制維護這些后臺進程,需要交互的命令應該考慮是否真的要后臺,因為可能會失敗
-l[l] [command]:當單獨使用-l選項時,將列出(list)用戶可執行和被禁止的命令。
? ? ? ? ? ? ? ? ? ? ? ? ? 當配合command時,且該command是被允許執行的命令,將列出命令的全路徑及該命令參數。
? ? ? ? ? ? ? ? ? ? ? ? ? 如果command是不被允許執行的,則sudo直接以狀態碼-1退出。
? ? ? ? ? ? ? ? ? ? ? ? ? 可以指定多個字母"l"來顯示更詳細的格式
-n ? ? ? ? ? ? :使得sudo變成非交互模式,但如果安全策略是要求輸入密碼的,則sudo將報錯
-S ? ? ? ? ? ? :(stdin)該選項使得sudo從標準輸入而非終端設備上讀取密碼,給定的密碼必須在尾部加上換行符
-s [command] ? :(shell)指定要切換到的shell,如果給定command,則在此shell上執行該命令
-U user ? ? ? ?:(other user)配合-l選項來指定要列出哪個用戶的權限信息
-u user ? ? ? ?:(user)該選項明確指定要以此處指定的用戶而非root來運行command。
? ? ? ? ? ? ? ? ? ? ?若使用uid的方式指定用戶,則需要使用"#uid",但很多時候可能需要對"#"使用"\"轉義,即使用"\#uid"
-E ? ? ? ? ? ? ? :(environment)該選項告訴sudo在執行命令時保留自己的環境變量,保留環境變量的方式是執行環境配置文件。
? ? ? ? ? ? ? ? ? ? ?但因為跨了用戶,所以很可能某些家目錄下的環境配置文件會因為無權限而執行失敗,此時sudo將報錯 ??
-k [command] ? :當單獨使用-k選項時,sudo將使得用戶的認證緩存失效。下次執行sudo命令需要輸入密碼。
? ? ? ? ? ? ? ? ? ? ? ? ? ?當配合command時,-k選項將忽略用戶的緩存,所以sudo將要求用戶輸入密碼,但這次輸入密碼不會更新認證緩存
? ? ? ? ? ? ? ? ? ? ? ? ? ?但執行-k選項本身,不需要密碼
-K ? ? ? ? ? ? :(sure kill)類似于-k選項,但它會完全移除用戶的認證緩存,且不會配合command,執行-K本身不需要密碼
-v ? ? ? ? ? ? :(validate)該選項使得sudo更新用戶認證緩存
-- ? ? ? ? ? ? :暗示sudo命令行參數到此結束

sudo? -k? ?認證信息失效必須輸入密碼,sudo輸入密碼默認時長5分鐘? ? ? ? ? ? ? ? sudo? -l? 列出當前用戶所有的可以使用的sudo命令? sudo?-h? ? ?列出使用方法,退出。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sudo?-V? ? 顯示版本信息,并退出。
sudo?-u? ? ?以指定用戶的身份執行命令,可以是用戶名,也可以是#uid。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
sudo?-p? ? ?Prompt?????可以更改詢問密碼的提示語,其中%u會代換為使用者帳號名稱,%h會顯示主機名稱。
sudo?-e? ? ?file? ? ?不是執行命令,而是修改文件,相當于命令sudoedit。

?

1. sudo能夠限制指定用戶在指定主機上運行某些命令。
2. sudo可以提供日志,記錄每個用戶使用sudo做了些什么,在配置文件/etc/syslog.cnf添加修改。
3. sudo為系統管理員提供配置文件,允許系統管理員集中地管理用戶的使用權限和使用的主機。它默認的存放位置

4.sudo命令使用必須輸入當前用戶密碼,密碼有效期為5分鐘。超時以后,用戶必須重新輸入密碼。
5.? ?支持別名? ,遵循EBNF描述性語言,字母必須全部大寫,別名可以嵌套別名,可以!取反,必須先定義

? ? ? ? ? ? ? ? ? ? ? ? ? 是/etc/sudoers,用visudo命令修改,一個sudo條目:

? ? ? ? ? ? 用戶? ? ? ?ALL主機=(root)以身身份執行? ? ? NOPASSWD:? 命令 ,? PASSWD:命令? ? !命令

 ? ? ? ? test? ?linux=(test1,test2)??? /bin/ls? ? 用sudo? -u指定用戶運行

? ? ? ? ? ? Defaults:test? ?runas_default=test1? 默認以test1運行,Defaults后面如果有冒號,是對后面用戶的默認,如果沒有,則是? ? ? ? ? ? ? 對所 有?用戶的默認

①用戶名:可以用組,只需在組名前加個百分號%表示。

②主機名:表示該用戶可以在哪些主機上運行sudo,可以用hostname也可以用ip指定。

③可切換的用戶身份,即指定執行命令的用戶,也可以用組。

④權限和命令:允許執行和不允許執行的命令(多個命令間用逗號分隔)和特殊權限,命令可以帶其選項及參數。命令要寫絕對路徑。不允許執行的命令需要在命令前加上"!"來表示。可以使用標簽,如NOPASSWD標簽表示切換或以指定用戶執行該標簽后的命令時不需要輸入密碼。一行寫不下時可使用"\"續行

?

? ? ? ? ? ? ?who? ? ? ? ? ? ? ?User_alias? ? ?USER_ADMIN =? 用戶名,組名%引導

? ? ? ? ? ? ?which host? ? Host_Alias=主機名、ip地址、其他主機別名

? ? ? ? ? ? ?runas? ? ? ? ? ? Run_Alias=用戶名、%組名,其他的別名

? ? ? ? ? ? ?command? ? ?Cmd_Alias=命令路徑,目錄,其他別名? ?

?

?

7.SUID、SGID、STICK

? ? SUID? 以執行文件所屬主身份運行,chmod u+s 文件? ? ,如果原來有執行權限,其他位為s,否則為S

8? ? ? facl利用文件擴展保存額外的訪問控制權限 ,文件屬性后面有+號

? ? ? ?對于一個文件的訪問? ?ower-----》facl? ?ower-----》group-----》facl? group》other

? ? ? ?setfacl? ? ?-m? 設定? ? ? ?u uid? ? ? ??-m? ?u:test:rw? ? ? ?文件? ? 前面加d:,為目錄設置,目錄中創建的文件自動繼承目錄權限

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? g? gid? ? ? ? -m? ?g:group:rw? ?文件? ??

? ? ? ? ? ? ? ? ? ? ? --mask?? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? -x取消設定? ??

? ? ? ?getfacl??

?

? ??

? ?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535617.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535617.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535617.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 服務器調優

關于 MySQL 調優 有 3 種方法可以加快 MySQL 服務器的運行速度,效率從低到高依次為: 替換有問題的硬件。 對 MySQL 進程的設置進行調優。 對查詢進行優化。 替換有問題的硬件通常是我們的第一考慮,主要原因是數據庫會占用大量資源。不過這…

通過腳本啟動批量服務

/app/all_start_script/wwyt/此目錄服務如下:apigateway.sh auth.sh config.sh register.sh zipkin.sh /app/all_start_script/other/此目錄服務如下: tomcat.sh wwyt_base.sh wwyt_cache.sh wwyt_flow.sh wwyt_risk_login.sh ww…

高性能MySQL(3)——創建高性能索引

索引對于良好的性能非常關鍵。尤其是當表中的數據量越來越大時,索引對性能的影響愈發重要。 一、索引的類型 在MySQL中,索引是在存儲引擎層而不是服務器層實現的。所以沒用統一的索引標準,不同存儲引擎的索引工作方式并不相同。 1.1、B-Tre…

linux 調優系列

Linux系統內核:修改TCP/IP調優參數 所有的TCP/IP調優參數都位于/proc/sys/net/目錄。例如, 下面是最重要的一些調優參數, 后面是它們的含義: 1. /proc/sys/net/core/rmem_max — 最大的TCP數據接收緩沖。 2. /proc/sys/net/core/wmem_max — 最大的TCP數據發送緩沖。 3.…

java中的構造方法與代碼塊

一、構造方法 1.1、java中的構造方法跟普通方法有很大的區別: 構造方法的方法名跟類名相同構造方法沒有返回值類型,連void也沒有,也不能用return返回值每次創建一個對象,都會調用構造方法,如果沒有寫構造方法,系統會默認加上一個空參的構造,如果已經寫了構造方法,…

bash shell是如何識別特殊符號的

一 、 shell命令解析以及識別通配符 Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內核去執行 。 實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令并且把它們送到內核。不僅如此,Shell有自己的編程語言用于對命令的編…

linux 調優系列(續)

linux 的各大發行版,都有些不必要的服務被默認開啟了,針對ubuntu,我們 可以采用選擇性關閉的方法加速起動,提高系統性能。 這里我們安裝一個軟件: sudo apt-get install sysv-rc-conf 然后這樣起動: 在這個…

配置文件bashrc與profile的區別

1、當登入系統時候獲得-個shell進程時,其讀取環境設定檔有三步 首先讀入的是全局環境變量設定檔/ete/profile,然后根據其內容讀取額外的設定的文檔,如/etc/profile. d和/ etc/ inputre 然后根據不同使用者帳號,去其家目錄讀取, bash, pr…

高性能MySQL(4)——查詢性能優化

査詢優化、索引優化、庫表結構優化需要齊頭并進,一個不落。 一、為什么查詢速度為變慢 在嘗試編寫快速的查詢之前,需要清楚一點,真正重要是響應時間。如果把查詢看作是一個任務,那么他由一系列子任務組成,每個子任務都會消耗一定的時間。如果…

GooglePerformanceTools--tcmalloc

TCmalloc全稱是Thread-Caching malloc,作者宣稱tcmalloc相對于glibc2.3 malloc(aka ptmalloc2)有6倍的性能提高,tcmalloc的常用場景是用于加速MySQL,不過據Wikipedia的hacker Domas Mituzas說,tcmalloc不僅僅對MySQL起作用&#x…

linux基本命令以及命令常用選項

linux基本命令以及命令常用選項touch 創建文件,改變恩建時間戳,如果直接跟上一個文件,該文件不存在則創建文件-c文件不存在不創建文件,存在則改變文件的時間戳-a只改變文件的訪問時間-m改變文件的修改時間-t時間格式CCYYMMDDhhmm…

Java獲取上一周、上一個月、上一年的時間

SimpleDateFormat format new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); Calendar c Calendar.getInstance(); 1.過去七天 c.setTime(new Date()); c.add(Calendar.DATE, - 7); Date d c.getTime(); String day format.format(d); System.out.println(“過去七天&#…

遠程網絡安裝RHEL5

一:Linux安裝工作原理 眾所周知,在安裝過程中Linux首先需要一個引導程序來讓安裝光盤啟動,再實行配置與安裝。但目前轉化為遠程網絡安裝那么就需要我們的安裝程序能夠遠程地通過網絡傳送給客戶端。因此在搭建遠程Linux安裝服務器時候首先要值…

sed命令操作

sed 是一種數據流編輯器,它一次處理一行內容,處理時,把當前處理的行存儲在臨時緩沖區(pattern space稱為“模式空間”)中,在內存中處理,完成后把該行發送到屏幕上,清理pattern space中的內容,接著重復剛才的動作,讀入下一行,直到文件處理結束。文件內容并沒有 改變,…

Portainer簡介及部署

一、介紹 Portainer是Docker的圖形化管理工具,提供狀態顯示面板、應用模板快速部署、容器鏡像網絡數據卷的基本操作(包括上傳下載鏡像,創建容器等操作)、事件日志顯示、容器控制臺操作、Swarm集群和服務等集中管理和操作、登錄用…

Nexus搭建Maven私有倉庫

一、使用Docker安裝Nexus 1、查詢當前有哪些Nexus鏡像 docker search nexus2、下載sonatype/nexus3 docker pull docker.io/sonatype/nexus33、運行nexus容器 mkdir -p /usr/local/nexus3/nexus-data #新建掛載目錄 chown -R 200 /usr/local/nexus3/nexus-datadocker run -…

VI資料收集

1.6.1 vi 的工作模式Vi 在初始啟動后首先進入編輯模式,這時用戶可以利用一些預先定義的按鍵來移動光標、刪除文字、復制或粘貼文字等。這些按鍵均是普通的字符,例如 l 是向右移動光標,相當于向右箭頭鍵,k 是向下移動光標&#xff…

linux終端

終端就是處理計算機主機輸入輸出的一套設備,它用來顯示主機運算的輸出,并且接受主機要求的輸入,典型的終端包括顯示器鍵盤套件,打印機打字機套件等 linux終端類型終端名稱標識含義串行端口終端Serial Port Terminal/dev/ttySx 串行…

日常問題——VMware下的CentOS7 Ping不通百度

問題描述: 在VMware下新創建的CentOS ping 不通百度 解決方案: 1、點擊VMware的編輯按鈕下的虛擬網絡編輯器 2、更改設置后,選擇NAT類型,點擊NAT設置 3、記錄下,子網ip,掩碼,網管IP信息 4、…

linux查找文件find

查找命令文件whatis 從path還從man中查找which 從path環境變量中查找文件查找locate /var/lib/mlocate/mlocate.db 通過update更新數據庫 find 默認動作是 -print -ls -delete -ok -exec 命令 {} \; -name根據文件名查找-iname忽略大小寫-size根據文件及目錄大小查找…