問題タブ [pam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - pam を使用してユーザーのパスワードを設定する
root として実行され、pam_chauthtok への呼び出しを介して PAM を使用してユーザーのパスワードを設定する C プログラムがあります。これは機能しますが、脆弱なパスワードの設定を許可し、ユーザーが自分のパスワードを変更した場合に保存されるパスワード履歴を保存しません。
パスワードを変更しているユーザーとして実行しているかのように pam を強制的に動作させる方法はありますか?
linux - 任意のパスワードでログイン
サーバーのユーザーの1人が、最初の8文字がユーザーの実際のパスワードと同じである任意のパスワードでログインできるという意味で、奇妙な問題が発生しています。たとえば、ユーザーの実際のパスワードがパスワードとしてabcdefgh
ログインしている場合、または成功しているが、ではログインしていない場合。シャドウファイルでPAMを使用しています。問題のユーザーは/etc/ shadowファイルに自分のパスワードのハッシュを持っていますが、私が見る限り、それは塩を持っていません。abcdefgh
abcdefgh2002
abcdefghijkl
2001abcdefgh
自分のアカウントで試しましたが、ログインに成功しませんでした。
pam - pam_exec とセキュリティ
PAM モジュールpam_exec
を使用して、セッション中にアカウントのセットアップとティアダウン アクティビティを実行したいと考えています。何が起こっているのかを確認できるように、いくつかのランタイム データを実行してログに記録する簡単なテスト スクリプトを作成しました。
exec されたスクリプトは、PAM をトリガーするコマンドを実行している人の有効な UID によって実行可能でなければならないように思えます。意味あり。ただし、このプロセスにはもう少しセキュリティが必要です。たとえば、アカウントのログイン/ログアウト時にレコードをデータベースに突っ込むスクリプトがある場合、そのスクリプトは常にすべてのユーザーが実行できる必要があるように思えます。
ルートまたはその他の特別な目的のアカウントのみがスクリプトを表示および実行できるようにpam_exec
suid
し、特権のないユーザー用のスクリプトを用意することを強く望んでいます。
なんで?データベーススクリプトの場合、ユーザーがログインして手動でスクリプトを実行し、一見「ログアウト」することは望ましくありません。
スクリプトを「sudoers」ファイルに入れようと考えましたが、それでも誰でも好きなときにスクリプトを実行できます。
唯一のオプションは、pam_exec をハックして「run as」オプションを許可することのようです。
金曜日の午後遅く、些細なことを見逃しているかもしれません。より良い方法はありますか?
session - linux-PAMセッションはlinuxプロセスセッションと同じですか?
Linuxシステムコールsetsid()を使用すると、いつでも新しいセッションを作成できることは誰もが知っていますが、一般的な方法は、ログインするとき、または新しいデーモンを起動するときです。また、linux-PAM(プラガブル認証モジュール)にも「セッション管理」の概念があることに注意してください。私の質問は、Linux PAMのセッションはsetsid()によって作成されたセッションと同じですか?そして、Linux PAMセッションで通常何ができるでしょうか?ありがとう。
java - PAM "pam_unix.so" 認証が失敗することがある
PAM に問題があります。PAM を使用して認証する tomcat webapp があります。インストール中に、/etc/pam.d に /etc/pam.d/sshd ファイルへのシンボリック リンクを作成します。これは常に機能しています。
最近、ユーザーが各リクエストを認証する方法を追加しました (JSESSIONID Cookie を使用するのではなく)。これが追加されたのは、一部のデータを定期的に監視アプリケーションにバッチロードする必要があり、Basic Auth を使用するのが簡単だったからです。
Web サービスを繰り返し (1 秒間に 10 回など) curl すると、ときどき PAM が失敗します。これは約 500 回に 1 回発生しますが、私のクライアントは数回に 1 回発生すると主張しています (リモートで実行されていることに注意してください。ただし、それが重要な理由はわかりません)。
シンボリックリンクされた pam 構成を次の最小構成に置き換えました。
これも /etc/syslog.conf に追加しました
debug.log には、該当するログ メッセージのみが含まれています。
これをさらにデバッグするにはどうすればよいですか? 私が試してみました:
- 異なるホストの使用。真新しいインストールである
- nscd サービスをオフにしました
python - PAM audit_log_acct_message()が失敗しました:操作が許可されておらず、ユーザー認証が失敗します
auth.logファイルのUbuntu(13.04開発ブランチ)でpam_pythonを使用してvsftpdのユーザーを認証すると、このエラーが発生します。
そして、vsftpdは、接続しようとしたときにパスワードが間違っていると言います。auth.logファイルの完全なセクションは次のとおりです。
さて、これはまったく正常ではなくLOGIN: dev
、アカウントdev
が適切に認証されたときに出力されるので、私を認証する必要があります(または、Pythonスクリプトがエラーを出すはずです)。これは、まったく同じ構成の別のサーバーからの正常な出力です。
このサーバーの唯一の違いは、異なるカーネルを実行していることです(通常とは異なるデータセンターからのものです)。カーネルは通常、次のとおりです。
pamを動作させることができないサーバー上のカーネルは次のとおりです。
間違いなく何か問題がありますが、どこでも見られる唯一のエラーはaudit_log_acct_message() failed
メッセージです。
Pythonスクリプトを直接試すと、成功も出力されます。
これを引き起こしている可能性がありますか?そして、どうすればそれを修正/回避できますか?
linux - setuid と sudo を理解する
Linux ユーザーランドと Linux カーネルで sudo がどのように機能するかを理解しようとしています。ユーザーの観点からはあまり興味がありませんが、実装/カーネルの観点から理解することにもっと興味があります。(これをstackexchangeとスーパーユーザーのどちらに置くかについて議論しましたが、ここが最善だと思いました。間違った選択をした場合は自由に移動してください...)
そのため、カーネルの起動が完了すると、もちろん uid が 0 の init プロセスが起動されます。これにより、ssh デーモンなどの他のプロセスが起動される場合があります。この新しいプロセスは、その親の uid (例: 0) を継承します。sshd は、接続ごとに 1 つずつ、子プロセスも起動するようになりました。次に、passwd ファイル、shadow ファイル、pam などを介して、ログインしようとしているユーザーの認証が行われます。sshd は、使用するいずれかの方法でユーザーを認証すると、setuid/seteuid を呼び出してプロセスを変更します。 uid。今私の理解では、プログラムはルートから別のユーザーにのみ移動でき、ユーザー x からルートまたはユーザー x からユーザー y には移動できません (それは正しいですか?) (setuid 呼び出しを使用して?)
したがって、この点に関して、カーネルは実際には、ファイル、プロセスなどに割り当てられた uid についてしか認識していません。ユーザー アカウントへの認証は、ユーザーランドで制御され、ルート プログラムが非ルート プログラムにドロップすることのみを許可することによって保護されます。
したがって、私の質問は、上記が正しい場合、sudo はどのように機能するかということです。非 root アカウントを現在実行している端末は、一時的に root 権限にどのように切り替えますか? sudo プロセスと対話しますか? 上記が間違っている場合、少しでもどこが間違っているのか知りたいです。
c - rshd.cソースコードにpam_appl.hとpam_misc.hがありません
私はcentOS5.5OSに取り組んでいます。
/security/pam_appl.hおよび/security/misc.hファイルが欠落しているというエラーが表示されます。
実際、私のrshd.cはPAMモジュールをロードしません。このライブラリを配置することで、rshdを正常に動作させることができます。だから私はこの質問を投稿しました。
エラー:-
私はよく検索しますが、これらのファイルを提供する有用なrpmを取得できませんでした。
いくつかのリンクはここにあります。ただし、centOSには適していません。
助けて。この問題をどのように克服できるか教えてください。
編集番号1
3番目のリンクは便利なようです。pam-develをインストールしようとすると、エラーが表示されます。
私が走るとき
いくつかの変数をチェックしてからオブジェクトファイルを作成しますが、最後に次のように表示されます。
編集No.2
私があなたの命令に従ったとき、それは最後に、以下のエラーを示しています。
このエラーは、私が実行したときに発生しました make && make install
linux - pam_exec による Linux カスタム認証
hpw で pam_exec を使用して、ログイン時にユーザーを認証する外部プログラムを実行する例を見つけるのに苦労しています。
私のpam.dファイルには次のものがあります
認証を許可または禁止するには、スクリプトに何を含める必要がありますか?
python - PythonのPAMのようなモジュールはありますか?
Linuxアカウントに基づいて(PAMと同様に)認証認証を行いたいのですが、これはPythonで実現する必要があります。または、Linux の暗号化アルゴリズムを作成する必要があります。つまり、各ディストリビューションは同じ暗号化方法を所有していますか?