Linux學習筆記8 檔案的所有權和訪問權

2022-01-30 10:05:31 字數 4781 閱讀 9311

檔案擁有者

每個檔案(或者目錄)從屬於乙個檔案擁有者(一般是乙個使用者名稱)和乙個使用者組。

檔案擁有者一般來說就是生成(或者拷貝)這個檔案的使用者。

使用者組經常包含乙個使用者-檔案擁有者。

使用者組通常有乙個名字來標識該使用者,但是也不是必須的。

乙個檔案只能被檔案擁有者刪除,或者是檔案所屬的使用者組裡的其他使用者,或者是root使用者。

對於其他使用者,如果被賦於適當的許可權,也有可能修改或者刪除該檔案。

檔案所屬的使用者和使用者組可以通過命令ls –l(長檔名顯示格式)來顯示:

--根據以前學過的建立目錄和使用vi建立乙個測試檔案。

如:--這裡是以ok_008普通使用者登入。

last login: wed sep 26 18:57:44 2007 from 192.168.1.2

[ok_008@centos4 ~]$ ls

[ok_008@centos4 ~]$ mkdir ok008filed --建立乙個叫ok008filed的檔案目錄

[ok_008@centos4 ~]$ ls

ok008filed

[ok_008@centos4 ~]$ cd ok008field

-bash: cd: ok008field: no such file or directory

[ok_008@centos4 ~]$ cd ok008filed

[ok_008@centos4 ok008filed]$ ls

[ok_008@centos4 ok008filed]$ vi mytxt.txt --新建乙個mytxt.txt的檔案,相關的vi使用說明這裡略。

hello every one!~~

~[ok_008@centos4 ok008filed]$ ls

mytxt.txt

[ok_008@centos4 ok008filed]$

現在我們使用root使用者進入檢視剛才建立的目錄檔案和文字檔案的位置:

[root@centos4 ~]# cd /home

[root@centos4 home]# ls

ok_008

[root@centos4 home]# cd ok_008

[root@centos4 ok_008]# ls

ok008filed

[root@centos4 ok_008]#

[root@centos4 ok008filed]#  pwd mytxt.txt

/home/ok_008/ok008filed

--這說明剛才我建立的檔案mytxt.txt在目錄/home/ok_008/ok008filed下。

現在圓規正傳,檢查檔案所屬的使用者和使用者組:

[ok_008@centos4 ok008filed]$ ls -l mytxt.txt

-rw-rw-r--  1 ok_008 ok_008 17 sep 26 19:00 mytxt.txt

--這裡有個問題就是教材中只說到使用adduser來建立使用者,但不知道怎麼樣建立使用者組。

--呵呵,暈哦。找半天資料沒有乙個說到,又不能上網baidu只有忽悠。先濾過。

--看看方法吧。

-rw-rw-r--

10bit,由4部分構成(前面學過):

型別(1bit) + 使用者所有者許可權(3bit) + 工作組許可權(3bit) + 其他使用者或使用者組許可權 (3bit)

這裡的r表示唯讀,w表示可寫,-表示此位無許可權

《linux新手管理員指南chm》裡面總結的檔案許可權非常有不錯:

除了字元,也可以使用數字來設定許可權。想知道是然後工作的,看以下例子:

execute=1

write=2

read=4

對於指定的三種不同使用者級別總結如下:

0 = 沒有任何許可權 (不能讀,不能寫,不能執行)     (常見)

1 = 只能執行                                    (看起來不太正常)

2 = 只能寫                                      (看起來不太正常)

3 = 只能寫和執行                                (看起來不太正常)

4 = 唯讀                                       (常見)

5 = 唯讀和執行                                  (常見)

6 = 讀和寫                                      (常見)

7 = 讀,寫和執行                                (常見)

要給三個不同的使用者級別設定訪問許可權,只需要把三個數字粘在一起就可以了。舉例:

chmod 770 junk

本機操作:

[ok_008@centos4 ok008filed]$ chmod 770 mytxt.txt

[ok_008@centos4 ok008filed]$ ls -l mytxt.txt

-rwxrwx---  1 ok_008 ok_008 17 sep 26 19:00 mytxt.txt

[ok_008@centos4 ok008filed]$ --說明成功修改,感覺不錯也。

將給檔案擁有者和所屬使用者組所有許可權(讀,寫和執行),而對於其他使用者沒有任何許可權。

chmod 666 junk

本機操作:

[ok_008@centos4 ok008filed]$ chmod 666 mytxt.txt

[ok_008@centos4 ok008filed]$ ls -l mytxt.txt

-rw-rw-rw-  1 ok_008 ok_008 17 sep 26 19:00 mytxt.txt

[ok_008@centos4 ok008filed]$

這裡我們要把當前修改檔案的許可權原來的:-rw-rw-r--  1 ok_008 ok_008 17 sep 26 19:00 mytxt.txt

可以這樣:

[ok_008@centos4 ok008filed]$ chmod 664 mytxt.txt

[ok_008@centos4 ok008filed]$ ls -l mytxt.txt

-rw-rw-r--  1 ok_008 ok_008 17 sep 26 19:00 mytxt.txt

--從上面的例子我們可以看出原來修改檔案許可權也不是那麼難。呵呵!

將給所有使用者(檔案擁有者,所屬使用者組,其他使用者)讀寫許可權,但是沒有執行許可權。

請注意這個666許可權設定裡很經常用到,有人認為這是整個linux(或者其他unix裡)的精髓所在。

chmod 411 junk

檔案訪問許可權的數字表示法叫做「八位組」因為是基於八進位制的(我們的日常計數系統是基於十進位制)。八進位制有八個數值從0到7,最大數字是7。對應的,十進位制有十個數字從0到9,最大數字是9。八進位制表示法對於二進位制的檔案許可權表示法的確非常方便,每乙個標誌都可以通過設定成0或者1來表示「允許」或者「不允許」,如以下的例子:

使用者級別:                   檔案擁有者     使用者組         其他使用者

許可權設定例子                     rwx             rw-             r--

預設許可權                         ---             --x -           wx

許可權的二進位制表示法                111             110             100

許可權的八進位制表示法                7               6               4

目錄許可權

目錄的訪問許可權和一般檔案的訪問許可權是不同的。對於一般檔案:

r      =允許讀檔案內容

w      =允許修改檔案內容

x      =允許執行該檔案

對於目錄而言:

r      =允許列出該目錄下的檔案和子目錄

w      =允許生成和刪除該目錄下的檔案

x      =允許訪問該目錄

使用umask設定預設檔案屬性

當乙個檔案生成時,系統給以檔案預設的檔案許可權。在我的系統裡,預設許可權是:

-rw-r--r--

這意味著由該使用者生成的檔案能被該使用者讀和寫,而使用者組和其他使用者只能讀。還有,在我的redhat系統裡,使用者不能讀取其他使用者的主目錄,因為使用者主目錄的預設許可權是

drwx------

我可以使用以下命令檢查我剛生成的檔案的預設許可權:

umask -s

(可選項-s代表「符號」告訴umask按容易閱讀的格式顯示檔案許可權,而不是預設的數字格式)

我可以修改新生成檔案的預設許可權

umask u=rw,g=,o=

對於新生成的檔案,以上命令將給檔案擁有者以讀和寫的許可權,而使用者組和其他使用者將沒有任何訪問許可權。

在umask命令裡使用數值來設定檔案的預設屬性更加麻煩。因為數值顯示的是從使用者那裡去除掉的許可權(剛好和chmod相反),比如:

umask 000

對於新生成的檔案,你將給所有人所有的許可權。下乙個例子給檔案擁有者以讀和寫的許可權,而其他使用者沒有任何許可權:

umask 177

為了讓設定對系統永久有效,在檔案/etc/profile裡修改對應的行。

這裡大部分的說明技巧來自《linux新手管理員指南》雖然是2023年2月製作的chm,但感覺不錯值得一看。

好了今天就學這麼多,一些細節的東西得多接觸多練習多摸索。現在晚上11點半了,得去沖涼休息了。

相信明天會更美好!

C學習筆記(8) 檔案讀寫

1.c 檔案讀寫 乙個檔案,無論它是文字檔案還是二進位制檔案,都是代表了一系列的位元組。c 語言不僅提供了訪問頂層的函式,也提供了底層 os 呼叫來處理儲存裝置上的檔案。a.開啟檔案 file fopen const char filename,const char mode filemame是檔名...

Linux學習筆記5 檔案

在 linux 中,所有的東西都被當成檔案 檔案許可權的第乙個字母代表檔案的型別 b 塊裝置檔案 c 字元裝置檔案 l鏈結檔案 d 目錄 一般檔案 許可權型別 r w x 擁有者u 組g 其他使用者o 執行 x 權力 沒有這個權利,無法進入目錄,建新檔案,以及查詢目錄下檔案和內容的許可權。讀權利 讀...

Java學習筆記 Java基礎8(檔案)

1.file 通過該類可在程式中操作硬碟上的檔案和目錄,但是該類只用於表示檔案或目錄的資訊 名稱 大小等 不能對檔案的內容進行訪問 1 file string pathname 通過給定的字串轉換為抽象路徑名來建立乙個新file例項 2 表示路徑時,應使用file.separator表示分隔符 或 ...