Linux 檔案 目錄 許可權及修改

2022-08-18 12:06:10 字數 2518 閱讀 7841

首先所有許可權對於三類使用者分別設定: user(所有者) / group(組群) / others(其他)。

許可權也是有三種:read / write / execute,這三種許可權對於文件和目錄有不同的意義。

1. 對於文件:

read:可以檢視文件的內容

write:可以修改文件的內容,新增、刪除、修改內容等

execute:文件可執行

需要注意:對於文件,許可權指的是對於文件內容的許可權而不是對於文件本身的許可權。舉個例子就是說即使有對文件的read,write,execute全部的許可權,也不能決定是否刪除移動文件本身,這些許可權是由目錄許可權規定的。

2. 對於資料夾:

read: 可以檢視資料夾下檔案/目錄列表

write:可以在目錄下新增、刪除檔案/目錄,當然還有修改檔名/目錄名

execute: 是否可以作為工作目錄,即是否可以cd進來

注意:對於資料夾,沒有execute許可權的話,read write功能都不能被正常使用

修改許可權的命令:chown,chgrp,chmod, 

chown:

$sudo chown 賬號名 檔名/目錄名  #只改擁有者

$sudo chown 賬號名:組群 檔名/目錄名 #改擁有者和組群

$sudo chown 賬號名.組群 檔名/目錄名 #同上

$sudo chown .組群 檔名/目錄名 #只改組群

chgrp:

$sudo chgrp 組名 檔名/目錄名

chmod:修改許可權的時候並不是每次都要寫9個許可權的,太長了

每個許可權有對應的整數值,read(4),write(2),execute(1), 用他們的和就可代表一類許可權。

$sudo chmod 744 檔名/目錄名 

雖然這樣已經將引數從9減至3了,但依然不夠簡便。可以利用+/-/=來增加/刪除/設定許可權。其中用u/g/o/a分別表示擁有者/群組/其他使用者/全部。

$sudo chmod u+x,go-w 檔名/目錄名 #給擁有者增加execute許可權,其他使用者撤銷write許可權。

p.s.  上述的命令用語資料夾時可以加上選項 -r 表示對資料夾的所有目錄遞迴使用。

2010.12.7日補充:

除了普通的r,w,x等許可權,文件/目錄還有預設許可權,隱藏許可權和特殊許可權,下面分別介紹。

預設許可權:

umask:新建檔案或目錄的預設屬性,新建檔案沒有execute許可權,新建目錄有execute許可權

$umask -s

u=rwx,g=rx,o=rx

$umask

注意,以數字顯示許可權中,數字表示的是該預設值需要減掉到許可權,如2,表示沒有w=2許可權

隱藏許可權:lsattr,chattr,只有在ext2/ext3/ext4下面有效,其他檔案系統下顯示「lsattr: 對裝置不適當的 ioctl 操作 while reading flags on ...」錯,需要用到的請man

特殊許可權:suid, sgid, sbit

我們已經知道了文件/目錄有r,w,x三個許可權,但是有時還會有s,t許可權,比如passwd,/tmp,等的許可權如下所示:

-rwsr-xr-x 1 root root 37140 2010-01-27 01:09 /usr/bin/passwd*

drwxrwxrwt 13 root root 4096 2010-12-07 09:58 ./

s對應於文件所有者的許可權時對應suid(set user id)許可權。suid許可權只存在於二進位制程式,是指一般使用者執行此二進位制程式時獲得root許可權(要求一般使用者對文件有x許可權噢)。注意對目錄和非二進位制程式到文件不存在這樣到許可權。

s對應與文件所屬群組到許可權時對應sgid(set group id)許可權。sgid許可權對二進位制程式文件和目錄均有效:對於二進位制程式文件,一般使用者執行時獲得文件所在群組到許可權(要求一般使用者對文件有x許可權);對於目錄,一般使用者進入此目錄時有目錄所屬群組的許可權,當使用者在此目錄中新建文件/目錄時,新建文件/目錄到所屬群為當前目錄的所屬群。

t對應於目錄許可權時對應sbit(sticky bit),在該目錄下新建立到的文件和目錄只有所有者和root可以刪除(可以建立是要求有w,x許可權)。 

如何設定特殊許可權呢? 我們知道一般可以用744這個三個數字代表所有者,所在群組和其他使用者的許可權。在這三個數前面再加上乙個數則代表特殊許可權,其中suid(4),sgid(2),sbit(1).

liyx@liyx-ubuntu:~$ ll special

-rw-r--r-- 1 liyx liyx 0 2010-12-07 11:15 special

liyx@liyx-ubuntu:~$ chmod 4755 special

liyx@liyx-ubuntu:~$ ll special

-rwsr-xr-x 1 liyx liyx 0 2010-12-07 11:15 special*

當然也可以用$chmod o+s special 的方式修改特殊許可權。

參考:《鳥哥的linux私房菜基礎篇》

Linux中修改檔案及目錄許可權

chmod命令中,u代表所有者,g代表所屬組,o代表其他使用者,a代表所有人。當修改完成後用ls l命令檢視修改結果。用法 chmod 選項 許可權 檔案或目錄 root gao chmod u rwx,g rw,o r test haha.txt root gao chmod a rwx test...

Linux修改檔案(目錄)許可權

1 先說我遇到的問題,我匯入本地的資料,我後台邏輯是將本地資料建立乙個臨時檔案儲存起來然後再去拿出來進行資料插入。2 然而頁面報錯說是這個臨時檔案沒找到,後來我就仔細看了看 發現 是沒錯的,最後我就想起來應該是目錄許可權問題。3 最後我就去看專案目錄許可權 一下是我 目錄許可權的結果圖 data目錄...

linux檔案許可權及修改

1.檔案型別 表示普通檔案 l 表示鏈結檔案 這裡鏈結檔案也分兩種,in硬鏈結 in s軟鏈結 d 表示目錄檔案 b 表示裝置檔案 c 表示字元裝置檔案 s 表示unix的網路檔案 p 表示管道檔案 掌握了這些檔案的型別,下面我們就去看看檔案的許可權 2.檔案許可權 linux檔案訪問許可權分為可讀...