Linux ターミナルは再起動後一度だけ自動的にログインします。

Linux ターミナルは再起動後一度だけ自動的にログインします。

Arch Linuxシステムを再起動した後、自分のコンピュータが特定のユーザーとして自動的にログインできるようにします。フォローするArch Linux Wikiのガイド# systemctl edit getty@tty1次の行を実行して貼り付けます。

[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM

これは機能し、自動的にログインします。ところで、他人としてログインしようとしてCTRL+Dを押してログアウトすると、自動ログインが実行され、すぐに再ログインされます。起動後初めてのみ自動ログインし、手動でログアウトするときに何もしないように自動ログインを設定するにはどうすればよいですか?

答え1

これが私が現在使用しているものです:

  1. # systemctl edit getty@tty1しかし、代わりにカスタムスクリプトを実行します。

    [Service]
    Type=simple
    ExecStart=
    ExecStart=/home/[USER]/.tty1
    
  2. cat /home/[USER]/.tty1:

    #!/usr/bin/bash
    
    if [ -f /run/user/1000/tty1started ]  ; then
      /usr/bin/agetty --noclear tty1 $TERM 
    else
      date &> /run/user/1000/tty1started
      /usr/bin/agetty --autologin [USER] --noclear tty1 $TERM
    fi
    

    chmod +x(スクリプトを確認してください)

これはdate私が他の用途にも使用しているからです。しかし、チェックは実際にファイルが存在することを確認するだけです(touchこれで十分です)。ファイルはRAM()に書き込まれるため、/run自動的に削除されます。

メモ:

  • 1000ユーザーIDの変更(id -u
  • pamいくつかの警告が表示されますが、ioctlすべてがうまく動作します。

答え2

私の知る限り、agettyにはこの機能はありません。したがって、これを直接実行する必要があります。たとえば、この実行のプレビューログインがある場合は、bash / perl / whateverスクリプトを使用して状態を保存し(ディレクトリは再起動後に再起動されます)、一致するgettyを実行する必要があります。

問題は、これが機能するために本当に必要な場合は、tty2に変更して(Alt + F2を使用)、正常にログインすることができることです。

挨拶

答え3

側面の回答:他のttyに切り替えることに加えて(で述べたように)トレキの答え)、現在のユーザーを新しいユーザーに置き換えることができます

su otherusername

他のユーザーのシェルを終了すると、自分のセッションに戻ります。

(スーパーユーザーアカウントに切り替えるためのものだと思う人もいます。実際には、他のユーザーsuとしてコマンドを発行できるようにする「代替ユーザー」です。rootでログインしていない場合、コマンドを実行するとsu otherusername他のユーザーに対するメッセージが表示されます。 .通常のスクリプトsuやシェルリソーススクリプトは実行されません.profilesu

su - otherusername

)

関連情報