Linux操作系統(tǒng)是一個(gè)多用戶操作系統(tǒng),它允許多用戶同時(shí)登陸到系統(tǒng)上并使用資源。系統(tǒng)會(huì)根據(jù)賬戶來區(qū)分每個(gè)用戶的文件,進(jìn)程,任務(wù)和工作環(huán)境,使得每個(gè)用戶工作都不受干擾。
Linux如何保證多個(gè)不同的用戶對(duì)同個(gè)文件進(jìn)行操作時(shí)有不同的權(quán)限控制呢?
- Linux使用User和Group來控制使用者對(duì)文件的訪問權(quán)限;
- 不同用戶是使用不同的賬號(hào)/密碼進(jìn)行登錄到Linux;
- 每個(gè)文件都有owner,并且每個(gè)owner都?xì)w屬于某個(gè)Group;
- 每個(gè)程序/文件都有自己的owner和group;
===> 使得Linux的安全性才有嚴(yán)格的保障
用戶:
- 每個(gè)用戶都有一個(gè)唯一的User ID,唯一性標(biāo)識(shí)符;
- User的信息存儲(chǔ)在 /etc/passwd中
root:x:0:0:root:/root:/bin/bash
每個(gè)屬性之間采用:分隔
root: 登錄Linux的用戶名
x: 該用戶需要使用密碼才能登錄, 如果為空表示不需要密碼就能登錄
0:數(shù)字,表示的是uid, 0到499是系統(tǒng)預(yù)留的, 如果是我們新增的User,那么500開始計(jì)數(shù)的
0:數(shù)字,表示的是gid
root:是賬戶的描述信息
/root: 該用戶的home路徑, 如果是我們自己添加的用戶呢?它的home是哪里呢?
/bin/bash:登錄后執(zhí)行的程序 - /etc/shadow: 存儲(chǔ)的是用戶對(duì)應(yīng)的密碼信息
root:$1$puUB8Y.1$5nURxhc.1a9JhdfZwgvKB0:15970:0:99999:7:::
root: 賬號(hào)的名稱,和/etc/passwd中的用戶名是一一對(duì)應(yīng)的
$1$puUB8Y.1$5nURxhc.1a9JhdfZwgvKB0:密碼,不是明文的,經(jīng)過MD5加密的
15970:最后一次修改密碼的時(shí)間
0:數(shù)字,密碼不能被修改的天數(shù)
99999:數(shù)字,密碼多少天后需要強(qiáng)制修改
7: 數(shù)字,密碼需要被修改之前要提醒的天數(shù) - 每個(gè)User都有一個(gè)對(duì)應(yīng)的home目錄
root:/root
xxxx: 對(duì)應(yīng)的home位于/home/xxxx - root用戶:超級(jí)管理員賬號(hào),具有非常高的權(quán)限
用戶組:
每個(gè)用戶都屬于一個(gè)Group,具有一個(gè)唯一的標(biāo)識(shí)符
Group信息存儲(chǔ)在/etc/group下
root:x:0:
root:組的名稱
x:該組需要使用密碼才能登錄
0:數(shù)字,就是該組的id,gid系統(tǒng)會(huì)為每個(gè)用戶關(guān)聯(lián)一個(gè)和User同名的Group、User也可以被加入到其他組,一個(gè)User可以對(duì)應(yīng)多個(gè)組;
user:root group:root保存用戶組密碼的文件:/etc/gshadow
用戶配置文件:/etc/default/useradd
對(duì)用戶和用戶組的操作
添加用戶: useradd abc
查看一下:cat /etc/passwd
abc:x:500:500::/home/abc:/bin/bash
新增的abc用戶對(duì)應(yīng)的根目錄是/home/abc
[root@abc ~]# su - abc //用戶切換,從root切換到abc用戶,是不需要密碼的
[abc@abc ~]$ pwd
/home/abc
但是abc用戶切換到abc用戶自己,卻提示我們需要輸入密碼,但是我們卻不知道密碼。
[abc@abc ~]$ su - abc
Password:??????
這時(shí)用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
對(duì)用戶進(jìn)行名稱修改時(shí),用戶名是發(fā)生了變化,但是home目錄的文件夾名稱并沒有發(fā)生改名/home/abc
刪除用戶: userdel -r abc_linux
-r:在刪除該用戶時(shí)一并刪除該用戶對(duì)應(yīng)的home文件夾
用戶組添加: groupadd g1
用戶組修改: groupmod -n newg1 g1
用戶組刪除: groupdel newg1
Linux文件權(quán)限
r: 讀權(quán)限(read)可以讀取文件/目錄的內(nèi)容
w: 寫權(quán)限(write)可以寫、刪除文件/目錄
x: 執(zhí)行權(quán)限(execute)可以執(zhí)行可執(zhí)行文件
-:沒有權(quán)限
使用ls命令查看:
drwxr-xr-x 2 root root 4096 Oct 29 02:12 Desktop
drwxr-xr-x就是文件的權(quán)限
第一位:文件類型 d是目錄 -是文件 l是鏈接
第2-4位:所屬用戶的權(quán)限, 用u(user)表示
第5-7位:所屬組的權(quán)限,用g(group)表示
第8-10位:其他用戶的權(quán)限,用o(other)表示
第2-10位:表示所有的權(quán)限,用a(all)表示
d rwx -w- ---
目錄、owner權(quán)限為可讀寫執(zhí)行、group權(quán)限為可寫、others沒有任何權(quán)限
- rwx rwx r-x
文件、owner權(quán)限為可讀寫執(zhí)行、group權(quán)限為可讀寫執(zhí)行、others可讀可執(zhí)行
字符表示法:chmod [-R] mode file
mode有哪些:
| who | operator | permission |
|---|---|---|
| u(owner) | + | r |
| g(group) | - | w |
| o(others) | = | x |
| a(ugo) |
去掉owner的寫權(quán)限: chmod u-w hello
為group添加寫權(quán)限: chmod g+w hello
為owner和group添加寫權(quán)限:chmod ug+w hello
ugo去掉執(zhí)行權(quán)限:chmod ugo-x hello
為文件夾添加執(zhí)行權(quán)限:chmod a+x hello
others改成寫權(quán)限:chmod o=w hello
將hello文件夾的所有權(quán)限去掉: chmod a= hello
雖然hello目錄的權(quán)限都被我們刪除了,但是并不影響該目錄下的子目錄或者文件的權(quán)限
給hello文件夾下的所有文件都添加rwx權(quán)限:chmod -R a+rwx hello(-R是遞歸操作)
數(shù)字表示法: chmod 777 hello
r用4表示、w用2表示、x用1表示、沒有權(quán)限用0表示
owner: rwx: 4 + 2 + 1 = 7
group: r-x: 4 + 0 + 1 = 5
others: r--: 4 + 0 + 0 = 4
rwxr-xr-- = 754
owner設(shè)置r-x: r=4 w=0 x=1 chmod 577 hello
ugo設(shè)置r-x:chmod 555 hello 遞歸設(shè)置:chmod -R 555 hello