歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> Unix系統中文件管理和文件權限設置教程(6)

Unix系統中文件管理和文件權限設置教程(6)

日期:2017/2/25 10:11:30   编辑:Unix基礎知識

改變所有者和所屬組
在 UNIX 上創建一個帳戶時,系統會給每個用戶分配一個所有者 ID 和組 ID。所有上面提到的權限也會基於所有者和組進行分配。

如下的兩個命令可以改變一個文件的所有者和組:

chown:chown 表示的是 “change owner”,並且它是被用來改變一個文件的所有者。
chgrp:chgrp 表示的是 “change group”,並且它是被用來一個文件所屬的組。


改變所有者關系
chown 命令用來改變一個文件的所有者,它的基本語法如下:

復制代碼

代碼如下:


$ chown user filelist


上面命令中的 user 既可以是系統中的用戶名,也可以是系統中用戶的 id(uid)。 示例:

復制代碼

代碼如下:


$ chown amrood testfile


改變 testfile 文件的所有者為 amrood 用戶。

注意:超級用戶,root 用戶,擁有不受限制的權限,能夠更改所有文件的所有者,但是普通用戶只能修改他們所擁有的文件的所有者。

改變組關系
chgrp 命令被用來修改文件所屬的組。基本語法如下:

復制代碼

代碼如下:


$ chgrp group filelist


上面命令中的 group 既可以是系統中存在的組的名稱,也可以是系統中存在的組的 ID(GID)。

示例:

復制代碼

代碼如下:


$ chgrp special testfile


改變給定的文件的組為 special 組。

SUID 和 SGID 文件權限
通常執行一個命令時,為了完成該任務它必須擁有某些特殊的權限。

舉一個例子,當你使用 passwd 命令改變了你的密碼後,您的新密碼存儲在文件 /etc/shadow 中。

作為一個普通用戶,出於安全原因你沒有讀或寫訪問這個文件的權限,但是當你改變你的密碼時,你需要擁有對這個文件寫權限。這意味著 passwd 程序必須給你額外的權限,以便您可以編寫文件 /etc/shadow,也就是需要額外的權限。

通過設置用戶 ID(SUID)和組 ID(SGID) 位可以給程序額外的權限。

當您執行一個啟用了 SUID 的程序,你繼承了程序所有者的權限。啟動改程序的用戶就可以不用設置 SUID 直接運行該程序。

這對於 SGID 同樣是適用的。通常程序是按組的權限進行執行,除非你的組改變了該程序所屬組的擁有者。

如果 SUID 和 SGID 權限是可用的,它們將會以小寫的 “s” 出現。SUID 的 “s” 位通常位於權限中所有者執行權限的旁邊。如下:

復制代碼

代碼如下:


$ ls -l /usr/bin/passwd
-r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*


上面的顯示了 SUID 被設置了並且該命令被 root 用戶所擁有。在使用大寫字母 S 而不是小寫字母表示執行位沒有設置。

如果對一個目錄設置了防刪除位(sticky bit),那麼只有你是如下任意一種用戶時你才可以刪除該文件:

該目錄的擁有者
被刪除文件的擁有者
超級用戶,root 用戶
你可以使用如下的方式設置任何目錄的 SUID 和 SGID 位。

復制代碼

代碼如下:


$ chmod ug+s dirname
$ ls -l
drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname

Copyright © Linux教程網 All Rights Reserved