#NSSSとは何か?静的リンクのための安全なNSSのような実装 #六17
#NSSSとは何か?静的リンクのための安全なNSSのような実装 #六17
https://github.com/skarnet/nsss より
それは何ですか ?
NSS は、のサブセットの実装です pwd.h, group.h 及び shadow.h 関数ファミリー、unix システム上でユーザーデータベースアクセスを実行。
通常、ユーザーデータベースへのアクセス getpwnam() また、同様の機能はシステムの libc によって提供されます。ただし、すべての libcs がユーザー/グループデータベースに設定可能なバックエンドを実装しているわけではありません。例えばmusl libc、 Linux では、標準のみをサポートしています /etc/passwd メカニズム; それはまた支えますnscd プロトコル しかし、これだけでは不十分です:
- musl は、ファイルのバックエンドで答えが見つからない場合にのみ nscd に接続します
- Nscd プロトコルは列挙をサポートしていないため、primitivess は getpwent() Nscd 上で実装することはできません。
Glibc が使用するメカニズム Name Service Switch(に略称 nsswitch または NSS)、独自のものを持っています集合 特定の状況では不適切になります。
nsss 「ネームサービススイッチ」の安全な実装です:構成可能なユーザー/グループ/シャドウデータベースアクセスを提供します getpwnam()デーモンと Unix ドメインソケットを介して通信することによる機能; デーモンは、選択した任意のデータベースでルックアップを実行できます。
nsss 動的モジュールロードは実行せず、アプリケーションのバイナリに小さなフットプリントを追加するだけで、クライアントのアドレス空間に複雑な決定エンジンを追加しません。アプリケーションは、静的にに対してリンクすることができます nsssライブラリ、および構成可能なユーザーデータベースアクセス機能の恩恵を受けることができます。
インストール
必要条件標準
必要条件標準
- C 開発環境を備えた POSIX 準拠システム
- GNU make、バージョン 3,81 以降
- スカライブ バージョン 2。14。0。0 以降。ビルドタイムの要件です。Skalibslibrary の共有バージョンとリンクする場合は、実行時間要件でもあります。
- シーエーエス 6 バージョン 2。12。0。0 以降。それは ランタイム nsssd サービスを実行するための要件のみ(適切な代替サービスを持っていなくても実行できます s6-ipcserver)。
NSS はフリーソフトウェアです。の下で利用可能ですISC ライセンス.
ダウンロード
- 現在リリースされている nsss のバージョンは 0。2。0。4.
- または、 のコピーをチェックアウトすることもできますnsssgit リポジトリ: git クローン git://git。skarnet。org/nsss
A もありますGitHub ミラーnsss git リポジトリの。
コンピレーション
- インストールの詳細は、同梱されている INSTALL ファイルを参照してください。
- このページ nsss の以前のバージョンと現在のバージョンの間で認識すべき違いをリストします。
コメント
コメントを投稿