Linux的使用者和組

2022-02-13 12:52:47 字數 1183 閱讀 6407

每個使用者都有乙個唯一的使用者名稱和乙個與之相對應的數值型使用者識別符號uid。使用者可以隸屬於乙個或者多個組。而每個組也擁有乙個唯一的名稱和乙個數值型組識別符號gid。

為什麼要費勁周折去設立使用者和組呢?

用途一:確定系統資源的所有權;用途二:對賦予程序訪問上述資源的許可權加以控制。

那麼系統是怎麼為使用者設定組並且儲存組的資訊的呢?涉及到三個檔案。

(1)密碼檔案:/etc/passwd

記錄格式:用冒號分割

登入名:經過加密的個人密碼:使用者id:組id:注釋:主目錄:登入shell

(2)shadow密碼檔案:/etc/shadow

為了安全考慮,將一些敏感資訊放在shadow檔案進行單獨儲存,只有特權程序才能訪問,其餘非敏感資訊(人人可讀)放在密碼檔案中。

(3)組檔案:/etc/group

記錄格式:用冒號分割

組名:經過加密處理的組密碼:組id:使用者列表

對使用者所屬各組資訊的定義有兩部分組成:密碼檔案中相應使用者記錄的組id(使用者最初的屬組);組檔案列出的使用者所屬各組(併發多屬組)。

unix系統採用單向加密演算法對密碼進行加密,單向意味著無法還原。加密演算法被封裝於crypt()函式之中。所以說,unix系統的使用者認證就是通過對明文加密,然後比對加密後的密文。

crypt函式第乙個引數是明文本串;第二個引數是來自密文的前兩個字元的字串[a-za-z0-9/.   一共64種字元],用來擾動des加密演算法。返回值為密文。第二個引數經常傳的是密文字串,因為只有前兩個有效,所以不用將前兩個取出來再傳。

登入shell從密碼檔案讀取第三字段(使用者id)和第四字段(組id)來確定程序的實際使用者id和實際組id。當建立新程序 的時候,會從父程序繼承這些內容。   

當程序想要進行各種操作的時候,將結合有效使用者id、有效組id連通輔助組id一起來確定授予程序的許可權。有效組id不是從組檔案來的。有效id只是讓我們獲取了一些特權。通常有效id和實際id是相等的,但是我們可以改變有效id來獲取一些許可權。

(1)set-user-id和set-group-id

第一種方法去設定有效使用者id和有效組id。set-user-id程式會將程序的有效使用者id設定為可執行檔案的使用者id。set-group-id程式會將程序的有效組id設定為可執行檔案的有效組id。與其他檔案一樣,可執行檔案的使用者id和組id決定了該檔案的所有權。

(2)呼叫一些系統呼叫

Linux的使用者和組

6 jbfqcfla uxqyl20wgtmsgqderwt9ixqkelcglxtq3c9kml0myti 894vjem28cd.rhsyweawiplijqgzqpgfojdguri52 17867 0 99999 7 passwd stdin u4 changing password for...

linux 組和使用者

linux 組 1 新增組 groupadd 選項 使用者組 g gid 指定新使用者組的組標識號 gid o 一般與 g選項同時使用,表示新使用者組的gid可以與系統已有使用者組的gid相同。root localhost groupadd teacher root localhost groupa...

linux使用者和組

使用者建立 useradd useradd options login u uid uid min,uid max 定義在 etc login.defs g gid 指明使用者所屬基本組,可為組名,也可以gid c comment 使用者的注釋資訊 d path to home dir 以指定的路徑...