![]() |
|
|
Googleのunix.com
|
|||||||
| ヒントとチュートリアル 我々のユーザからの役立つ記事。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| "アクセス許可& " "ファイルのアクセス許可を作成し、 "解凍するには | Mike1234 | HP - UX | 3 | 2008年3月2日 05:34午後 |
| Unixのアクセス許可 | mobershaw | Sun Solaris | 0 | 2006年1月24日 06:06午後 |
| UNIXのファイルアクセス権 | jerardfjay | UNIXの詳細&エキスパートのためのユーザー | 3 | 2005年3月15日 12:25午後 |
| Unixのアクセス許可 | moukoko | UNIXのダミー質問と回答のため | 2 | 2004年3月11日 08:12午前 |
|
|
LinkBack | スレッドツール | このスレッドを検索 |
評価:
|
表示モード |
|
|
|
|||||
|
Unixのファイルアクセス権
はじめに 私はいくつかのUnixファイルのアクセス権に関する誤った情報を見ている。私はストレートの記録を樹立することを試みる。 lsからいくつかの出力がこの例を見てください: コード:
$ ls -ld /usr/bin /usr/bin/cat drwxrwxr-x 3 root bin 8704 Sep 23 2004 /usr/bin -r-xr-xr-x 1 bin bin 9388 Jul 16 1997 /usr/bin/cat $ 最初の行で、 "ルート"は、ディレクトリは、ユーザの" root "と呼ばれるが所有しているという。とは、 "ビン"は、ディレクトリのグループです。ユーザとグループを理解する必要があるし、それがあなたのものと仮定しています。私の目標- x "と"は、 "説明することですdrwxrwxr - rを- xr - xr - x "のもの。そのフィールドは、ファイルタイプ、アクセス許可の組み合わせです。総称し、この情報によっては呼ばれています モードファイル。そして時にはそれは呼ばれています アクセス許可。開始するのに適した場所の情報が実際にどのようにディスク上に格納されていることをザッと見ています。が格納されている方法は、年間に行われた意思決定の数に影響を与えます。 どのように"ファイルモード"に格納されます。 ディスクでは、ファイルについての情報と呼ばれる構造体に格納された"iノード"と言って自分の各ファイル iノード。一の1つのデータ項目 iノード "モード"と呼ばれ、このようになります: コード:
|------file mode------|
| |
|
| |----full-----|
|
|-type| | |--basic--|
| | | | |
oo0 000 000 000 000 000
... ... ... ... ... ...
| | | | |
| | | | |---- rwx for other
| | | |
| | | |-------- rwx for group
| | |
| | |------------ rwx for user
| |
| |---------------- set uid, set gid, sticky bit
|
|---------------------- file type: regular (-)
directory (d)
character special (c)
block special (b)
fifo (p)
symbolic link (l)
socket (s)
私は、 "モード"は、実際とは、アクセス許可とは、ファイルの種類の容量を節約するために追いやられたと考えています。しかし、プログラムはlsの著者の1つの項目としては、モードを治療しています。そのため、ファイルの種類は、 " lsで許可文字列の最初の文字- L "を出力します。ファイルの種類は、通常1つ以上の詳細は、 7種類となります。 Unixの一部のバージョンにさらにいくつか追加されます。レイアウトからのデータを通知する唯一の他の点は、より多くのビットを追加するには許可しないということだ。 これらのアクセス許可を代表する8進数 その ls プログラムは、ディスプレイと言うかもしれないが、ファイルのアクセス権" rwxrwxrwx " 。それも非常には、ファイルのアクセス権を表現するための8進数を使用するように一般的です。上記を参照してくださいと、どのように格納されている。あなたが誰かを聞くことがありますがある777のアクセス許可があるという。これは、 " rwxrwxrwx "と同じとは発音しやすくなります。を知っているので、どのように変換する必要があります。 3つのバイナリビットを1桁または8進数の桁に対応する: コード:
421 rwx そのため、 "読むビット4 、ビット2価値があるとビットが1の書き込みを実行する価値がある価値がある。これで、これらを一桁の8進数のため、 " - rwxrwxrwx " 777されるのを追加してください。そして、 " - rwxr - xの- - " 750です。場合はどのように" Rxの"より5 〜 、多分、このテーブルを参照してくださいに役立つことはできません: コード:
--- = 0 --x = 1 -w- = 2 -wx = 3 r-- = 4 r-x = 5 rw- = 6 rwx = 7 我々のすべてのアクセス権ビットの4の8進数の数字を表現する必要があります。最初の3つのビットは特殊であり、頻繁にゼロにされています。また、ほとんどの場合は、末尾の最初の9ビットについて学ぶ。一部の人々がそれらの最初の3ビットとストップを学ぶことはない。しかし、 12ビットの許可だけでなく、九ている。それは、今では末尾の9ビットを見てみましょうという。 基本許可ビット 私たちは3トリプル:ある1つのユーザにとっては、トリプルトリプルは、グループの1つで、 1人の他のトリプル。場合によっては、 "ユーザー"は、所有者と呼ばれています。そして時には"その他"の"世界"と呼ばれています。これは、 chmodコマンドを使用して文字学部とo " " " "他のユーザーがこれらのトリプルを参照するために使用されます。 ビットは、設定を適用するか? Unixの場合何ができるかを決定するときに、すべての9ビットを使用しません。 Unixの選択はあなたに適用される最初のトリプル。これを考慮: コード:
----rwxrwx 1 joe users 29 Mar 22 19:39 somefile Joeさんはこのファイルを所有しているにもかかわらず、彼はそれにアクセスすることはできません。 (ジョーのファイルを所有して以来、彼は自分自身へのアクセスを与える可能性がある。の詳細は後で。 )また、特別なルートである。ルートのすべてのディレクトリとすべてのファイルへのrwx RWに付与されます。もしあれば、 3 ×ビットの設定されているファイルで、ルート権限を実行している。この特別な許可を無効になっている多くの場合、ネットワーク上のファイルシステムをマウントします。 何とRWのかXの実際のファイルの意味ですか? ファイルでは、 " "と読む" "書く非常に直感的にされています。のx "の"は、カーネルは、実行ファイルを実行しようとするとことを意味します。仕事には、ファイルとコンパイラから実行可能(出力) 、またはシェルスクリプトをする必要がある" # ! "最初の行。ディレクトリでは、物事はもう少し複雑です。のディレクトリでは、 " "書き込み権限を設定するには、ディレクトリに新しいファイルを作成したり、古いファイルを削除することを意味します。それは驚きの人が読むことができない場合は、ファイルを削除することができます。 Unixのrmコマンドを実行すると警告を発することが、 - fを抑えることができるとの警告をテストします。と、警告やない場合には、書き込み可能なディレクトリからファイルを削除することがありますが読めなくしたい。 rmdirすべてをチェックすると面倒ではありません。 何とRWのかXの実際のディレクトリの意味ですか? ディレクトリのファイルも、です" "アクセス許可を読む場合は読むことができることを意味します。しかし、あなたは本当にXの許可もなく、非常に大きな貢献をすることはできません。ディレクトリを使用すると、通常の両方を読んで、アクセス許可、またはどちらも実行している。のディレクトリでは、 xが正式に"検索許可"と呼ばれています。あなたがXにはパス名でディレクトリを使用する必要があります。の場合は"猫ては/ etc / passwd " 、 X上で/と/等が必要になりますまた、 xはディレクトリにCDにする必要があります。のディレクトリではないと仮定すると( X )の許可の検索を読んだことがある。あなたはどうすることができますか?あまりないですね。あなた" "ファイル名を表示するにはlsを使用することができます。さらに"はls - l "は動作しません。検索の読み取りアクセスを許可無しでは非常に有用ではありません。今でもそのディレクトリの書き込み権限を設定するだけでは完全に無駄ですが...よりはましだ。私は、この状態を明示的に、私は繰り返し:書き込みがあるディレクトリの助成金ではないが、 ( X )を許可したall.Suppose検索を実行する許可を、他のドキュメントを見ていないのディレクトリには読み取りアクセス許可。場合は、ファイルの名前を知って発生する場合は、ディレクトリ内のファイルを開くことができます。 CDの場合は、ディレクトリにすることができます。とはされています。さらに、新しいファイルを作成することはできません。書き込み許可を追加するファイルを作成できるようになります。その名を知っている場合に発生して頂くとファイルを削除することができます。 シンボリックリンクを特別な のシンボリックリンクの許可の設定は少し特殊なのです。彼らは完全に無視されています。 Unixの多くのバージョンを変更する方法があります。 にはsetuidビットとSetgid これを見てください: コード:
$ ls -l /etc/passwd /etc/shadow /usr/bin/passwd -r--r--r-- 1 root sys 14006 Jan 14 11:17 /etc/passwd -r-------- 1 root sys 8281 Jan 14 11:18 /etc/shadow -r-sr-sr-x 3 root sys 96244 Sep 5 2001 /usr/bin/passwd passwdファイルは、ルートだけで(特別なルート書き込みを記憶しています。それはされているファイルのアクセス許可を設定する書き込みを書くことができます) 。パスワードがどこでも、普通のユーザーが読み取ることはできませんされている影のファイルが格納されている。しかしジョーはパスワードの変更を望んでいる。彼は、実行して、 / usr / binに/ passwdを行うことができます。これらのアクセス許可通知のRS 。は、 passwdのプログラムは、スードとsgidビットを設定している。これは、 X社のしたのに変わります。 8進数では、 6555となる。は、 passwdのプログラムをrootが所有している。ジョーは実行時に、 "ジョー"として実行されません。代わりに、ルートですが所有者として実行する。したがって、 passwdのプログラムの彼のためにジョーのパスワードを変更することができます。を除いては、グループでプログラムを実行するには、 passwdの原因となるsgidビット、同じように機能の代わりにジョーのグループシステム。のスードとsgidはない、独自の地位を得る ls。ときはスードビットは、設定されている ls 所有者の実行許可を斧としてではなく、表示されます。どのような場合は、スードビットが設定されている所有者の実行ビットがオフになっていますか? ls その場合には、資本秒が表示されます。を除いては、グループのアクセス許可を実行するとの相互作用はsgidビットが同じように、表示されます。 ( UIDをコンセプトに設定された 発明 デニスリッチー氏はUnixで開発されました。 ) 物事には少しながら、ジョーはスード- passwdのプログラムを実行されているルートには、 "ジョー"は、本物のUIDと"ルート"を展開するには、効果的なのUIDです。 passwdのプログラムの両方を取得することができますが、これらの番号の場合は、を望んでいる。このプログラムをどのようにpasswdのジョーはジョーのパスワードを変更できるように知っているされています。 stickyビット その のPosix 標準の場合は、 stickyビットがディレクトリに設定されているが、ただ、ディレクトリの書き込み権限とは、もはやファイルが削除できるようにするのに十分なされています。を追加してファイルまたはディレクトリの所有しなければなりません。ルートに関係なく、任意のディレクトリからのアクセス許可を削除できるようにし続けています。以前はこのビットを別の目的。いくつかのOS上ではまだありません。私は以下の付録で詳しく説明します。 stickyビットは、 " "でビットを実行する他に影響を与える ls 表示する。 sとsを除いては、というよりも例えばトンとTを使用します: コード:
drwxrwxrwt 5 root root 1024 Feb 11 20:43 /tmp 上記は、 / tmpディレクトリには、誰も新しいファイルを作成することができます。しかし、 stickyビットがあるため、 1人のユーザーが別のユーザーのファイルを削除することはできません。 とファイルアクセス権を制限する umaskの ファイルは、初期設定時に許可を指定することができますを作成するプログラムが作成されます。あなたのumaskを上書きすることができます。禁止は、 umaskのビットのセットです。それを表示するには、 umaskの変更を可能にするumaskのコマンドです。たとえば、 " umaskの022 "のグループを書いて、新しく作成したファイルに書き込み、他のことを禁止します。または" umaskを027 "グループを書いて、それを読む、書く、または他の実行を禁止禁止しています。それを望んでいることを行うプログラムを作成できるようにプログラムを" umaskの0 "を行うことができます。しかし、これ以上行くことはできません。ビットを有効にする場合には、プログラムを強制することはできません。のumaskの設定(別名FIFOが) 、および特別なファイルのファイル、ディレクトリ、名前付きパイプに影響を与えます。にシンボリックリンクには影響しない可能性があります。また、プロセス間通信のソメシ形成に影響を与えますが、この資料の範囲外です。また、名前付きソケットのumaskを免除されてかどうかと考えています。この免除され 必要な 〜によって のPosix。 とファイルアクセス権を変更する chmod ファイルやルートの所有者だけでは、ファイルのアクセス権を変更することができます。この操作は 〜でない すべてのumaskを設定することによって影響を受ける。場合は、シンボリックリンクにアクセス許可を変更すると、そのリンクをされる場合は、ターゲットファイルが変更されます。これはrootのみが消費する電力は、ファイルのstickyビットを設定している可能性があります。一方、他のユーザーにすべてのアクセスを無効一例として、 "所有者は、書き込みを読むと、ファイルを実行させる、 700 somefile "ウィルchmod 。 シンボリックモードを使用すると chmod および umaskの のPosix は、 chmodコマンドのための新しい構文を紹介した。このアイデアは、新しい構文の使用に代わっていたのは、 chmodコマンドで定数の8進数。 8進数の定数はまだ認められていると私はここに滞在すると思う。しかし、新しい象徴的な構文は、他の何かを知らなくても、いくつかのビットを変更することができます。例えば、私は他の人にはアクセスできないファイルを作りたいが、何がユーザーまたはグループのアクセスを変更するにしないと言ってみましょう。そうする必要があるでしょう: はls - lファイル ファイルを見て、現在の設定を把握。 750ファイルchmod 私は、最初の2桁電流7アールと5の前に私はchmodコマンドを行うことを決定しなければならなかった。新しい構文では、私だけで行うことができます: chmodまたはファイル\u003d 最後の3ビットをオフにする。別の例として、 " ū chmod + Xファイル"のファイルを実行するユーザーできるようになります。その一方で、これらの2つのコマンドは等価です: 750ファイルchmod chmod ū \u003d rwx 、グラム\u003d Rxの、 ö \u003dファイル と私は最初の構文を好む。 シンボリックモードの仕様は、カンマで区切ったリストにすることができます。各仕様書の3つのコンポーネント: <who> <operation> <bitlist>している コード:
The who part can be: u (user) g (group) o (other) a (all) (whatever is allowed by umask (subset of all)) The operator can be = or - or + = (set bits to bitlist) - (subtract bitlist from current bit + (add bitllist to current bits) The bitlist can be one of the following letters: r (read permission) w (write permission) x (execute permision) X (conditional execute permision) u (current permissions for user) g (current permissions for group) o (current permissions for others) s (set uid or set gid) t (sticky bit) は、 Xは、 Xの場合を除き、ファイルをnondirectoryとは、現在のXビットが設定されているのと同じです。 ( UIDを設定したり、 GIDの設定)は、ユーザーまたはグループのアクセス許可を指定することができます。ユーザーのアクセス権は、 Tのみに指定することができます。助けを借りていくつかの例。上記は/ usr / binに/ passwdを見ていた6555 ( - rを-放射光にはls - Xでの放射光) 。ここで得ることができるいくつかの方法があります: chmod 6555 / usr / binに/ passwdの chmod ū \u003d rxs 、グラム\u003d rxs 、 ö \u003d Rxの/ usr / binに/ passwdの chmod学部\u003d rxs 、 ö \u003d Rxの/ usr / binに/ passwdの chmod 1 \u003d Rxの、 + / usr / binに/ passwdの学部 また、これを行うには他の多くの方法があります。 chmodについては、ほとんどの部分では、免疫のumaskには、 umaskを設定することによって変更されません望んで何ビット。しかし、 1つの条件の下では、 chmodコマンドに設定してみたいと思うのumaskのビットを決定するために現在の設定を検討する。これは、 "人"のフィールドを空白のままに発生する。このように: chmod \u003dワットsomefile 1 \u003d w "の間の違い"と" \u003d w "の微妙されています。ここに役立つことがあります一例です。多くのプログラム( - RWの- RWの- RWの)ファイルを作成するためのアクセス許可を666にしてください。しかし、これは、 umaskのでは変更されます。 666の場合にファイルを設定することが、現在のumaskによって変更された場合を想定します。我々は、すべてのビットをオフにして読むことが許可されていますが、現在のumaskのビットの書き込みを有効に: chmod一\u003d 、 \u003d RWのsomefile と話すのumaskの場合は、 umaskのコマンドで引数を象徴的にも使うことができます。しかしばがら、 のPosix、彼らの知恵は、このイベントには、論理を反転することを決めた。ビットを指定する場合は、 8進数の引数では、 umaskを禁止される場合に使用します。しかし、もしあなたが象徴umaskの引数で使用すると、許可するようにビットを指定します。そこで、これらのです相当: umaskを022 umaskのū \u003d rwx 、ゴー\u003d Rxの 要約 あなたは主に12ビットのアクセス許可を理解するのに十分な情報がこの時点で。いくつかの非常に特殊なケースは、私を無視してきた以上練りされています。私はこれらのアドレスが別の記事を以下に。この最初の投稿の情報はかなり普遍的だ。 1つの のPosix 対応OSのこのようなものをサポートする必要があります。は、 Unixのは、過去10年にリリースのほぼすべてのバージョンを扱います。次の記事は、普遍的な機能について議論することはできません。 |
|
|||||
|
stickyビット
私は、以前はディレクトリには、 stickyビットが設定されている、ファイルのみを削除することができますは、ファイルまたはディレクトリの所有者の所有者が言及している。この動作が指定されている のPosix ではなく、普遍的だ。しかしは、 stickyビットのは、本来の目的だった。そうなんですかは、 のPosix 実際の呼び出しの定義はlsコマンドでは、 stickyビット"は、制限の削除フラグ" 。このビットのためのヘッダファイルは、 Cの定数S_ISVTXされています。その svtx スタンドの テキストを保存 これはビットが本来の目的を明らかにします。
オリジナルのアイディアは、 stickyビットが設定されていたが、プロセスのテキストセグメントがスワップ領域に滞在していた。これは、メモリには、 1つのディスクを読み取ることができるように読んでください。当初は、 Unixの512のブロックサイズとは、ファイルシステムを使ってブロックを散布する傾向にあります。そのため、テキストセグメントを集めるのに時間がかかるだろうとメモリに読み込みます。最初ではないのページング処理は、交換された。完全にメモリにロードする必要があるようなプログラムを実行します。さて、ページをメモリにプログラムを故障。必要とされているページがロードされます。そのため、 stickyビットの元の使用して死んでいるか?いや、違う。これはOSに依存します。 のHP - UXのは、この使用法はまだ生きているのに記載されています HP - UXのchmod ( 2 )のmanページ。どのような使用ですか? 〜から は、 HP - UXのカーネルのチューニングとパフォーマンスガイド 経由 HP - UXのよくある質問: "あるとき、リモートアプリケーションは、アプリケーションのバイナリの" stickyビット"は、 chmod + tコマンドを使用して設定してください。このページには、ローカルディスクには、テキストは、システムを説明しています。そうでなければ" "は、ネットワーク経由で取得されます。のもちろん、実際のページングが起こっている場合にのみ適用されます。さらに最近では、 1に設定したときは、カーネルパラメータ、 page_text_to_local 、 、ページのすべてのカーネルを伝える予定です NFSの ローカルスワップ空間に実行可能なテキストのページ。 " Solarisの機能では、 stickyビットの元を使用していないが、している Solarisのchmod ( 2 )のmanページ: "もし、通常のファイルを実行されていませんS_ISVTX設定されていると、ファイルをスワップファイルと見なされます。この場合には、システムのページキャッシュは、ファイルのデータを保持するために使用することはできません。 S_ISVTXビットの場合、他に設定されているファイルが、結果は不特定されています。 " ので)を、特定のOS用のmanページは、 chmod ( 2チェックし、もしあれば、 stickyビットをしているファイルにどんな影響を与えるかを参照する必要があります。また、その存在が認識される効果を、 OSのルートには、 stickyビットの設定を制限することがあります。例のHPは、 - UXのは、厄介なのは多くのビットを設定し、スワップ空間のシステムを実行し、悪意のあるユーザー。 HP - UXのは実際には、 stickyビットを設定していくつかのシンボリックリンクしている。私はこの下のアドレスをします。 編集Perderaboで最終; 2005年6月4日に 04:09午後.. |
|
|||||
|
強制モードのファイルロック/ Manditoryファイルロック
私たちは、セット暈倒病ビットにはまだ終わっていない... Unixのファイルロックの概念があります。ファイルロックは、このスレッドの範囲を超えています。しかし、そのファイルのロックを知る必要がある2つのフレーバーでいます:助言およびmanditory 。フレーバーは、アクセス許可の設定に応じて特定のファイルに適用されます。ビットがオフの場合は、グループですが、 setgidビットは実行すると、任意のファイルをそのファイルにロックをmanditoryされています。 無駄なビットの組み合わせですか? すべての内容は、私は見ているのは、 setgid /グループを実行しているがそれ以外の無駄な組み合わせです。さらにリチャードスティーブンス( Unixの環境での高度なプログラミング) "グループIDビットは、グループ実行ビットは理にかなっているという設定がオフになって以来、 SVR3の設計を指定するためにこの方法を選んだのは、ファイルのロックとロックしないmaditory諮問される。 " この場合も考慮:フレッドは、人的資源部が実行されます。フレッドと彼のグループ従業員の休暇を頻繁に使用されるルックアップする必要があります。フレッドのプログラムは従業員が自分自身の休暇を使用するルックアップすることができますを書くことが決定する。セキュリティのため、このプログラムをロギングフレッドは多くありません。フレッドは、このプログラムを使用するように彼のグループを望んでいません決める。彼らは他のツールは自分のログを混乱されませんしている。だからフレッドは: フレッドはchown :時間vdays chmod 2701 vdays 今では時間のメンバーによってvdaysプログラム(フレッドを除く)を実行することはできません。しかし、誰もが、他のユーザーによって実行することができます。そしてそれを実行するときには時間のGIDを前提とします。私は、このように書かれているテストプログラムを設定し、両方のSolarisおよびHP - UX上で実行している。それに動作します。 lsの出力への影響 このビットの組み合わせが便利だと思われるいくつかの限られた場合には、良くも悪くも、 2つの効果があるだろう。プログラムは仕事のvdaysが、ロックの場合は、ファイルで実行しようとすると、 manditoryされます。実際問題として、これは、デバッガのようなプログラムへの影響のみを時折だろう。しかし、このビットの組み合わせの治療ls異なる場合があります。私はこの両方を見ている... コード:
chown fred:hr vdays chmod 2701 vdays -rwx--S--x 1 fred hr 9938 Jul 16 2004 vdays -rwx--l--x 1 fred hr 9938 Jul 16 2004 vdays |
|
|||||
|
近寄ってシンボリックリンクを許可ビットを見て
シンボリックリンクは、年間で進化しています。で、最初のシンボリックリンクファイルを開くときだけだった。だから: タッチデータファイル ln -データファイルコソコソ秒 700コソコソchmod ファイルを"データファイル"と呼ばれる保護していない。これはセキュリティの問題が発生しました。今日は、 "データファイルのアクセス権を変更する700コソコソ" chmod 。また、データファイルを残すだけでコソコソと変更されます"フレッドはchownデータファイル" 。 シンボリックリンクの所有者が必要 は、シンボリックリンクの所有者を変更する方法です。 " - hでコソコソはchownです" 。このコソコソ変更し、データファイルだけを残す。理由は、元のシンボリックリンクの所有者が必要な機能と呼ばれる"枠"です。割当は、システム管理は、ユーザが使用するディスク領域を制限することができます。シンボリックリンクので、適切なユーザーに課金する必要がありますディスクリソースの少量を消費します。現在、 2つ目の理由:ディレクトリ粘着している。私たちは、粘り気のディレクトリからのシンボリックリンクを削除することができますを知る必要がある。 の所有者に加えて、 のPosix は、シンボリックリンクを必要とするサイズです。は、すべてあなたが依存することができます。シンボリックリンクの許可も、任意のビットがない場合があります。 ビットの許可が必要です のPosix 無視することに SolarisおよびLinuxでは、シンボリックリンクで新しく作成され、このumaskを777との影響を受けません。私は、ビットを無効にする方法が見つからないことができませんでした。 HP - UXへ、シンボリックリンクも777で作成されますが、この影響を与えるのumaskありません。だから: umaskを777 ln -データファイルコソコソ秒 すべてのビットとのシンボリックリンクを作成しますがオフになります。これは私が今何ができるかのデータファイルには全く影響を受けた。ディレクトリへのシンボリックリンク0のモード( )にも罰金働いた。 BSDのようにシンボリックリンクを許可ビットを変更して 様々なBSDのディストリビューションのすべて"は、 " chmodが必要な"時間のようなものはchown - h "をしている。私はFreeBSD上でシンボリックリンクをテストし、彼らにも許可ビットを無視するが、このコマンドを使用する。 " chmod - h "をコマンドをlchmod ( )システムコールを使用して実装されています。 ( BSDのも)これまでのところ、それは良い。呼び出すにlutimes ( )システムコールと"タッチ- h "をコマンドしています。ここでは何も違反している のPosix 標準規格です。 NetBSDの違反が5月 のPosix 標準 シンボリックリンクは、 NetBSDによると manページ: " readlink ( 2 )システムコールを必要とするアクセス許可をシンボリックリンクを読む。 " readlink ( ) lsでのシンボリックリンクのターゲットを表示するために使用さ電話するシステムです。ので、このように: コード:
lrwxrwxrwx 1 fred users 8 May 24 11:15 slink -> datafile あの データファイル readlinkで得られた( ) 。私は確認できませんでしたので、私はこのテストのためには、 NetBSDのシステムへのアクセスを必要はありません。 HP - UXへの移行リンク HPのHP - UXの場合書き直しはSystem Vリリース4に適合するように、ファイルが変更されましたがたくさんの場所。一例として、私のお気に入りのシェルから移動/ binに/ ksh / usr / binに/ ksh 。一部の人はまだ使用して/ binに/ kshとする( )は、シンボリックリンクのために:動作します コード:
$ ls -lds /bin 0 lr-xr-xr-t 1 root sys 8 Oct 1 2003 /bin -> /usr/bin HPはstickyビットをオンにする方法は何ですか?のlchmod ( )システムコールはBSDから借りている。この機能のHP - UXへの密入国されています。 HPの考えはわからないため、ユーザーに関するlchmod粘り気のシンボリックリンクが作成されなかったすべてのユーザーが確認することができます。を使用してlchmod ( )は、 stickyビットの任意の方法でのシンボリックリンクのプロパティを変更していません電源を入れます。唯一の違いは、 HPのtlのツールは、シンボリックリンクで動作するのをいとわないということです。 しかし、ここでは、 HP - UXのよくある質問と言うにしている: "これは、リンクに格納されているファイル名への移行のリンクには、若干速く、 iノード 自体ではなく、リンクを格納するためには、アロケーションユニットを使用しています。 "中文正確には、ひどく誤解を招く虚偽はありません。 HP - UXのは単に高速シンボリックリンクをサポートしています。参照する場合は、ファイル名が短いほど、それを直接に格納されます。 iノード。の移行リンクが不足しているだけに起こる。私はいくつかの人々 lchmodを使用している( )はシンボリックリンクのstickyビット上の努力のことを高速化するには、電源を入れます。そのようには動作しません。 移行リンクが消滅し始めている。から移行していない人は、 / binに/ / usr / binに/ ksh 1日には失礼な驚きを得ることができるksh 。以下に、 HPのWebサイトへのリンクされています。 維持移行リンク 移行リンクコマンド(非推奨) 移行リンク(非推奨) 編集Perderaboで最終; 2005年6月4日に 04:43午後.. |
|
|||||
|
ファイルのiノードを変更する
書き込み権限を設定する方法について説明している能力を、ファイル内のデータを変更することを制御します。しかし、許可ビットを変更する方法については、所有者、グループ、さらにはタイムスタンプか?誰も何も変更することができますは、 CDとは NFSの サーバーは、覆すことができる NFSの クライアント。以下の説明では、私とは、ローカルファイルシステムの読み取り書き込みを前提とは、ユーザーは" root " 、問題のファイルシステム用の適切な特別な管理者権限と呼ばれる。
chmod -ファイルのアクセス権を変更する すべてのファイルのアクセス権を変更するには、ファイルの所有者または場合は、 rootユーザにしなければいけません。 rootユーザは、任意の許可ビットを変更することができます。これは、所有者に該当することはできません。は、 1ビットは、所有者にスイッチすることができない場合がありますSGIDビットです。 ビットをオンにするには、所有者のグループは、そのファイルの場所ではなく、この制限されている場合ですインチのメンバである必要がありますは、ユーザーは単に自分のファイルをグループで管理者以外にアクセスできるようにするためのプログラムを作成することもSGID彼は属しています。つまり、上記のように我々としては、 SGIDビットのファイルを頻繁に使用されてもロックされているが過負荷に注意してください。 Unixのバージョンやファイルの所有者は別のグループでは、ファイルのSGIDビットを変更することができない場合がありますビットがセットされていない場合は実行してください。 単純に1ビットをスードおよびSGIDビットを有効に実行される恐れがありますルート(も)をクリアしている。これは、ユーザーがスードおよびSGIDビットを設定することを確保するためのセキュリティ機能です。後ろには、ユーザーが明示的に切り替えることができます。または、単に、ユーザーが明示的に一度にすべてのビットをセットすることができます。また、注意しては、ファイルへの書き込みが、 Unixの一部のバージョン、およびSGIDビットをクリアするスード。下の所有者またはグループがファイルの変更の影響を参照してください。 はchown -ファイルの所有者を変更する もともとは、 UNIXのファイルの所有者がファイルの距離を与えることができた。ファイルの所有者が第三者への所有者を変更する可能性がある。そこ以外の方法は、 rootユーザはこの操作を元に戻すことだった。 Unixの場合は、バークレー/ AT & Tのバージョンについては、 USG ( Unixのサポートグループは、 AT & T社の一部)は、 Unixのバージョンに分割し、この動作を継承する傾向があった。一方のBSD (バークレーソフトウェアの配布は、カリフォルニア大学の一部を、カリフォルニア大学バークレー校)以外からの削除はchown - rootユーザー。 BSDのファイルシステムを持っていることは、どれだけのディスク容量の上限は、ユーザーがディスククォータを実装していた。いたずら好きのユーザーは過去には、クォータスネーク大容量のファイルを与える可能性がある。 root以外の場合、ファイルはchownできる今日では、言うのは簡単ではありません。 Unixの多くのバージョンを許可 両方 行動。 HP - UXのをしている setprivgroup施設 のかどうかは、特定のグループのメンバーはchownを呼び出すことができますを制御できます。 Solarisは、世界的なパラメータがあります rstchown 地球はchownを許可するように設定することができます。このパラメータを変更するグループの制限の下( SGID上記制限に影響を与えること)を記述を無効に設定する。最近のLinuxバージョンには、 CAP_CHOWN この機能を制御する能力。あなたのUnixのほかのバージョンについては、マニュアルを参照してする必要があります。そして、あなたのシステムの管理者にどのように構成されている特定のシステムを参照してくださいする必要があります。 ほとんどのOSのはchownをrootのみに制限されると、デフォルトの。また、セキュリティについての考慮事項についての合意は、この状態が続く必要があります。もしroot以外のユーザは、ファイルの所有者を変更する場合、任意のビットを実行すると、スードおよびSGIDビットをクリアする必要がありますしています。このルートではないが起こる可能性があります。 はchown 、 chgrp -ファイルのグループを変更する にはchownコマンドをすることができます(任意の近代的で、 のPosix Unixの対応バージョン)も、グループを変更しよう。とはchgrpコマンドです。これら両方のグループを変更する( )システムコールを呼び出すのはchown 。という事実は、共通のシステムコールを関与している理由をいくつかのOSバージョンの共同実施やnon - rootユーザーに制限の両方の所有者とグループの変更を説明するための緩和に役立ちます。 root以外のユーザーが、彼は彼のメンバであるグループに所有しているファイルのグループを変更することができます。 のPosix メンバではありませんが、彼はグループへのファイルグループの変更をroot以外のユーザを禁止します。場合、ファイルの所有者を変更するとの制限が解除されていますしかし、一部のOSのこの制限を解除する。 グループの場合は、 root以外のユーザと1つまたは実行ビットによって変更されると、スードSGIDビットがクリアされると設定されている。 タッチ-ファイルのタイムスタンプを変更する タッチ時のコマンドは、既存のファイルのタイムスタンプを変更するために使用されると、いずれかの古いutime ( ) 、または、新しいutimes ( )システムコールを呼び出します。既存のファイルのタイムスタンプを変更するには、ファイルやルートが所有しなければなりません。また、ファイルに書き込み権限を設定する場合は、 rootになるかが必要です。 |
| ブックマーク |
| タグ |
| chmod、 ファイルのアクセス許可、 Linuxコマンド、 stickyビット、 スード、 umaskの |
| スレッドツール | このスレッドを検索 |
| 表示モード | このスレッド |
|
|