「logname」コマンドは、後続の「su」呼び出しに関係なくログインしたユーザーの名前を提供します。たとえば、現在のMintでは "logname"コマンドが壊れているため、ログ名は提供されません。他のコマンドで機能を取得したいです。 "who -u"コマンドの出力には、結果行の1つに必要な情報が含まれています。例:
schade tty7 2019-04-13 10:01 02:41 2674 (:0)
user1 tty8 2019-04-13 10:05 02:41 3518 (:1)
schade pts/3 2019-04-13 10:33 . 6274 (fd00::eb5d:1659:bda5:8b95)
user2 tty9 2019-04-13 10:34 02:41 6475 (:2)
schade pts/7 2019-04-13 12:16 . 10727 (fd00::eb5d:1659:bda5:8b95)
しかし、どれ?各行の最後のエントリから2番目のエントリとして現在のログインのpid(ここではシェルのpidではなく2674)を見つける必要があります。または、コンピュータ名をフィルタリングするには、最後に「:0」でエンコードされたものとして検索する必要があります。どうすればいいですか?
答え1
実行中のシステムlogind
で
loginctl user-status | head -n 1
現在のセッションにログインしているユーザーのログイン名とuidが表示されます。sudo
などについても適用されます。