ファイルのアクセスと共有方法の紹介

2583 ワード

前の記事では、ファイルに3つの異なる権限セットがあることを知っています.ファイルを所有するユーザーには、ファイルを所有するグループのメンバーに集合があり、最終的な集合は他のすべての人に適用されます.これらの権限は、長いリスト(ls-l)にシンボルモードを使用して画面に表示されます.
各セットには、r、w、およびxエントリがあり、特定のユーザ(所有者、グループメンバー、またはその他)がファイルを読み取り、書き込み、または実行できるかどうかを示します.しかし、これらの権限を表すもう一つの方法は、8進数モードです.
10進数番号システムに慣れています.10の異なる値(0から9)があります.一方、8進数システムには8つの異なる値(0〜7)がある.権限を表す場合、8進数は速記としてr、w、xフィールドの値を表示します.各フィールドは、次の値として扱われます.
r = 4
w = 2
x = 1

単一の8進数値を使用して任意の組合せを表現できます.たとえば、読み取りおよび書き込み権限(実行権限なし)の値は6です.読み取りと実行権限の値は5のみです.ファイルのrwxr-xr-xシンボル権限の8進数値は755です.
シンボル値と同様に、8進数値を使用してchmodコマンドを使用してファイル権限を設定できます.次の2つのコマンドは、ファイルに同じ権限を設定します.
chmod u=rw,g=r,o=r myfile1
chmod 644 myfile1

特殊権限ビット
ファイルにはいくつかの特殊な権限ビットがあります.これらはsetuid(またはsuid)、setgid(またはsgid)、およびヒステリシスビットsticky bit(またはビットdelete inhibitの削除を阻止する)と呼ばれる.これを別の8進数値のセットと見なします.
setuid = 4
setgid = 2
sticky = 1
          ,   setuid       。           ,    (          )                  。setuid           /bin/passwd     ,            。                         (LCTT   :     /etc/passwd   /etc/shadow)。         ,  root     ,    setuid  ,             。

setgidビットは、実行可能なファイルに対して同様に動作します.このファイルは、そのグループを持つ権限を使用して実行されます.しかし、setgidはディレクトリに追加の用途があります.setgid権限を持つディレクトリにファイルを作成すると、そのファイルのグループ所有者がディレクトリのグループ所有者に設定されます.
最後に、ファイルのヒステリシスビットは意味がなく無視されますが、ディレクトリに役立ちます.ディレクトリに設定されたスティッキービットは、他のユーザーが所有しているディレクトリのファイルを削除することを阻止します.
8進数モードでchmodを使用してこれらのビットを設定する方法は、実行可能ファイルにsetuidを追加できる4755などの値接頭辞を追加することです.シンボルモードでは、uおよびgを用いて、u+s、g+sなどのsetuidおよびsetgidを設定または削除することもできる.ヒステリシスビットはo+t設定を使用します.(o+sやu+tのような他の組み合わせは、意味がなく、無視されます.)
http://www.51cto.com/it/news/2019/1014/15367.html
https://article.pchome.net/content-2101735.html
http://www.pcpop.com/article/6067769.shtml
共有と特殊権限
前の記事でファイルを共有する必要がある財務チームの例を思い出します.特殊な権限ビットは、問題をより効果的に解決するのに役立つと考えられます.元のソリューションは、グループ全体に書き込むことができるディレクトリを作成しただけです.
drwxrwx---. 2 root finance 4096 Jul 6 15:35 finance
         ,finance        dwayne   jill          。               。           ,             !

もう1つの問題は、dwayneとjillのデフォルトグループによって所有されるため、このディレクトリ内のファイルが実際に共有できない可能性があります.financeではなく、ユーザープライベートグループもdwayneとjillと命名される可能性があります.
この問題を解決するより良い方法は、フォルダにsetgidとヒステリシスビットを設定することです.これは、フォルダに作成されたファイルをfinanceグループに自動的に所有させ、dwayneとjillが互いのファイルを削除することを防止する2つのことです.次のいずれかのコマンドを実行できます.
sudo chmod 3770 finance
sudo chmod u+rwx,g+rwxs,o+t finance
                     。       T     t,   finance               。
drwxrws--T. 2 root finance 4096 Jul 6 15:35 finance