Linux操作系統(tǒng)是一個多用戶操作系統(tǒng),它允許多用戶同時登陸到系統(tǒng)上并使用資源。系統(tǒng)會根據(jù)賬戶來區(qū)分每個用戶的文件等缀,進程,任務和工作環(huán)境柠掂,使得每個用戶工作都不受干擾项滑。
Linux如何保證多個不同的用戶對同個文件進行操作時有不同的權限控制呢依沮?
- Linux使用User和Group來控制使用者對文件的訪問權限涯贞;
- 不同用戶是使用不同的賬號/密碼進行登錄到Linux;
- 每個文件都有owner危喉,并且每個owner都歸屬于某個Group宋渔;
- 每個程序/文件都有自己的owner和group;
===> 使得Linux的安全性才有嚴格的保障
用戶:
- 每個用戶都有一個唯一的User ID辜限,唯一性標識符皇拣;
- User的信息存儲在 /etc/passwd中
root:x:0:0:root:/root:/bin/bash
每個屬性之間采用:分隔
root: 登錄Linux的用戶名
x: 該用戶需要使用密碼才能登錄, 如果為空表示不需要密碼就能登錄
0:數(shù)字薄嫡,表示的是uid氧急, 0到499是系統(tǒng)預留的, 如果是我們新增的User毫深,那么500開始計數(shù)的
0:數(shù)字吩坝,表示的是gid
root:是賬戶的描述信息
/root: 該用戶的home路徑, 如果是我們自己添加的用戶呢?它的home是哪里呢哑蔫?
/bin/bash:登錄后執(zhí)行的程序 - /etc/shadow: 存儲的是用戶對應的密碼信息
root:$1$puUB8Y.1$5nURxhc.1a9JhdfZwgvKB0:15970:0:99999:7:::
root: 賬號的名稱钉寝,和/etc/passwd中的用戶名是一一對應的
$1$puUB8Y.1$5nURxhc.1a9JhdfZwgvKB0:
密碼,不是明文的闸迷,經(jīng)過MD5加密的
15970:最后一次修改密碼的時間
0:數(shù)字嵌纲,密碼不能被修改的天數(shù)
99999:數(shù)字,密碼多少天后需要強制修改
7: 數(shù)字腥沽,密碼需要被修改之前要提醒的天數(shù) - 每個User都有一個對應的home目錄
root:/root
xxxx: 對應的home位于/home/xxxx
- root用戶:超級管理員賬號逮走,具有非常高的權限
用戶組:
每個用戶都屬于一個Group,具有一個唯一的標識符
Group信息存儲在/etc/group下
root:x:0:
root:組的名稱
x:該組需要使用密碼才能登錄
0:數(shù)字今阳,就是該組的id师溅,gid系統(tǒng)會為每個用戶關聯(lián)一個和User同名的Group邓嘹、User也可以被加入到其他組,一個User可以對應多個組险胰;
user:root group:root保存用戶組密碼的文件:/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
對用戶進行名稱修改時判沟,用戶名是發(fā)生了變化耿芹,但是home目錄的文件夾名稱并沒有發(fā)生改名/home/abc
刪除用戶: userdel -r abc_linux
-r:在刪除該用戶時一并刪除該用戶對應的home文件夾
用戶組添加: groupadd g1
用戶組修改: groupmod -n newg1 g1
用戶組刪除: groupdel newg1
Linux文件權限
r: 讀權限(read)可以讀取文件/目錄的內容
w: 寫權限(write)可以寫、刪除文件/目錄
x: 執(zhí)行權限(execute)可以執(zhí)行可執(zhí)行文件
-:沒有權限
使用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權限為可讀寫執(zhí)行、group權限為可寫斯入、others沒有任何權限
- rwx rwx r-x
文件砂碉、owner權限為可讀寫執(zhí)行、group權限為可讀寫執(zhí)行刻两、others可讀可執(zhí)行
字符表示法: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去掉執(zhí)行權限:chmod ugo-x hello
為文件夾添加執(zhí)行權限:chmod a+x hello
others改成寫權限:chmod o=w hello
將hello文件夾的所有權限去掉: chmod a= hello
雖然hello目錄的權限都被我們刪除了增蹭,但是并不影響該目錄下的子目錄或者文件的權限
給hello文件夾下的所有文件都添加rwx權限:chmod -R a+rwx hello
(-R是遞歸操作)
數(shù)字表示法: 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