Sudoはsetuidで動作し、rootが所有します。したがって、sudoを実行するユーザーは、実際にはrootユーザーとしてsudoを実行しています。そこから、sudo(ユーザーに代わってrootとして)は、sudoersファイル(rootでしか読めない)をチェックして、ユーザーがsudoを実行できるかどうか、そして何ができるかを確認します。ユーザーがsudoersファイルにない場合、sudoは終了してログを記録します。ユーザーがsudoersファイルにある場合、sudoはユーザーのパスワードを尋ね、shadowファイルの内容と照合します(rootでも読み取り可能です)。一致した場合、sudoはアクセス時間をrootだけが読み取れる別のファイルに記録し、コマンドを実行します。 sudoは最後のレコードの時刻をチェックできるので、タイムアウト期間内にそのユーザーがその後にsudoを実行しても、パスワードの入力は求められません。 Sudoはユーザーのパスワードを覚えていません。
重要な点は、どのユーザーがそれを実行しても、sudoは常にrootとして実行されるため、rootのみがアクセスできるファイルにアクセスできることです。
あなたのアプリケーションはこの動作を模倣することができますが、特別なユーザーとそのユーザーにのみ許可されているキャッシュを使用していると思います。パスワードを保持しないことが重要です。これまで
アプリケーションが使用する別の方法(TrueCryptなど)は、パスワードをメモリに保存することです。この方法は、常に実行されているアプリケーション(TrueCryptやオペレーティングシステムなど)に対してのみ機能します。アプリケーションが終了すると、「保存された」パスワードは失われます。この手法はmostly secureです。
希望すると便利です。
ログインしているので、彼は認証されていないという事実を知っていますか?どうしてあなたはユーザーとパスを覚えてみるべきですか? – alessioalex