日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

對話 UNIX,第 4 部分: UNIX 所有權和權限管理

瀏覽:47日期:2024-06-12 08:29:32

從大約 50 年前電子時代的開始直到 1977 年出現了 Apple 計算機,完成計算工作的硬件設備一直很缺乏,并且購買和運行它們也非常的昂貴。當時,這些(相對)原始的系統非常珍貴,僅僅用來處理那些最復雜的問題。不同的項目之間必須競爭才能獲得機時,而最早的信息技術 (IT) 管理人員的任務是保持系統每天 24 小時、每個星期 7 天不間斷地進行工作。畢竟,每一秒的閑置都等于浪費金錢。

在理想的情況下,可以根據需要將這些浪費掉的 時間自動地分配給任何處于就緒狀態等待進行計算的任務。實際上,這正是分時 (time-sharing) 的基本思想(由 Robert Berner 在 1957 年提出)。在 Multics、RSTS/E 和后來的 Unix® 及其最新的變種中,都實現了分時或多任務,對計算機資源(CPU、輸入和輸出、以及內存)進行劃分,分配給多個等待執行的作業,使得看起來每個作業都獨占了計算機。可以在多任務大型機中附加一些虛擬終端,這樣每個終端都可以看作一臺個人計算機。

現在,您很可能擁有自己的 UNIX 計算機,或者與其他用戶共享功能更強大的多處理器系統。但無論是您的便攜式計算機、或者公共機房中的 UNIX 龐然大物,都可能需要進行同時訪問。UNIX 提供了健壯的工具和基礎結構,以便幫助您保護和共享信息。

本文介紹了用戶權限,特別是研究了如何對文件權限進行操作,以便對其他用戶限制或共享您的目錄和文件。如果您希望流暢地與 UNIX 進行對話,那么了解相關的權限是至關重要的。

ID 和 UID

在開始之前,讓我們來看看您使用的究竟是哪個用戶。在命令提示符處,輸入 whoami:

$ whoamistrike

我的計算機回答 strike,這是我的用戶名(即登錄時所使用的名稱)。您的 whoami 應該返回您的登錄名稱。

當然,您的用戶名是用戶 ID (UID) 的假名(pseudonym)。要查看您的 UID,可以輸入 id -u:

$ id -u501

在本示例中,我的 UID 為 501。

通常,盡可能地使用用戶名而不是 UID,因為用戶名易于閱讀和記憶。例如,如果您運行 ps uxf 命令以查看您的運行進程的列表,那么 ps 將顯示您的用戶名作為您的進程的所有者。

$ ps uxfUSER  PID %CPU %MEM  VSZ RSS TTY STAT START  TIME COMMANDstrike  32346 0.0 0.1 6496 1832 ?S19:39  0:00 sshd: strike@pts/0strike  32347 0.0 0.1 2592 1476 pts/0Ss  19:39  0:00 _ -bashstrike  32358 0.0 0.0 2476 820 pts/0R+  19:39  0:00 _ ps uxf

輸出結果中顯示了 3 個進程,分別是:一個 ssh 登錄進程,它產生了一個 bash Shell,而后者啟動了 ps 命令。類似地,如果您在自己的 home 目錄中運行 ls -alFG 以查看您的文件的所有者,那么將顯示您的用戶名而不是您的 UID。

通常,只有您可以中斷自己的任務。(當然,超級用戶 root 可以控制和操作所有的任務。)例如,joe(共享相同系統的另一個用戶)不能終止我正在運行的 Shell,即上面列表中的進程 32347:

$ whoamijoe$ kill -INT 32347-bash: kill: (32347) - Operation not permitted

其中,32347 是我的 Shell 的進程 ID,joe 可以通過運行 ps auxf 找到該信息。然而,因為該進程由我所擁有,所以 joe 不能終止它。與此相反,我當然可以結束自己的任何任務,如清單 1 所示。

清單 1. 結束自己的進程

$ ps uxf...strike  32347 0.0 0.1 2592 1488 pts/0Ss  19:39  0:00 _ -bashstrike  32733 39.5 0.0 1480 356 pts/0R19:50  0:01 _ yes$ kill -INT 32733$ ps uxf...strike  32347 0.0 0.1 2592 1488 pts/0Ss  19:39  0:00 _ -bash

在運行了 kill -INT 32733 之后,終止了進程 32733(yes 命令)。

盡管這是個比較簡單的概念,但嚴格的所有權和針對每個用戶的預置,這兩種特性使得 UNIX 遠比 Microsoft® Windows® 更加安全。

成員具有相應的權限

與您所啟動的作業一樣,您還擁有您所創建的目錄和文件。例如,在您的 home 目錄中運行 ls -alFG 命令和 $HOME 以查看您所擁有的內容,如清單 2 所示。

清單 2. 列出您在自己的 home 目錄中所擁有的內容

$ ls -alFG $HOME...-rw-------  1 strike 6175 Aug 25 07:03 .bash_history-rw-------  1 strike 567 Apr 20 2005 .bash_profile-rw-------  1 strike 1834 Apr 20 2005 .bashrcdrwx------  2 strike 4096 Mar 8 10:54 .ssh/-rw-------  1 strike 9516 Aug 22 16:42 .viminfo-rw-r--r--  1 strike 1529617 Jul 19 07:00 Archive.zipdrwxrwx---  3 strike 4096 Aug 24 04:04 IBM/drwxr-xrwx  3 strike 4096 Jun 14 06:06 backups/...

UNIX 組中存在的問題

要在組中的所有成員之間共享文件,可以更改文件的組所有者,這是一種非常簡單的方法。例如,如果由您、jane 和 joe 組成了 scIEnce UNIX 組,并且您希望與這兩個用戶共享敏感的 nuclear.csv 數據文件,只需要將該文件的組所有者更改為 science 即可。

但是,如果 sam 和 bertha 也需要訪問該文件,而他們都不屬于 science 組,那又應該怎么辦呢?當然,您可以將這兩個用戶加到 science 中,但這樣做將允許他們訪問 science 組所擁有的所有 文件。

這是 UNIX 組實現中的一個局限性:一個文件有且只能有一個組所有者,而要實現復雜的共享方案通常會導致組的數目激增。(您可以為 joe、jane、sam 和 bertha 創建一個新的組,比如 jjsb。但是當 donald 也需要訪問時,又應該怎么辦呢?)

如果您需要使用復雜的訪問控制方案,可以考慮使用訪問控制列表 (ACL),許多 UNIX 實現都提供了這種機制。ACL 對標準的 UNIX 所有權模型進行了擴展,可以對每個用戶或每個組授予(或撤銷)特定的權限。ACL 就像是在門口設置了一個保鏢:可以讓您的伙伴、某些名流和經過篩選的客人進入,而將無業游民和其他烏合之眾拒之門外。

正如您看到的,我擁有我的 home 目錄中的所有目錄和文件。作為所有者,我可以刪除、重命名和移動我的任何文件和目錄,并且可以編輯我的任何文件。您對自己的文件(除非特別指明,這里的文件 同時表示文件和目錄)具有相同的權限。

另外,您可以決定與其他的用戶共享 您的文件。實際上,因為 UNIX 是一種多用戶系統,所以共享文件是該操作系統的基本理念之一。

除了特定的用戶所有者,每個文件和目錄還具有一個組 所有者。UNIX 組 只是一些用戶的集合,而您可以作為一個或多個組中的成員。使用 id 可以查看您的成員信息:

$ iduid=501(strike) gid=501(strike) groups=501(strike), 81(appserveradm), 79(appserverusr), 80(admin)

在我的系統中,我的主要組的組 id (GID) 為 501,該組名為 strike。我還屬于其他的 3 個組:

appserveradm

appserveruser

admin

在通常情況以及缺省情況下,您所創建的文件的組所有者為您的主要組,但是您可以將組所有者更改為您所屬的任何組。在您的 home 目錄中運行 ls -laF,可以顯示有關您的文件的更多信息,如清單 3 所示。

清單 3. 顯示有關您的文件的更多信息

-rw-------  1 strike strike 6118 Aug 27 21:59 .bash_history-rw-r--r--  1 strike strike 567 Apr 20 2005 .bash_profile-rw-r--r--  1 strike strike 1834 Apr 20 2005 .bashrcdrwx------  2 strike strike 4096 Mar 8 10:54 .ssh/-rw-------  1 strike strike 9516 Aug 22 16:42 .viminfo-rw-r--r--  1 strike strike 1529617 Jul 19 07:00 Archive.zipdrwxr-xr-x  3 strike strike 4096 Aug 24 04:04 IBM/drwxrwxr-x  3 strike admin 4096 Jun 14 06:06 backups/

注意: 清單 3 顯示了 ls -l 的典型輸出。清單 2 看起來有些不同,這是因為在前面的討論中出于簡化的目的,有意隱藏了組所有者的信息。您可以使用 -G 隱藏組所有者。

名為 backups 的目錄的組所有者為 admin,它將某些權限給予了組中所有的成員。同時,我的其他文件的組所有者為 strike。通常,一個用戶是他或她的同名組中的唯一成員,這個同名組有效地將訪問權限限制于該用戶。

細節內容

如果您回頭再看看上面的 ls 的輸出結果,您將注意到,每行內容的開頭有一個由 10 個字符組成的序列。每個字符都是一個開/關設置或位,后者表示了三類用戶(您本人、您的一個組和其他用戶)的某一種特定的權限。圖 1 顯示了每一位的用法。

圖 1. UNIX 文件的權限位

在圖 1 中:

起始位表示該文件是否為目錄(通常,起始位 表示該文件是否為特殊文件。如果該文件是特殊文件,起始字符 d 表示目錄、l 表示符號鏈接,等等)。這個設置是無法改變的。

接下來的三位(用藍色表示的)分別表示您 對該文件的讀、寫和執行權限。您可以禁用寫權限位,例如要防止刪除文件。(是的,要刪除一個文件,您需要寫權限。)

接下來的三位(用綠色表示的)表示組 對該文件的讀、寫和執行權限。

最后的三位(用橙色表示的)表示所有其他 用戶(即除了您自己以及您的組中的成員之外的所有用戶)的權限。

可以使用 ls -laF 的輸出作為示例查找上述內容:

只有我可以讀和寫 .bash_history、.bash_profile、.bashrc 和 .viminfo 文件。我可以查看、編輯和刪除這些文件。

只有我可以訪問 .ssh 目錄。第一位表示它是一個特殊的文件,d 表示目錄。我可以顯示該目錄中的內容,因為已經設置了它的用戶讀位。我可以在該目錄中添加和刪除文件,因為已經設置了它的用戶寫位。您可能奇怪為什么該目錄是用戶可執行的。除非設置了該位,否則無法遍歷目錄(進入目錄并列舉目錄)。(另外,正如本系列的第 3 部分中所提到的,您的 .ssh 目錄必須是您私有的,否則您的公鑰訪問無法正常工作。)

我可以讀和寫 Archive.zip 文件,并且其他用戶可以讀該文件。(當然,strike 組也可以讀該文件,但如果我是該組中唯一的成員,那么這個權限是沒有實際意義的。)

我可以列舉、讀和寫 IBM(另一個目錄)中的文件,而其他用戶可以列舉其中的內容。

最后,admin 組的成員和我可以列舉、讀和寫 backups 目錄中的文件,而其他用戶可以列舉和讀。

設置目錄的保護 (sticky) 位

如果您希望確保一個目錄持久,而不會被意外地刪除,那么可以使用 chmod +T 設置其保護 位。

$ ls -lFdrwxrwxrwx2 strike strike  68 Aug 28 06:21 dropbox/drwx------2 strike strike  68 Aug 28 06:21 mine/$ chmod +t dropbox$ ls -lFdrwxrwxrwt2 strike strike  68 Aug 28 06:21 dropbox/drwx------2 strike strike  68 Aug 28 06:21 mine/

設置保護位并將權限設置為所有用戶都可以讀、寫和執行,每個用戶都可以在 dropbox 目錄中放置文件,但只有我能夠刪除該目錄中的文件或該目錄本身。

如果您運行 ls -ld /tmp,這個用作應用程序臨時空間的系統范圍臨時目錄可能是保護的。

您可以使用 chmod(更改模式 change mode)命令修改相應的權限(除了目錄位之外)。您可以使用 chgrp(更改組 change group)命令來修改文件所屬的組。(超級用戶 root 也可以使用 chown 或 change owner 命令來更改文件所有權。)

下面是 chmod 的示例應用程序:

chmod u+x script.sh:如果您編寫了一個 Shell 腳本,并且希望執行它,那么需要設置其執行位。其中,短語 u+x 表示對用戶所有者 (u) 設置 (+) 執行位 (x)。chmod 的一般形式是 chmod,不指定用戶(即表示用戶)、一個或多個 u、g(表示組)、或 o(表示其他用戶),+ 或 -,以及一個或多個 r、w 和 x。

chmod go+rx IBM:這個命令為組和其他用戶設置了讀和執行權限。

chmod a+rx script.sh:除了 u、g 和 o 以外,您還可以使用修飾符 a 來表示所有用戶 或用戶、組和其他用戶。因此,這個命令為所有的三類用戶設置了讀和執行權限。

chgrp admin backups:這個命令將 backups 目錄的組所有者更改為 admin。

如果使用 + 添加權限,它將會添加指定的權限,但不會修改其他的權限。與之類似,如果使用 -(減號)撤消權限,它將會禁用某些權限,但不會修改其他的權限。如果您希望一次設置所有的權限,可以使用數值文件模式。(您還可以使用 chmod = 操作符。有關詳細的內容,請參見手冊頁面。)

注意: 數值文件模式 是從 0 到 7 的 8 進制數字,或三位的數值,其中每一位分別表示讀、寫和執行。因為對于每個文件都有三類用戶,所以完整地指定文件模式需要三個數字,如 400、644 或 777。下面提供了一些示例:

要讓一個目錄成為私有的,可以為自己設置權限,而撤銷組和其他用戶的權限:

$ mkdir example$ ls -ldrwxr-xr-x2 strike strike  68 Aug 28 11:27 example$ chmod 700 example$ ls -ldrwx------2 strike strike  68 Aug 28 11:27 example

模式 700 可以表示為用戶設置讀、寫和執行權限(開頭的 7),而禁用所有其他的權限(后面的兩個 0)。

如果您希望讓該計算機上其他的用戶可以讀取您的文件,可以為所有的三類用戶設置讀權限:

$ ls -l .aliases-rw-------  1 mstreich mstreich 79 Jul 26 17:08 .aliases$ chmod 644 .alias$ ls -l-rw-r--r-- 1 mstreich mstreich 79 Jul 26 17:08 .aliases

644 是一種縮寫,它表示為我設置讀和寫權限 (6),并為組 (4) 和其他用戶 (4) 設置讀權限。當然,如果您的 home 目錄中存在 .aliases 文件,那么必須將 $HOME 設置為允許列舉和讀。

表 1 給出了用戶所有者、組所有者和其他用戶的數值及其關聯的結果。只需在每個部分中加上相應的值,就可以找到合適的值進行設置。

表 1. 數值及其關聯的結果

某類用戶值結果用戶0400允許所有者讀。0200允許所有者寫。0100對于文件,允許所有者執行,對于目錄,允許所有者在該目錄中進行搜索。組0040允許組成員讀。0020允許組成員寫。0010對于文件,允許組成員執行,對于目錄,允許組成員在該目錄中進行搜索。其他用戶0004允許其他用戶讀。0002允許其他用戶寫。0001對于文件,允許其他用戶執行,對于目錄,允許其他用戶在該目錄中進行搜索。

例如,要為其他用戶設置讀和寫權限,可以將 0004 加上 0002 以產生 0006。對于用戶和組,可以進行類似的操作,可以將三個總數加在一起,以產生完全限定的數值模式。

權限是非常重要的

在 UNIX 系統中,需要不斷地設置和管理相關權限。通常,您需要對特定文件和目錄具有適當的權限,以便運行一些守護進程;只有設置了正確的權限,這些目錄(如 /tmp)才能正常工作;當然,要與其他用戶共享某些文件,或保護您的文件不讓其他用戶訪問,必須能夠設置、更改和讀取相應的權限。

本系列中的下一篇文章將繼續介紹文件,并研究在多臺計算機上對大量的文件進行管理的實用程序和技術。

標簽: Unix系統
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品一区二区国产| 久久中文字幕av一区二区不卡| 9色精品在线| 欧美日韩国产在线一区| 国产综合精品一区| 合欧美一区二区三区| 国产偷自视频区视频一区二区| 免费精品视频| 亚洲精品进入| 久久精品99国产精品| 欧美日韩91| 国产专区精品| 久久亚洲国产| 在线观看视频免费一区二区三区| 首页欧美精品中文字幕| 日韩av电影一区| 欧美成人精品一级| 国产资源在线观看入口av| 成人av动漫在线观看| 亚洲视频二区| 久久精品亚洲一区二区| 三级小说欧洲区亚洲区| 视频一区二区欧美| 国产精品嫩草影院在线看| 国模大尺度视频一区二区| 久久久精品网| 亚洲人成网77777色在线播放| 国产精品毛片视频| 久久精品国语| 亚洲精品成a人ⅴ香蕉片| 久久精品国产99国产精品| 久久久久亚洲| 日韩黄色av| 午夜av不卡| 亚洲免费毛片| www.九色在线| 一二三区精品| 国产不卡一区| 亚洲一二av| 国产99在线| 视频一区中文字幕精品 | 中文字幕在线高清| 日韩亚洲国产欧美| 国产精品激情| 野花国产精品入口| 国产精品手机在线播放| 国产尤物精品| 国产精品一页| 在线综合亚洲| 精品视频91| 在线精品福利| 日韩在线视频精品| 国产日韩亚洲| 夜夜精品视频| 麻豆精品蜜桃视频网站| 99riav1国产精品视频| 精品一区视频| 亚洲综合专区| 欧美日韩视频网站| 日本综合精品一区| 国产videos久久| 日韩国产在线观看一区| 国产精品99一区二区| 久久影院一区二区三区| 久久夜色精品| 日韩精品首页| 日本不卡一二三区黄网| 激情视频网站在线播放色| 国产精品亚洲一区二区三区在线观看| 精品一区av| 不卡一区2区| 精品伊人久久久| 欧美日韩国产欧| 精品国模一区二区三区| 久久午夜精品| 亚洲精品福利| 日韩**一区毛片| 亚洲五月综合| 欧美1区二区| 免费视频一区二区| 999国产精品| 免费在线亚洲欧美| 午夜天堂精品久久久久| 亚洲调教视频在线观看| 国产精品蜜月aⅴ在线| 六月婷婷一区| av一区在线| 日韩av在线中文字幕| 国产欧美在线| 综合激情视频| 国产一区成人| 国产真实久久| 日韩大片在线观看| 精品在线网站观看| 国产精品视频一区二区三区综合| 亚洲色图综合| 日韩专区在线视频| 精品欧美久久| 久久精品电影| 中文字幕高清在线播放| 美女久久久久久| 国产精品红桃| 国产亚洲一区| 日韩欧美2区| 日韩中文字幕区一区有砖一区 | 精品亚洲免a| 久久av日韩| 欧美精品不卡| 国产精品视频一区视频二区| 日韩av在线免费观看不卡| 亚洲精品国产精品粉嫩| 蜜桃一区二区三区在线| 蜜桃伊人久久| 久久午夜影视| 老牛国产精品一区的观看方式| 国产一区视频在线观看免费| 欧美成人基地| 99久久激情| 免费不卡中文字幕在线| 欧美亚洲国产一区| 午夜日韩av| 国产精品腿扒开做爽爽爽挤奶网站| 国产综合欧美| 九一精品国产| 91久久中文| 伊人久久大香伊蕉在人线观看热v| 中文视频一区| 日本午夜精品久久久| 91精品啪在线观看国产爱臀| 欧美中文高清| 麻豆一区二区在线| 欧美好骚综合网| 91精品韩国| 欧美日韩高清| 亚洲三级在线| 18国产精品| 福利在线一区| 99久久精品网| 一区在线视频观看| 欧美网站在线| 中文字幕av一区二区三区四区| 日本不卡一区二区| 国产乱子精品一区二区在线观看| 狂野欧美性猛交xxxx| 超碰在线99| 婷婷亚洲综合| 中文字幕日韩高清在线| 国产精品一在线观看| av最新在线| 亚洲一区国产| 欧美日韩1区| 国产精品精品国产一区二区| 欧美成人久久| 日日摸夜夜添夜夜添国产精品| 国产精品美女久久久久久不卡| 亚洲欧洲高清| 水蜜桃久久夜色精品一区的特点 | 亚洲日本免费电影| 欧美激情亚洲| 亚洲高清二区| 免费不卡在线观看| 麻豆精品视频在线| 欧美日韩国产传媒| 国产欧美日韩影院| 日韩欧美精品| 日韩欧美美女在线观看| 福利一区视频| 久久要要av| 日本h片久久| 久久91导航| 日韩国产欧美在线播放| 丝袜美腿一区| 久久狠狠久久| 欧美国产91| 国产精品mm| 日韩视频不卡| 欧美国产视频| 国产一区白浆| 岛国精品一区| 亚洲免费福利一区| 女生影院久久| 国产午夜精品一区在线观看| 久久激情一区| 国产丝袜一区| 在线一区免费观看| 成人在线视频免费| 天堂av一区| 成人羞羞视频在线看网址| 亚洲免费观看高清完整版在线观| 国产欧洲在线| 日韩成人在线看| 九色精品91| 国产66精品| 日韩av电影一区| 午夜国产欧美理论在线播放| 久久在线91| 日本久久一区| 国产韩日影视精品| 国产成人1区| 国产日韩一区二区三区在线 |