Linux 用戶及權限深入理解
用戶組的管理
當我們使用Linux時,我們需要以一個用戶的身份登入,一個行程也需要以一個用戶身份運行,用戶限制使用者或行程可以使用或不可以使用哪些資源
組用來方便組織管理用戶
用戶ID為32位,從0開始,但是為了和老式系統兼容,用戶ID限制在60000以下
用戶分為以下三種
- root用戶(ID為0的用戶為root)
- 系統用戶(1-499)
- 普通用戶(500以上)
系統中的檔案都有一個所屬用戶及所屬組
使用id命令可以顯示當前用戶的資訊

使用passwd命令可以修改當前用戶密碼

- 每個用戶擁有一個UserID,作業系統實際使用的是用戶ID,而非用戶名
- 每個用戶屬于一個主組,屬于一個或多個附屬組(一個用戶最多有31個附屬組)
- 每個組擁有一個GroupID
- 每個行程以一個用戶身份運行,并受該用戶可訪問的資源限制
- 每個可登錄用戶擁有一個指定的shell
相關檔案
/etc/passwd 保存用戶的資訊
/etc/shadow 保存用戶密碼(以加密的形式保存)
/etc/group 保存資訊
/etc/login.defs
/etc/default/useradd
徹底洗掉一個用戶的資訊可以使用
userdel -r 用戶名
[root@localhost ~]# useradd chen //加用戶chen
[root@localhost ~]# passwd chen //改密碼
更改用戶 chen 的密碼 ,
新的 密碼:
無效的密碼: 密碼少于 8 個字符
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新,
[root@localhost ~]# tail -1 /etc/passwd //查看是否存在普通用戶chen
chen:x:1000:1000::/home/chen:/bin/bash
[root@localhost ~]# tail -1 /etc/shadow //查看密碼檔案
chen:$6$67uXhtso$1s9N7IxoZduO1ssKeBn/cJSNRcMYjJ53nR2cpMfECI.p7oyZaiboDwP8Wk0gq05OX2735IHYttXqAjVCwzfwl/:18605:0:99999:7:::
[root@localhost ~]#
新建一個用戶(useradd chen)
這個命令執行以下操作
- 在/etc/passwd中添加用戶資訊
- 如果用passwd命令創建密碼,則將密碼加密保存在/etc/shadow中
- 為用戶建立一個新的家目錄/home/chen
- 將/etc/skel中的檔案復制到用戶的家目錄中
- 建立一個與用戶名相同的組,新建用戶默認屬于這個同名組
命令useradd支持以下引數:
-d 指定家目錄
-s 登錄shell
-u 指定UID
-g 主組
-G 附屬組(最多31個,用“,”分割)
[root@localhost ~]# useradd chen //加用戶chen
[root@localhost skel]# su chen
[chen@localhost skel]$ su root
密碼:
[root@localhost skel]# cd /home
[root@localhost home]# ls
1.txt 2.txt abc chen
[root@localhost home]# cd chen
[root@localhost chen]# ls -a
. .. .bash_logout .bash_profile .bashrc
[root@localhost chen]# rm -rf .bash*
[root@localhost chen]# ll
總用量 0
[root@localhost chen]# su chen
bash-4.2$
bash-4.2$
bash-4.2$ ^C
bash-4.2$ su root
密碼:
[root@localhost chen]# cp /etc/skel/.bash* /home/chen/ -a //etc/skel是模板檔案的目錄
[root@localhost chen]# su chen
修改用戶資訊
命令usermod用來修改用戶資訊
usermod 引數 username
支持引數如下:
-l 新用戶名
-u 新userID
-d 用戶家目錄位置
-g 用戶所屬主組
-G 用戶所屬附屬組
-L 鎖定用戶使其不能登錄
-U 解除鎖定
創建用戶的時候指定用戶屬于那個用戶組:
usermod -g group_name user_name
把chen這個用戶的組改成abc組

修改用戶名稱:
usermod -l new_user_name old_user_name
將用戶加入組:
usermod -G group_name user_name
更改用戶的用戶組:
usermod -g group_name user_name
組的管理
幾乎所有的OS都有組的概念,通過組我們可以更加方便的歸類,管理用戶,一般來講,我們會使用部門,職能或地域的分類方式來創建使用組
- 每個組有一個組ID
- 組資訊保存在/etc/group中
- 每個用戶擁有一個主組,同時還可以擁有31個附屬組
權限的管理
權限是OS用來限制對資源訪問的機制,權限一般分為讀寫執行,系統中每個檔案都擁有特定的權限,所屬用戶及所屬組,通過這樣的機制來限制哪些用戶或用戶組可以對待定檔案進行怎樣的操作
每個行程都是以某個用戶身份運行,所以行程的權限與該用戶的權限的一樣,所以用戶的權限越大,該行程擁有的權限就大
檔案權限
linux中,每個檔案擁有三種權限詳情如下:
r(讀取):可讀取檔案內容,可列出目錄內容
w(寫入):可修改檔案內容,可在目錄中創建洗掉內容
x(執行):可作為命令執行,可訪問目錄內容
目錄必須擁有x權限,否則無法查看其他內容
UGO
Linux權限基于UGO模型進行控制:
- U代表User,G代表Group,O代表Other
- 每一個檔案的權限都基于UGO進行設定
- 權限三個一組(rwx),對應UGO分別設定
- 每個檔案擁有一個所屬用戶和所屬組,對應UGO,不屬于該檔案所屬用戶或所屬組使用O權限
命令ls -l 可以查看當前目錄下檔案的詳細資訊
命令chown用來改變檔案的所屬用戶
修改權限
命令chmod用以修改檔案的權限
chmod 模式 檔案
模式格式:
- u,g,o分別代表用戶,組和其他
- a可以代指ugo
- +,-,=代表加入,洗掉和等于對應權限
命令chmod也支持以數字方式修改權限,三個權限由數字表示為:
- -r=4
- -w=2
- -x=1
使用數字表示權限時,每組權限分別對應數字之和
rw=4+2=6
rwx=4+2+1=7
rx=4+1=5
默認權限
每一個終端都擁有 一個umask屬性,來確定新建檔案、目錄的默認權限
umask使用數字權限方式表示,如: 022
目錄的默認權限是 : 77-umask
檔案的默認權限是: 666-umask
一般,普通用戶的默認umask是022 , root用戶的默認umask是022
也就是說對于普通用戶來說
新建檔案的權限是: 666-022 = 644
新建目錄的權限是: 777-022 = 755
命令 umask用以查看設定umask值
umask 022
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/233076.html
標籤:其他
下一篇:LINUX學習筆記---基礎篇
