私はラップトップで公共の場所で作業するのが好きですが、パスワードなしでSudoを使用することも好きです。私が今知っていることに基づいて、NOPASSWD
ファイルでsudoers
オプションを使用しますが、もちろん誰でもSudoを好きなように使用できます。
1つの重要な考え頭に浮かぶロックプログラムが存在するということです。ただし、フラッシュドライブを使用すること(およびSudoのみに使用すること)が(1)ので、 (2)パスワードを入力するよりも簡単で、(3)自分のコンテンツにアクセスしたり、悪意のあることをしたりする人に関心がありません。ラップトップは他の人の周囲に公開され、私のラップトップの唯一の知的財産は非常に基本的なAngularプロジェクト。
さらに、私や他の人は、XまたはWayland環境を実行していないコンピューターでのSudoの誤用を防ぎたいと思うかもしれません。現在の作業には最新のWebブラウザーが必要ですが、Xを使用せずにマルチプレクサーを使用する機会がある場合は、そうします-私のラップトップは少し古くて遅いです。
私がやりたいことは、フラッシュドライブにキーファイルを置き、ラップトップにいるときにフラッシュドライブを接続し、離れるときにフラッシュドライブを取り出すことです。
この問題から派生した私の3つの質問を次に示します。
(4. [おそらく無関係な質問]このパッケージは個別にできるのでしょうか、それともsudoのフォークである必要があるのでしょうか?)
関連がある場合、私のセットアップはbspwmを使用したArch Linuxで、デスクトップ環境はありません。私の仕事のほとんどはurxvt/vimでのWeb開発とそれをChromeでチェックすることです。
NOPASSWD
オプションがそれだけでは要件を満たさない理由を理解できていませんが、フラッシュドライブの存在を必要とする場合は、ほとんどのことを実行できるものを考えることができます探しています。
これは回避策の詳細ですが、ローカル管理ユーザーを作成してsuperuser
と言い、そのユーザーにパスワードなしのSudo
権限を与えることができます。つまり、次の行を/etc/sudoers
ファイルに追加します:
superuser ALL=(ALL) NOPASSWD:ALL
次に、パスワードログインを無効にし、そのユーザーのキーのみのSSH認証を構成します。つまり、passwd -l superuser
を実行し、/etc/ssh/sshd_config
に次のスタンザを追加します。
Match user superuser
PasswordAuthentication no
次に、このユーザーのSSHキーペアを作成します。公開鍵を/home/superuser/.ssh/authorized_keys
に追加し、秘密鍵をフラッシュドライブに配置します。次に、superuser
アカウントを使用する場合は、フラッシュドライブを接続し、秘密鍵を使用してsuperuser
アカウントにSSHで接続します。そして、ほら!これで、ユーザーにパスワードなしのSudo
が提供されました。もちろん、完了したらシェルセッションを終了する必要があります。フラッシュドライブを取り外すだけでは不十分です。 precommandフック を設定して秘密鍵をチェックし、存在しない場合(または無効な場合)に自動的に終了することもできると思いますが。