bin
Linuxの寿命全体にわたって、何のためにも適切ではありませんでした。
のレコードによるランレベルやinit
スポーンのようgetty
に/etc/inittab
、bin
Linuxが発明される前のアカウントはUnixの世界では時代遅れでした。NFS(Network File System)とそのnobody
ユーザーの発明と採用によって壊れたのは、1980年代のアイデアでした。商用Unixの世界の人々が1990年代に積極的に使用を中止した2010年代後半にユーザーアカウントデータベースに存在し続けたことは、inertia性の証です。
アイデアはということであったbin
ユーザが様々なディレクトリを所有など/bin
と/usr/bin
(実際に述べた他のいくつかの/unix//a/448799/5132など/usr/mbin
と/usr/5bin
)と非セットUID /非それらの中のset-GIDファイル。また、マニュアルページなどのdocoファイルとディレクトリも所有していました。
(いくつかのUnix上のより極端なケースにおいても、所有/
し、/etc
後者は、SunOSのオペレーティングシステムイメージの作成に認め間違いがあったが、前者は単にdunderheadedました。)
したがって、ユーザーとして実行するソフトウェア更新プログラムを制定するbin
許可は、システムに対して何らかのアクションを実行するためのスーパーユーザーとして実行する包括的な許可ではありませんでした。ソフトウェアアップグレードツールは、プライベートユーザーファイルの読み取り/書き込み、メールボックスへのアクセスなどができませんでした。もちろん、スーパーユーザーとしてソフトウェアを更新できます。
/etc/passwd
ファイル内の他のいくつかの特別なアカウントエントリにはパスワードが必要です。-これらは、管理者アカウントですbin
、daemon
、sys
、uucp
、lp
、とadm
。[…]これらのアカウントが存在する主な理由は、コマンド、スクリプト、ファイル、およびデバイスの安全な所有権です。また、一部の管理者はこれらのアカウントのパスワードをインストールし、実際に使用します。[…]パスワードなしのbin
アカウントは、システムブレーカーにとって非常に便利です。
—レベッカ・トーマスとリック・ファロー(1989)。System V用UNIX管理ガイド。プレンティスホール。ISBN9780139428890。p。452。
NFSは1980年代初期に発明され、この考えを完全に打ち破りました。
前述の引用が暗示するように、それはすでに不安定な場所にありました。これは、たとえばスーパーユーザーが当然のこととして実行した基本ユーティリティのプログラムイメージファイルを更新する機能/bin/ls
が、たとえばスーパーユーザー権限を取得するための直接的なベクトルであり、bin
アカウントを使用する際のアクセスの分割が誤って防止されたためです悪人がスーパーユーザーにアクセスするのを防ぐのではなく、間違ったディレクトリを変更します。
NFSの出現はこれを強調しました。NFSにはスーパーユーザーアカウントを通常の非システムユーザーアカウントに再マッピングするメカニズムがありましたが、のような非ルートアカウントには同じものがありませんでしたbin
。したがって、誰かがbin
NFSクライアントでアクセスできる場合bin
、NFSサーバー上のオペレーティングシステムファイルへのアクセスが許可されます。実際、NFSクライアントのスーパーユーザーは、サーバーの通常の非システムユーザーに再マップされ、サーバーのオペレーティングシステムファイルとディレクトリへの所有者アクセスを取得できます。
これは1990年代初頭の常識であり、当時は、スーパーユーザーが所有することchown
によって所有さbin
れていたものに、Unixセキュリティ監査ツールの標準レポート項目になり、警告されたこの穴を塞ぐことが知られていましたSendmailのインストールドコのようなもの。
限りM.ヘスの質問が懸念しているとして、このアイデアは確かにLinuxの前に、それは悪い考えであることを知っていたそれはUnixの世界に悪い考えであることが知られた後にのみ存在年に入って来たのDebian、に採択されなかった自分自身発明されました。歴史が 1980年代にまでさかのぼるBSDオペレーティングシステムは、実際の所有権を長い間廃止しましたが、それでもアカウントデータベースにユーザーアカウントを保持しています。 FreeBSDは変換bin
:bin
への所有権root
:wheel
所有権の背中を1998年に、例えば。
参考文献