面試官都在問 Linux命令之許可權理解

2022-09-06 07:21:10 字數 2132 閱讀 6764

0. 概述

1. linux命令之切換使用者-su(全程:switch user)

1.1 簡述

作業系統中,並不能讓乙個使用者可以為所欲為,這樣會使得系統的安全性無法得到保障,因此有了操作許可權的劃分,在linux系統中使用者共劃分為兩類:管理員使用者(root) 以及 普通使用者;

su命令可讓乙個普通使用者切換為超級使用者或其他使用者,並可臨時擁有所切換使用者的許可權。

1.2su命令

[san@san ~]$ su root

password:

[root@san san]

#

注意:su命令在進行使用者切換的時候需要輸入目標使用者的密碼才能切換成功。

2. linux命令之為普通使用者提權執行root命令

2.1 簡述

sudo是系統管理員允許讓普通使用者執行一些或者全部的root命令的乙個工具(執行身份一般當然要短暫成為root嘍)。

2.2sudo命令

[san@san ~]$ date

fri apr 10 15:50:07 cst 2020

[san@san ~]$ date -s "2020-04-10 15:50:57"

date: cannot set date: operation not permitted

fri apr 10 15:50:57 cst 2020

[san@san ~]$ sudo

date -s "2020-04-10 15:52:43"

[sudo] password for san:

fri apr 10 15:52:43 cst 2020

[san@san ~]$ date

fri apr 10 15:52:49 cst 2020

從示例中可以看到,設定系統時間在普通使用者下則會報錯,操作不被允許。然而使用sudo命令臨時對使用者操作進行提權則可以直接使用普通使用者進行系統時間的設定。

並且sudo不是對shell的乙個代替,它是面向每個命令的,對於每個命令都可以使用sudo進行提權操作。使用sudo提權操作不僅減少了root使用者的登入和管理時間,同樣也提高了安全性。

注意:sudo命令的使用需要對/etc/sudoers配置檔案進行修改。

2.3/etc/sudoers配置檔案的修改

任何使用者都可以隨時使用sudo指令來對自己的操作進行提權嗎?不是這樣的,若是這樣的話,則root管理員使用者形同虛設,只有管理員將指定使用者新增入/etc/sudoers中,這個使用者才可以進行提權操作,因為它是系統管理員集中的管理使用者的使用許可權和使用的主機的配置檔案。

[san@san ~]$ su root

password:

[root@san san]

# visudo #vi /etc/sudoers 也可以,但是我們暫時不用,原因見後面

## 在配置檔案中約第100行的位置可以找到需要配置資訊, 輸入 :100 回車可以直接跳轉至第100行

## 將需要提權的使用者資訊新增到root使用者資訊的下方,格式雷同root即可,這裡的san是我自己的使用者~

## 通過輸入 :wq 回車後儲存配置並退出

## allow root to run any commands anywhere

root all=

(all) all

san all=

(all) all

注意:/etc/sudoers檔案因為檔案許可權原因無法直接使用編輯器進行修改,就算修改成功也不會進行語法檢查,因此推薦使用visudo命令進行配置。

[root@san san]

# ls -l /etc/sudoers

-r--r----- 1 root root 4347 apr 10 16:02 /etc/sudoers

3. 總結

面試官都在問 Linux命令 grep

grep是乙個文字過濾器,作用是在檔案中查詢符合我們要求的內容。第一種形式,從指定的檔案中找出匹配pattern的行 grep option pattern file1,file2,第二種形式,從管道中找出匹配pattern的行 cmd grep option pattern 說明 pattern是...

面試官都在問 選擇排序

選擇排序的思想不難理解。選擇排序把資料分成兩組來看待,一組已經有序的資料和一組無序的資料,排序開始之前,有序資料的個數為0。每次從未排序的資料中選取最小值,並與未排序的最左資料進行交換,直到未排序的資料為0,則結束排序。演算法過程如下圖所示 3.1 時間複雜度選擇排序每次需要遍歷未排序的資料,尋找最...

面試官都在問 快速排序C 實現

快排是c.a.r.hoare在1960提出的一種排序演算法,這是一種採用分治思想的排序演算法,大致分為三個步驟。定基準 首先選擇乙個元素作為基準值 劃分區 所有比基準小的元素置於基準左側,比基準大的元素置於右側,構成左右兩個子串行 遞迴呼叫 遞迴地呼叫此切分過程,切分其子序列,直到子串行只含有乙個值...