在linux 系統上啟動乙個daemon 必須用root 使用者來啟動,比如乙個web 伺服器(nginx/apapce 80埠)是在作業系統的介面(1-1024),只有root 有這個許可權來啟動這類介面;用root 戶啟動daemon 的程式也被認為是乙個自然的事情。
隨著安全的攻擊越來越嚴重,如果任何乙個提供tcp 服務的程式出現漏洞,那攻擊者就獲取到了root 許可權,無疑是災難性的。為了降低這個問題帶來的風險,現在幾乎所有的使用者程式都是 用root 使用者啟動程式,然後主動放棄root 許可權,該用乙個普通的使用者(比如 admin/nobody) 進行執行。 這樣一旦攻擊者獲取到了這個程式的許可權,也是此時執行使用者的許可權,不是root 許可權對系統造成的危害相對要小了許多
為了進一步提高系統的安全性,linux 系統引入了chroot 機制;chroot 是乙個系統呼叫,程式可以通過呼叫chroot的函式庫來更改乙個程序所能看到的跟目錄 。比如httpd 軟體安裝在/usr/local/httpd 這個目錄下,那這個程序(httpd) 只可以讀、寫到這個指定的目錄: [usr/local/httpd] ;這樣即使攻擊者獲取程序的許可權,也只能讀寫這個目錄下的檔案,這樣就變的安全了許多,起碼不會影響這個臺機器其他的程序,和其他的機器的安全問題
chroot 全程是change to root : 其中root 是根目錄的意思,也就是改變(linux 根目錄是/,也可以理解為設定)乙個程式執行時參考的根目錄的位置
# 根目錄的參考
linux 系統(原始的方案) | 引入chroot 機制
/ /lxc
/usr /lxc/usr
/bin /lxc/bin
/sys /lxc/sys
如上圖我們看的一旦使用了chroot ,使用者的春心就不是linux 系統的根目錄,而是我們指定的/lxc (這個目錄可以任意指定),所以chroot 確實可以修改根目錄.
chroot 機制因為安全問題才被引入的,但是在lxc 中卻啟動了舉足輕重的作用,因為chroot 機制可以指定虛擬根目錄,讓不同的容器在不同的根目錄下工作;
linux 容器 LXC 第2章 chroot
在linux 系統上啟動乙個daemon 必須用root 使用者來啟動,比如乙個web 伺服器 nginx apapce 80埠 是在作業系統的介面 1 1024 只有root 有這個許可權來啟動這類介面 用root 戶啟動daemon 的程式也被認為是乙個自然的事情。隨著安全的攻擊越來越嚴重,如果...
linux 容器 LXC 第7章 之網路設定
按照部落格一所述,應該能夠建立lxc虛擬機器並執行虛擬機器,如果是本地的話,應該能夠進入虛擬機器操作了,會發現虛擬機器只提供了最原始和簡單的一些程式,如果使用template方式,甚至連vim,gcc,python等都沒有安裝,更別說myql了。安裝包如此之多,不能都使用原始碼方式安裝,使用yum ...
Linux容器LXC 入門
lxc linux container。lxc允許你在宿主作業系統內的容器執行應用。容器在網路 行為等方面都與宿主os都隔離。lxc與虛擬化類似,但是有一些關鍵的不同點 虛擬化模擬硬體和作業系統,但是lxc只模擬作業系統,因此更輕量級 速度更快。lxc的 模擬 是通過linux核心的cgroups和...