解讀Linux文件權限的設置方法--中安網-IT地帶
 首頁 新聞 安徽 體育 財經 黃梅 旅游 軍事 娛樂 法治 教育 伊人 健康
繁體中文
 IT 彩信 讀書 汽車 演藝 音樂 徽商 書庫 郵件 論壇 賀卡 相冊 交友
簡體中文
精彩圖庫 業界動態 觀察分析 手機數碼 電腦教室 軟件下載 游戲人間 本地市場
精彩推薦
v微軟在瘦身版Windows中做手腳 歐盟展開調查
v3G最後測試4月份將出結果 牌照發放悄悄提速
v南郵教授為月租費正名 電話收月租符合慣例
v中興通訊聯姻中超 一場備受關注的隱秘戀情
v手機電磁輻射標准望今年出臺 國內不會高於國際
v新一代造型潮流 各色指甲刀旋影手機大檢閱
v諾基亞12款S60機大檢閱 哪款智能手機適合你
v《三國群英傳ONLINE》游戲截圖欣賞
v《古墓麗影:傳奇》熱辣游戲圖片公布
精彩圖片
  您當前的位置 :中安網 > IT地帶 > 電腦教室 > 操作系統 正文
解讀Linux文件權限的設置方法

中安網  2005-04-15 11:59

  電腦報4月14日報道 Windows系統其實和Linux系統有相似的地方,Windows系統文件、目錄的屬性有只讀、隱藏,而Linux也一樣。

  Linux中,每一個文件都具有特定的屬性。主要包括文件類型和文件權限兩個方面。可以分為5種不同的類型:普通文件、目錄文件、鏈接文件、設備文件和管道文件。

  所謂的文件權限,是指對文件的訪問權限,包括對文件的讀、寫、刪除、執行。Linux是一個多用戶操作系統,它允許多個用戶同時登錄和工作。因此Linux將一個文件或目錄與一個用戶或組聯系起來。訪問控制列表(ACL:Access Control List)為計算機提供更好的訪問控制,它的作用是限制包括root用戶在內的所有用戶對文件、資源或者套接字的訪問。下面就來教大家簡單的設置方法。

  步驟1:檢查系統核心

  首先檢查你的Linux系統的核心是否有支持ACL的功能。因為Linux系統並不是每一個版本的核心都有支持ACL的功能,而最簡單的方法就是檢查系統目前的核心能否支持:

  [root@mail /]# cat /boot/config-kernel-version | grep -i ext3

  CONFIG_EXT3_FS=m

  CONFIG_EXT3_IDEX=y

  CONFIG_EXT3_FS_XATTR_SHARING=y

  CONFIG_EXT3_FS_XATTR_USER=y

  CONFIG_EXT3_FS_XATTR_TRUSTED=y

  CONFIG_EXT3_FS_ACL=y

  此時如果能看到上面的幾項則表示已經編譯到核心中,ext3文件系統已支持ACL功能,這些功能在編譯核心選項中都可以找到。如果編譯時找不到,可以到ACL的官方網站來安裝Kernel(acl.bestbits.at/)。

  步驟2:掛載分區

  你可以用下列的方式掛載分區並啟用ACL:

  #mount -t ext3 -o acl /dev/sda1 /fs1

  你也可以直接寫在/etc/fstab文件中,這樣就可以在開機後支持ACL功能:

  #vi /etc/fstab

  步驟3:設置ACL權限

  ACL常常針對個別用戶來進行設置,下面是多個不同的例子:

  例如需要創建test1、test2、test3三個用戶,可以先用root身份登錄系統,然後執行以下命令分別創建三個用戶名和密碼:

  [root@mail root]#adduser test1

  [root@mail root]#adduser test2

  [root@mail root]#adduser test3

  [root@mail root]#passwd test1

  [root@mail root]#passwd test2

  [root@mail root]#passwd test3

  然後mount一個ext3文件到目錄/fs1:

  [root@mail root]#mount -t ext3 -o acl /dev/sda1 /fs1

  再將test1建立的文件設置讀寫的權限給test2:

  [root@mail root]#chmod -R 777 /fs1

  讓所有的用戶都能增加文件到目錄的權限:

  先用test1登錄系統,執行命令:

  [test1@mail test1]# cd /fs1

  [test1@mail fs1]# echo "Create by test1" > test1.txt

  [test1@mail fs1]# chmod go-r test1.txt

  [test1@mail fs1]# ll test1.txt

  -rw------- 1 test1 test1 17 Jul 14 22:11 test1.txt

  而如下操作則可以讓除了test1有讀寫的權限外其他人沒有讀寫test1.txt的權限(root除外),先用test2登錄系統後執行以下命令:

  [test2@mail test2]# cd /fs1

  [test2@mail fs1]# cat test1.txt

  cat : test1.txt Permission denied

  接著用test1登錄系統,執行如下命令:

  [test1@mail fs1]# setfacl -m u:test2:rw test1.txt

  這樣就修改權限允許test2有這個文件的讀寫權限。再看一下它的文件屬性的變化:

  [test1@mail fs1]# ll

  -rw-rw-r--+ 1 test1 test1 10 Feb 16 13:52 test1.txt

  會看到後面多了一個『+』,表示這個文件使用ACL的屬性設置,再用命令getfacl來看ACL的文件屬性設置:

  [test1@mail fs1]# getfacl test1.txt

  # file: test1.txt

  # owner: test1

  # group: test1

  user::rw-

  user:test2:rw-

  group::rw-

  mask::rw-

  other::r--

  可以看到test2有權限讀寫這個文件。

  我們再用test2登錄系統執行以下命令,看看發生了什麼?

  [test2@mail test2]# cd /fs1

  [test2@mail fs1]# cat test1.txt

  Create by test1

  原來test2可以讀取test1.txt文件了。

  [test2@mail fs1]# echo "Modify by test2" >> test1.txt

  [test2@mail fs1]# cat test1.txt

  Create by test1

  Modify by test2

  現在test2也可以修改test1.txt文件了。

  接著用test3登錄系統:

  [test3@mail test3]# cd /fs1

  [test3@mail fs1]# cat test1.txt

  cat : test1.txt Permission denied

  嘿嘿,除了test1、test2外沒有其他用戶有讀寫test1.txt的權限(root除外)。

  看著雖然有點暈,其實命令就是這麼一兩條,主要是把各種情況給大家講清楚,這樣,大家在使用Linux中纔會發現,比起脆弱的Windows的權限防護,Linux實在是做得相當不錯!(李漢強)

編輯: 丁毅
 ?【相 關 報 道】?
-【圖文】Linux與Windows文件互傳技巧   05-04-04 12:16
-【圖文】RedHat Linux操作系統配置技巧   05-03-28 11:38
-Linux操作系統12則經典應用技巧   05-03-18 13:57
-Linux上搭建C/C++IDE開發環境   05-02-06 13:00
-獨闢蹊徑 實現Linux下的局域網遠程接入   05-02-04 13:26
 

中國安徽在線網站(中安在線)版權所有 未經允許 請勿復制或鏡像
皖ICP證 030106號