Linux文件,目錄基本權限管理

Linux權限基本概述

1.什麼是權限?

我們可以把它理解爲操作系統對用戶能夠執行的功能所設立的限制,主要用於約束用戶能對系統所做的操作,以及內容訪問的範圍,或者說,權限是指某個特定的用戶具有特定的系統資源使用權力。

2.爲什麼要有權限?

因爲系統中不可能只存在一個root用戶,一定會存在多個用戶,爲了保護每個登陸用戶的隱私和工作環境,所以就有了權限。(比如三個租客合租同一個房子,a租客要使用b租客的肥皂,那這個事情??)

3.權限與用戶之間的關係?

在Linux系統中,針對文件定義了三種身份,分別是屬主(owner)、屬組(group)、其他人(others),每一種身份又對應三種權限,分別是可讀(readable)、可寫(writable)、可執行(excutable)

用戶對文件資源,有三種角色,當一個用戶訪問文件流程如下

  1. 判斷用戶是否爲文件所有者,如果是則按所有者的權限進行訪問
  2. 判斷用戶是否爲文件所有組成員,如果是則按組的權限進行訪問
  3. 如果不是所有者,也不是該文件所屬組,則按匿名權限進行訪問

4.權限中的rwx分別代表什麼含義

當我們使用ls -l查看一個文件的詳細屬性時,能看到每個文件都有一個9位基本權限位,比如: rwxr-xr-x其中每三位字符爲一組,分別表示屬主權限位,屬組權限位,匿名權限位。
linux中基本權限位則是使用這9位字符來表示,主要控制文件屬主(User)、屬組(Group)、其他用戶(Other)

注:如果權限位不可讀、不可寫、不可執行,則全部使用-作爲佔位符表示。

Linux文件權限設置

1.爲什麼要設定權限?如何修改一個文件的權限?

a: 爲什麼要設定權限,可以賦於某個用戶或組 – 能夠以何種方式 – 訪問某個文件
b: Linux下使用chmod命令來變更權限,root用戶可以變更所有文件的權限,而普通用戶僅能變更屬於自己的文件。

2.使用chmod設定權限

a.通過ugo方法

[root@bgx ~]# touch file                    #創建文件
[root@bgx ~]# chmod a=rwx file              #給所有人添加讀寫執行權限
[root@bgx ~]# chmod a=-rwx file             #取消所有的權限
[root@bgx ~]# chmod u=rwx,g=rw,o=- file     #屬主讀寫執行,屬組讀寫,其他人無權限
[root@bgx ~]# chmod ug=rwx,o=r file         #屬主屬組讀寫執行,其他人讀權限
[root@bgx ~]# ll file
-rwxrw-r-- 1 root root 0 Apr 13 03:29 file

b.通過number方法

#選項:  -R遞歸修改
[root@bgx ~]# touch file
[root@bgx ~]# chmod 644 file
[root@bgx ~]# chmod 600 file
[root@bgx ~]# ll file
-rw------- 1 root root 0 Apr 13 03:29 file

#針對目錄設定權限
[root@bgx ~]# mkdir dir
[root@bgx ~]# chmod 777 dir/    #修改目錄允許所有人訪問
[root@bgx ~]# chmod -R 755 dir/ #修改目錄及子目錄權限
[root@bgx ~]# ll -d dir/
drwxr-xr-x 2 root root 6 Apr 13 03:34 dir/

c.例子

針對 hr 部門的訪問目錄/home/hr 設置權限,要求如下:
1.root 用戶和 hr 組的員工可以讀、寫、執行
2.其他用戶沒有任何權限

[root@oldboy ~]# groupadd hr
[root@oldboy ~]# useradd hr01 -G hr 
[root@oldboy ~]# useradd hr02 -G hr 
[root@oldboy ~]# mkdir /home/hr
[root@oldboy ~]# chgrp hr /home/hr
[root@oldboy ~]# chmod 770 /home/hr
[root@oldboy ~]# ll -d /home/hr
drwxrwx---. 2 root hr 6 Mar 26 16:01 /home/hr

Linux系統目錄權限設置與文件權限設置

a.文件權限設置:

#1.新建文件,並添加內容至文件中,默認文件匿名用戶僅有讀權限
[root@ly ~]# echo "date" > filename
[root@ly ~]# ll filename
-rw-r--r-- 1 root root 5 Jan 24 08:24 filename

#2.切換bgx普通用戶
[root@ly ~]# su - bgx

#3.對文件擁有讀取的權限,但bgx用戶對文件沒有執行和刪除的權限
[bgx@ly ~]$ cat  /root/filename
date

#4.使用root增加x執行權限
[root@ly ~]# chmod o+x /root/filename
[root@ly ~]# ll /root/filename
-rw-r--r-x 1 root root 5 Jan 24 08:24 /root/filename

#5.測試x權限是否真的能執行該文件
[bgx@ly ~]$ /root/filename
Wed Jan 24 08:28:34 EST 2018

#6.增加w執行權限
[root@ly ~]# chmod o+w /root/filename
[root@ly ~]# ll /root/filename
-rw-r--rwx 1 root root 5 Jan 24 08:24 /root/filename

#7.測試執行權限
[bgx@ly ~]$ vim /root/filename

注:rwx對文件的影響:

讀取權限(r)具有讀取\閱讀文件內容權限
1.只能使用查看類命令cat、head、tail、less、more

寫入權限(w)具有新增、修改文件內容的權限
1.使用vim編輯會提示權限拒絕, 但可強制保存,會覆蓋文件的所有內容
2.使用echo命令重定向的方式可以往文件內寫入數據,>>可以進行追加
3.不能刪除文件,因爲刪除文件看的不是文件的屬性,需要看上級目錄是否有w的權限

執行權限(x)具有執行文件的權限
1.執行權限什麼用都沒有
2.如果普通用戶需要執行文件,需要配合r權限

b.目錄權限設置

#示例1: 創建目錄,並在該目錄下創建文件,匿名用戶對目錄沒有w權限,對文件有777權限 
[root@xuliangwei ~]# mkdir /dirname
[root@xuliangwei ~]# echo "test" >> /dirname/filename
[root@xuliangwei ~]# chmod 777 /dirname/filename

#普通用戶驗證權限,能正常查看,但無法刪除[奇怪]
[bgx@xuliangwei ~]$ cat /dirname/filename
test
[bgx@xuliangwei ~]$ rm -f /dirname/filename
rm: cannot remove ‘/dirname/filename’: Permission denied


#示例2: 設置目錄777權限,相當於匿名用戶對目錄有w權限,對文件沒有任何權限
[root@xuliangwei ~]# chmod 777 /dirname/
[root@xuliangwei ~]# chmod 000 /dirname/filename

#普通用戶驗證權限
[bgx@xuliangwei ~]$ cat /dirname/filename
cat: /dirname/filename: Permission denied
[bgx@xuliangwei ~]$ rm -f /dirname/filename
[bgx@xuliangwei ~]$ touch /dirname/filename_2

注:rwx對目錄的影響

讀取權限(r),如果目錄只有r權限: 具有瀏覽目錄及子目錄權限
1.可以使用ls命令瀏覽目錄及子目錄, 但同時也會提示權限拒絕
2.使用ls -l命令瀏覽目錄及子目錄,文件屬性會帶問號,並且只能看到文件名
總結: 目錄只有r權限,僅僅只能瀏覽內的文件名,無其他操作權限

寫入權限(w),如果目錄只有w權限: 具有增加、刪除或修改目錄內文件名權限(需要x權限配合)
PS: 如果目錄有w權限, 可以在目錄內創建文件, 刪除文件(跟文件本身權限無關)
不能進入目錄、不能複製目錄、不能刪除目錄、不能移動目錄

執行權限(x),如果目錄只有x權限
1.只能進入目錄
2.不能瀏覽、複製、移動、刪除

總結

文件r權限, 只給用戶查看,無其他操作
文件rw權限, 可以查看和編輯文件內容
文件rx權限, 允許查看和執行文件、但不能修改文件----->PASS
文件rwx權限, 能讀,能寫,能執行,但不能刪除,因爲刪除需要看上級目錄的權限有沒有w----->PASS
目錄rx權限, 允許瀏覽目錄內文件以及子目錄、並允許在目錄內新建文件, 不允許創建、刪除文件和目錄
目錄wx權限, 能進入目錄,能刪除內容,能寫入內容,但就是無法使用ls cat這樣的命令----->PASS
目錄rw權限, 能看,能寫,但無法進入目錄----->PASS
PS: 文件的 x權限小心給予,目錄的 w權限小心給予。
PS: 文件通常設定的權限是644,目錄設定的權限是755
PS: 控制目錄權限755, 如果有普通用戶需要操作目錄裏面的文件,在來看文件的權限

屬主屬組設置

在Linux中如何變更一個文件或者一個資源的屬主和屬組呢,可以使用chown、chgrp命令實現。
chown能設置屬主和屬組,chgrp僅能設置屬組。(所以用哪個你懂的)

#chown 更改屬主以及屬組 -R:遞歸修改

#準備環境,創建文件和目錄
[root@bgx ~]# mkdir dir/test1 && touch dir/file

#示例1: 修改所屬主爲bin
[root@bgx ~]# chown bin dir/

#示例2: 修改所屬組爲adm
[root@bgx ~]# chown .adm dir/

#示例3: 遞歸修改目錄及目錄下的所有文件屬主和屬組
[root@bgx ~]# chown -R root.root dir/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章