User Identification

Concept

在 UNIX 中,User 其實是代表權限,每組 User 都有自己的權限,可能你想要以低權限跑一個程式,你就先切換 User 後用這個 User 跑

Explanation

/etc/passwd 中紀錄了此系統中所有用戶的資料,以下是一個用戶的範例

root:x:0:1:Super-User:/root:/bin/tcsh

分別記錄了

  • Login name
  • encrypted passwd: 以 x 代替,現在密碼存在/etc/shadow,因為etc/passwd是所有人都能看見的,而etc/shadow需要特定權限
  • numeric user ID
  • numeric group ID
  • comment: 可以自行設定,過去曾用來存像是用戶電話號碼、名字之類的
  • home dir
  • shell program

Password Encryption

crypt(3) 是一種難以從 y 推到 x 的加密方法,因為如果很多人的密碼一樣,y 都會相同,所以我們引入了一個概念 salt ,這是系統隨機選擇的兩個英文字母,把它作為加密的一個參數

並且為了之後可以解密,我們將 salt 加在算出的 y 的前面

crypt("apple", "am") = "amADASGsflsdfjABSA"