檔案擁有者
每個檔案(或者目錄)從屬於乙個檔案擁有者(一般是乙個使用者名稱)和乙個使用者組。
檔案擁有者一般來說就是生成(或者拷貝)這個檔案的使用者。
使用者組經常包含乙個使用者-檔案擁有者。
使用者組通常有乙個名字來標識該使用者,但是也不是必須的。
乙個檔案只能被檔案擁有者刪除,或者是檔案所屬的使用者組裡的其他使用者,或者是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表示分隔符 或 ...