Linux用戶管理和文件權限

Linux操作系統是一個多用戶操作系統,它允許多用戶同時登陸到系統上并使用資源。系統會根據賬戶來區分每個用戶的文件,進程,任務和工作環境,使得每個用戶工作都不受干擾。

Linux如何保證多個不同的用戶對同個文件進行操作時有不同的權限控制呢?

  1. Linux使用User和Group來控制使用者對文件的訪問權限;
  2. 不同用戶是使用不同的賬號/密碼進行登錄到Linux;
  3. 每個文件都有owner,并且每個owner都歸屬于某個Group;
  4. 每個程序/文件都有自己的owner和group;

===> 使得Linux的安全性才有嚴格的保障

用戶:

  1. 每個用戶都有一個唯一的User ID,唯一性標識符;
  2. User的信息存儲在 /etc/passwd中
    root:x:0:0:root:/root:/bin/bash
    每個屬性之間采用:分隔
    root: 登錄Linux的用戶名
    x: 該用戶需要使用密碼才能登錄, 如果為空表示不需要密碼就能登錄
    0:數字,表示的是uid, 0到499是系統預留的, 如果是我們新增的User,那么500開始計數的
    0:數字,表示的是gid
    root:是賬戶的描述信息
    /root: 該用戶的home路徑, 如果是我們自己添加的用戶呢?它的home是哪里呢?
    /bin/bash:登錄后執行的程序
  3. /etc/shadow: 存儲的是用戶對應的密碼信息
    root:$1$puUB8Y.1$5nURxhc.1a9JhdfZwgvKB0:15970:0:99999:7:::
    root: 賬號的名稱,和/etc/passwd中的用戶名是一一對應的
    $1$puUB8Y.1$5nURxhc.1a9JhdfZwgvKB0: 密碼,不是明文的,經過MD5加密的
    15970:最后一次修改密碼的時間
    0:數字,密碼不能被修改的天數
    99999:數字,密碼多少天后需要強制修改
    7: 數字,密碼需要被修改之前要提醒的天數
  4. 每個User都有一個對應的home目錄
    root: /root
    xxxx: 對應的home位于 /home/xxxx
  5. root用戶:超級管理員賬號,具有非常高的權限

用戶組:

  1. 每個用戶都屬于一個Group,具有一個唯一的標識符

  2. Group信息存儲在/etc/group下
    root:x:0:
    root:組的名稱
    x:該組需要使用密碼才能登錄
    0:數字,就是該組的id,gid

  3. 系統會為每個用戶關聯一個和User同名的Group、User也可以被加入到其他組,一個User可以對應多個組;
    user:root group:root

  4. 保存用戶組密碼的文件:/etc/gshadow
    用戶配置文件:/etc/default/useradd

對用戶和用戶組的操作

添加用戶: useradd abc

查看一下:cat /etc/passwd
abc:x:500:500::/home/abc:/bin/bash
新增的abc用戶對應的根目錄是/home/abc
[root@abc ~]# su - abc //用戶切換,從root切換到abc用戶,是不需要密碼的
[abc@abc ~]$ pwd
/home/abc

但是abc用戶切換到abc用戶自己,卻提示我們需要輸入密碼,但是我們卻不知道密碼。
[abc@abc ~]$ su - abc
Password:??????

這時用root用戶來管理新增的用戶
修改abc用戶的密碼:passwd abc

修改用戶名:usermod -l new_name old_name

修改:usermod -l abc_linux abc

查看一下:cat /etc/passwd
abc_linux:x:500:500::/home/abc:/bin/bash
對用戶進行名稱修改時,用戶名是發生了變化,但是home目錄的文件夾名稱并沒有發生改名/home/abc

刪除用戶: userdel -r abc_linux

-r:在刪除該用戶時一并刪除該用戶對應的home文件夾

用戶組添加: groupadd g1
用戶組修改: groupmod -n newg1 g1
用戶組刪除: groupdel newg1

Linux文件權限

r: 讀權限(read)可以讀取文件/目錄的內容
w: 寫權限(write)可以寫、刪除文件/目錄
x: 執行權限(execute)可以執行可執行文件
-:沒有權限

使用ls命令查看:
drwxr-xr-x 2 root root 4096 Oct 29 02:12 Desktop

drwxr-xr-x就是文件的權限
第一位:文件類型 d是目錄 -是文件 l是鏈接
第2-4位:所屬用戶的權限, 用u(user)表示
第5-7位:所屬組的權限,用g(group)表示
第8-10位:其他用戶的權限,用o(other)表示
第2-10位:表示所有的權限,用a(all)表示

d rwx -w- ---
目錄、owner權限為可讀寫執行、group權限為可寫、others沒有任何權限

- rwx rwx r-x
文件、owner權限為可讀寫執行、group權限為可讀寫執行、others可讀可執行

字符表示法:chmod [-R] mode file

mode有哪些:

who operator permission
u(owner) + r
g(group) - w
o(others) = x
a(ugo)

去掉owner的寫權限: chmod u-w hello
為group添加寫權限: chmod g+w hello
為owner和group添加寫權限:chmod ug+w hello
ugo去掉執行權限:chmod ugo-x hello
為文件夾添加執行權限:chmod a+x hello
others改成寫權限:chmod o=w hello
將hello文件夾的所有權限去掉: chmod a= hello
雖然hello目錄的權限都被我們刪除了,但是并不影響該目錄下的子目錄或者文件的權限
給hello文件夾下的所有文件都添加rwx權限:chmod -R a+rwx hello(-R是遞歸操作)

數字表示法: chmod 777 hello

r用4表示、w用2表示、x用1表示、沒有權限用0表示
owner: rwx: 4 + 2 + 1 = 7
group: r-x: 4 + 0 + 1 = 5
others: r--: 4 + 0 + 0 = 4
rwxr-xr-- = 754

owner設置r-x: r=4 w=0 x=1 chmod 577 hello
ugo設置r-x:chmod 555 hello 遞歸設置:chmod -R 555 hello

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容