關於 linux user 轉換的問題 - Linux

Leila avatar
By Leila
at 2020-10-22T00:07

Table of Contents



各位好,

謝謝大家幫忙解惑我的相關問題,

但是可能是我的敘述不是很清楚,所以有些回答誤會我的意思


關於我上一篇的問題是寫說,我無法理解 sudo su - USER_NAME 這個指令的使用情境,


先來作個情境設定,

假設一個系統有 4 個帳號 (root , alice , bob , service)

1. root 沒有設定密碼,所以無法經由 root 帳號登錄,

僅能經由 sudoer 使用 sudo su - root 來取得 root BASH


2. alice 爲自然人帳號,並且在 wheel group 中,是擁有 sudoer 權限的帳號,

3. bob 爲自然人帳號 (非 daemon 或 application service ),bob 非 sudoer

4. service 爲 application 的帳號,非 sudoer



先說我對於 Linux 系統的使用理解,

帳號、權限分離是很好的做法,

所以每個服務,每個自然人都應該要有自己的帳號,

如此,誰可以做什麼,誰做了什麼,都應該一目瞭然,

(這邊先排除 root)



我想像中的帳號管理是,

admin (sudoer) 當然擁有較高權限,

admin 可以創造帳號,以用於不同的服務管理

(例如: postgres 管理 postgreSQL service)


例如:

admin 創造了 postgres 服務的帳號,理當也知道 postgres 的密碼,

所以需要管理 DB service 的時候,就用 postgres 的帳密登入,

管理完後,登出,

帳號、權限分離,很 OK



關於自然人帳號的部分,

alice 創造了 bob 的帳號,

bob 第一次登入的時候,創建了密碼,

alice 可以使用他的管理者權限去增減 bob 帳號的權限,甚至把 bob 帳號刪除,

但是 alice 不應該有可以偽裝成 bob,以 bob 身份去做事情的權限,

因為 bob 是一個自然人,



如果今天 alice 是使用 bob 的帳密登入了 bob 的帳號,

那就是 bob 的密碼外洩,alice 盜用密碼,這很明確,沒問題



但是 $ sudo su - bob ,這個指令是要用 alice 自己的密碼登入 bob 的帳號,

alice 可以在 bob 不知道的時候,

以 bob 的名義去 create, read, update, delete, bob home directory 的任何檔案

或者修改任何 bob 帳號權限可以修改的任何系統 configuration,

而 log 上都會顯示成 bob 自己做的,

這不就是等同帳號盜用嗎?

而重點是 bob 的密碼還沒有外洩,因為 alice 是用自己的密碼登入的



當然我們都知道 root / admin 的權力至高無上,所以我們應該交給信任的人來作

假設我們信任的 administrator,他永遠忠誠且不受情緒困擾,每日穩定工作,

但是 admin 的帳號有沒有可能外洩?


隨便想就有好幾個情境,在實際資安上是有發生過的


1. hacker 取得 admin 的帳密,執行不法行為後,為了隱藏痕跡,則僞造或刪除 log

2. 組織內的內鬼,想要做一些不法的事情,但又不敢用自己的帳號作,
所以就以 social engineering 取得 admin 帳號,
並且 $ sudo su - USER_A , 嫁禍給一個替罪羊來掩蓋自己的痕跡

.... 等等,許多的方式


以上的資安問題,

不就是因為 $ sudo su - USER_NAME 所造成的嗎?



再說現在資安的趨勢就是 zero trust,

連內網都要加強防護,許多系統也都不設定 root


而爲什麼 linux 會允許這種指令,感覺就是 anti-security pattern






或者是說

Linux 系統應該改成,admin 可以轉換成 service 的帳號,

但是不能轉換成自然人的 user account

這樣應該就會好很多



不知道各位前輩,可以指點解惑嗎?

謝謝





※ 引述《gowrite (gowrite)》之銘言:
: 各位好,我是一個 Linux 自學的新手,
: 想問一個有關於 Linux 中在 BASH 作 user 轉換的實際意義,
: 假設使用 centOS 系統中,
: 有三個 users (root , alice , bob)
: 其中 alice 在 wheel group 中 (意即 alice 可以使用 sudo 指令)
: 當 alice 登入系統,取得自己的 BASH shell 之後,
: 就可以使用轉換 user 指令
: $ sudo su - bob
: 然後 alice 輸入自己密碼,就可以轉換 user 變成 bob
: 就可以用 bob 的角色做事情,
: 這邊就是我最搞不懂的部分
: 1. 爲什麼 Linux 系統會允許 user A 可以不需要 user B 的允許,
: 就讓 user A 自己轉換爲 user B 去做事情?
: 這樣跟帳號盜用的差別在那裡?
: 2. 爲什麼 Linux 系統在 user A 轉換成 user B 時,要輸入的是 user A 的密碼,
: 而不是 user B 的密碼?
: 3. Linux 系統如此設計的意義是在哪裏呢?
: 同樣的東西在 windows,alice 則必須要在 logout 之後,
: 重新以 bob 的賬號登入,並且是以 bob 的密碼登入,
: 我一直搞不懂 Linux 爲什麼轉換成別人的 user account 是用自己的密碼
: 希望有熟悉 Linux 系統意義的前輩可以幫忙解惑,
: 謝謝

--
Tags: Linux

All Comments

Suhail Hany avatar
By Suhail Hany
at 2020-10-26T08:50
既然alice不能被完全信任,幹嘛給他sudo任意指令的權限?
Iris avatar
By Iris
at 2020-10-30T18:52
能sudo ALL=(ALL:ALL) ALL的人就是絕對信任的人,如果他不能
完全信任就只給他sudo一部分系統工作的權限,像是alice (ALL
) adduser這行就讓alice可以用root的身份執行adduser,但不能
sudo su bob
Suhail Hany avatar
By Suhail Hany
at 2020-10-31T04:08
原 po 你說的東西再正常不過。admin 本來就能做任何事
Elvira avatar
By Elvira
at 2020-10-31T16:38
你要 security 就乖乖弄加密。gpg 學一下
Hazel avatar
By Hazel
at 2020-11-03T11:24
你拿到那個權限連整台server刪光光都做得到了 糾結這個根本
沒意義 就算他今天不用bob的身份也能做完事偽造log
Hardy avatar
By Hardy
at 2020-11-03T22:27
你要真的辨識身份就像樓上講的 搞加密 就像使用者密碼admin
也拿不到明文一樣 不然加一堆限制只是增加管理麻煩
Bennie avatar
By Bennie
at 2020-11-06T17:19
root啥事都不能做不就跟windows那個殘廢的admin一樣= =
Hazel avatar
By Hazel
at 2020-11-06T22:21
要想怎麼管好sudo權限 而不是糾結有人拿sduo去幹壞事
Noah avatar
By Noah
at 2020-11-09T07:16
*sudo
Michael avatar
By Michael
at 2020-11-10T06:38
我只能這樣講,如果你看過早期的工作站如sparc的SunOS,你
George avatar
By George
at 2020-11-15T01:37
的下巴大概就掉下來了.你現在看到的sudo是演進的結果,以
Michael avatar
By Michael
at 2020-11-15T22:44
前/etc/passwd沒有shadow,mode是744,這代表任何user可以
用crypt函數去暴力破解使用者密碼(當然包含root),所以以
Regina avatar
By Regina
at 2020-11-18T11:28
前好的工作站管理員工作包含經常ps看一下有沒有破解程式
Anthony avatar
By Anthony
at 2020-11-18T21:37
在背景執行. 後來才有逐步改進,shadow password,sudo等等
Harry avatar
By Harry
at 2020-11-19T22:50
真的如你所說這麼危險的環境,又牽涉重大利益,自然不應該
Emma avatar
By Emma
at 2020-11-23T23:12
如同實驗室工作站一般管理
George avatar
By George
at 2020-11-28T14:43
sudo su - <user> 是sudo和su組合出來的,sudo才是重點,你
Necoo avatar
By Necoo
at 2020-12-01T00:05
讓一個人取得root權限,是實質需要還是管理不當? 還有取得
Anonymous avatar
By Anonymous
at 2020-12-03T20:36
root權限又分成只允許他執行特定工作和執行shell,能執行
Joe avatar
By Joe
at 2020-12-07T09:18
shell基本上就能做所有的事,sudo su (不管後面有沒有加參
數),就是執行root身分的shell,從第一代的internet worm,
Oscar avatar
By Oscar
at 2020-12-11T15:28
所有*nix的hacker所做的努力就是在目的機器上取得root的
Kyle avatar
By Kyle
at 2020-12-13T16:25
shell,所以問題應該是你為何要把一個root shell在未受監
管的情況下給一個你不信任的人?
Robert avatar
By Robert
at 2020-12-15T07:32
我前一篇講的作法都是在講監管,有較好的監管,可不可信任
Ida avatar
By Ida
at 2020-12-17T19:43
是比較次要的問題,因為沒辦證明可信任,所以才需要監管
Lucy avatar
By Lucy
at 2020-12-20T14:44
監管也分成本等級,CIA等級(不可能任務1拉肚子那位)和一般
中小企業等級自然不同,依牽涉到的利益大小付出不同的監管
Zenobia avatar
By Zenobia
at 2020-12-21T07:22
成本是非常合理的
Queena avatar
By Queena
at 2020-12-21T14:37
更正一下,上面那個mode是644才對
Ivy avatar
By Ivy
at 2020-12-24T20:23
信任root 的部份,大家都說過了,我就不再多說,如果
你要讓A可以create user , 但不能 su ,你可以在sudoer
Queena avatar
By Queena
at 2020-12-29T11:42
中定義A 可以用sudo 來執行哪些指令,就可以避免A用
su 去轉換身份,如果這是你想的控管方式的話
Madame avatar
By Madame
at 2021-01-01T00:47
你可以把使用者的家目錄加密,要登入時輸入密碼才會
解密,這樣大概就沒問題了。
Mary avatar
By Mary
at 2021-01-05T12:16
你也可以把 root 帳號禁用,或把 root 執行 su 可以切
Eden avatar
By Eden
at 2021-01-09T10:25
換其它使用者的功能關掉。
Hedwig avatar
By Hedwig
at 2021-01-11T02:06
root就是這台電腦的神,有root權限的user A就把他當作
神仙下凡吧
Agnes avatar
By Agnes
at 2021-01-14T09:47
sudo su 在電影駭客任務裡常常出現
Donna avatar
By Donna
at 2021-01-15T14:02
重點其實是Linux還是有其他權限管控機制,例如讓某個使用
者可以創帳號等,不是只有變成root讓大家惡搞而已。所以好
的作法是不會讓大部分使用者可以拿到完整root權限,而是會
把部分的root權限下放給特定使用者
Emily avatar
By Emily
at 2021-01-19T10:32
但是總歸還是會有一個最高的 adm
Rachel avatar
By Rachel
at 2021-01-21T11:51
就算他不能變身成你的帳號, 他還是能修改所有的log
所以能不能 su 需不需要密碼只是個假議題

關於 linux user 轉換的問題

Iris avatar
By Iris
at 2020-10-21T09:40
各位好,我是一個 Linux 自學的新手, 想問一個有關於 Linux 中在 BASH 作 user 轉換的實際意義, 假設使用 centOS 系統中, 有三個 users (root , alice , bob) 其中 alice 在 wheel group 中 (意即 alice 可以使用 sud ...

將系統打包成可安裝的iso檔

Harry avatar
By Harry
at 2020-10-16T16:47
如題 最近因為公司需要人性化、圖形化的作業系統來取代對微軟的依賴,所以本人去找到了mint這個版本的linux來代替windows 調整完輸入法、ldap、裝好行政需要的各個軟體後也費了不少功夫 於是心想能不能將我對他所做的這些變更直接也套用在mint的iso上? 這樣只要做成一個隨身碟,公司的電腦就 ...

關於pigz指令問題

Steve avatar
By Steve
at 2020-10-15T10:43
Hi 各位大大, 我目前需要使用到pigz的指令,我查詢過相關解釋,關於-c的部分我還是有不清楚的地 方,不清楚的點為wonand#39;t delete是指不刪除原始檔案還是有其他意義? 不知道是否有大大可以幫忙解答一下。 -c --stdout --to-stdout Write all proces ...

怪怪的nvme ssd 分割問題

Carolina Franco avatar
By Carolina Franco
at 2020-10-13T13:56
前陣子趁打折買了一個anaconda NVME M.2 256G SSD 一開始想說就當外接硬碟來使用就好 剛好今天有一台桌機想實驗一下新的系統 就把原有的硬碟拆掉,換上這顆來做OS 桌機型號是 ASROCK A300 mini / Ryzen 4750G / 32G RAM 主機板上有兩個M.2 可以接 ...

CentOS 7 政府單位可以免費使用嗎?

William avatar
By William
at 2020-10-13T11:48
CentOS 7 政府單位可以免費使用嗎? - ...