Sudo以外のターミナルコマンドを実行するには、ユーザーにユーザーパスワードの入力を求めます。

Sudo以外のターミナルコマンドを実行するには、ユーザーにユーザーパスワードの入力を求めます。

sudo以外のコマンドでユーザーにパスワードの入力を求める方法を知りたいです。

編集する:

コメントでは明確にはわかりません。たとえば、リクエストを詳しく説明します。たとえば、ターミナルを開き、「ls -l」コマンドを入力した場合は、Enterキーを押してから、ユーザーパスワードsudo以外のすべての注文を希望します。

ベストアンサー1

通常、シャドウファイルのパスワードハッシュにアクセスできない場合は、システムパスワードデータベースを使用する任意のユーザースペースプログラムに対してこの要求が問題になる可能性があります。これは、シャドウファイルへのアクセスを実行できるようにsetuidビットを設定するsudo傾向があるためです。chshroot

[jdoe@centos ~]$ id -u
1001
[jdoe@centos ~]$ perl -E 'say for getpwuid(1001)'
jdoe
x
1001
1001



/home/jdoe
/bin/bash
[jdoe@centos ~]$ sudo perl -E 'say for getpwuid(1001)'
jdoe
$6$P1jejm1i$bo02c/...
1001
1001



/home/jdoe
/bin/bash
[jdoe@centos ~]$ 

プログラムがユーザーのパスワードハッシュを取得できる場合(システムデータベースまたは$6$P1jejm1i$bo02c/...上記の出力で編集されたビットである他のソースから)、パスワードを確認するには、既存のcrypt(3)通話で十分です。

パスワードプロンプトを表示しないことに加えて、パスワードプロンプトはコアダンプを防ぎ、それ自体がメモリにロックし、その後さまざまなメモリビットをクリーンアップし、さまざまな信号を無視し、setuidが実行されている場合はより厳格なチェックを実行します欲しいかもしれません。 OpenBSDではこれらの手順のいくつかを簡単に実行できますが、他のオペレーティングシステムには「LEGACY」と表示されているものはreadpassphrase(3)あまりありません。getpass(3)

おすすめ記事