/bin
(または実行可能ファイルが保存されている他の標準ディレクトリ)のファイルがrootによって書き込み可能かどうかは、実際には関係ありません。私が使用しているLinuxサーバーでは、rootで書き込み可能ですが、私のOpenBSDマシンではそうではありません。
グループまたは「その他」によって書き込み可能でない限り!
次のようなセキュリティ問題はありません。
-rwxr-xr-x 1 root root 126584 Feb 18 2016 /bin/ls
誰かがそれを上書きしたい場合、彼らはルートである必要がroot
あり、もし彼らがそれを上書きするなら、彼らはどちらかです
- 新しいバージョンのインストール、または
- 不器用、または
- 既にルート権限を持つ攻撃者。
考慮すべきもう1つのことは、rootが書き込み保護されているかどうかに関係なく、ファイルに書き込むことができるということです。
「スクリプト」はバイナリファイルと同じくらい実行可能ファイルであることに注意してください。スクリプトは「テキストファイルであるため」書き込み可能である必要はありません。どちらかといえば、おそらく同じディレクトリ内の他の実行可能ファイルと同じ許可を持っているだけです。
すべての権限を今すぐ変更しないでください!それはあらゆる種類の大混乱を引き起こし、パーミッションが適切に設定されていることを検証するかもしれないパッケージマネージャーを混乱させる可能性があります。また、セキュリティが重要なアプリケーションで誤って権限を誤って変更した場合、システムが脆弱になる可能性があります。
本当に奇妙に見えるものを見つけない限り、実行可能ファイルのアクセス許可が正しく設定されていると仮定してください。
コメントとチャットから、いくつかの歴史への呼びかけがありました。
Linux上のバイナリのパーミッションの履歴は、私が知っていることではありません。彼らは単にディレクトリから、または単にumask
Linux のデフォルトからパーミッションを継承したと推測されるかもしれませんが、私は本当に知りません。
私が知っていることは、OpenBSDはデフォルトで許可モード555でベースシステム1にバイナリをインストールすることです(-r-xr-xr-x
)。これは、555に/usr/share/mk/bsd.own.mk
設定さBINMODE
れるMakefileフラグメントで指定されます(既に設定されている場合を除く)。これは、後にで実行可能ファイルをインストールするときに使用さmake build
れ/usr/src
ます。
私は見ていたこのファイルの注釈付きのCVSログを、そしてそれは、1995年にはNetBSDから輸入されたため、ファイルに次の行が変更されていないことがわかりました。
NetBSDでは、1993年に555に設定されたファイルが最初にCVSに入れられましたBINMODE
。
FreeBSDプロジェクトは少なくとも1994年以来、 NetBSDとまったく同じファイルを使用しているようであり、後のコミットでコミットメッセージに古いファイルがBerkeley Software Distributionの4.4BSDリリースのものであるというヒントが追加されます。
それを超えて、バークレーのCSRGはソースをSCCSに保持しましたが、そのリポジトリはGitHub 2のGit形式で利用可能です。ここでフォレンジック処理を行っているファイルは、1990年にキースボスティック(または彼に近い人物)によってコミットされたようです。
それがその物語です。理由が必要な場合は、キースに尋ねる必要があります。「これは555である必要があります...」という変更に対するコミットメッセージを見たいと思っていましたが、そうではありません。
1 BSDシステムは、Linuxよりも「ベースシステム」と「サードパーティパッケージ」(ポート/パッケージ)により厳密に区分されています。基本システムは、オペレーティングシステムを実行するための完全な機能セットを提供する一貫したユニットであり、ポートまたはパッケージは「ローカルソフトウェア」と見なされ、の下にインストールされ/usr/local
ます。
2 70年代以降のUnixリリースのより包括的なGitHubリポジトリも利用可能です。
root
がバイナリファイルへの書き込み許可を持っている理由を疑問に思っていますか?それ以外の場合は、そのパッケージをアップグレードするときに役立ちます。