暗号化されたホームで構成された大きなハードドライブを搭載したコンピューターがあります。同じコンピューターが私の家族のメインのKodiメディアセンターでも機能するということが起こります。私の子供たちが映画を見たいと思うたびに、私はそれをつけなければなりません、そして、物理的にそれにキーボードを接続して、パスワードをタイプします。
リモートでそれができるようになりたいです。
もちろん、コンピューターへのルートアクセスもあります。
ほとんどのメディアファイルは暗号化されているため、自動ログインを使用して別のユーザー名を作成するつもりはありません。
ロック画面への入力に有効なexport DISPLAY=0:
とsource discover_session_bus_addres.sh
とxdotool type my_secret_password
の通常の組み合わせは、lightm
では機能しません。
これは、Ubuntu 16.04でlightdm
を使用して機能する回答です。
root
を作成して、.Xauthority
の下にあるlightdmの/var/lib/lightdm/.Xauthority
にアクセスします。読み取り可能な場所にコピーしてルート権限を削除するか、単にルートのままにします。XAUTHORITY
を設定します(例:export XAUTHORITY=/var/lib/lightdm/.Xauthority
)DISPLAY
をアクティブなディスプレイに設定します(export DISPLAY=:0
)xdotool
はすぐに動作するはずです。試して
xdotool type "My super secret password"
xdotool key Return
ここに私が使用している回避策があります。くて失礼ですが、自動ログインオプションがまったく機能する場合、このアプローチはWaylandおよびGDM(Ubuntu 17.10)内でも機能します。
#!/bin/bash
# NAME: lightdm-auto-login
main() {
# If the file '/etc/lightdm/lightdm.conf' exists create a backup copy
[[ -f /etc/lightdm/lightdm.conf ]] && mv /etc/lightdm/lightdm.conf{,.bak}
# Create autologin configuration for the current $USER = $1
echo -e "[Seat:*]\nautologin-user=$1" > /etc/lightdm/lightdm.conf
# Restart 'lightdm' while autologin option is enabled
systemctl restart lightdm.service
# Wait for a moment to complete the login process and remove the conf file
sleep 30 && rm /etc/lightdm/lightdm.conf
# Restore the backup if exists
[[ -f /etc/lightdm/lightdm.conf.bak ]] && mv /etc/lightdm/lightdm.conf{.bak,}
}
# Execute the 'main()' function with root privileges in the background 'Sudo -b'
# Pass the curent $USER as arg (https://unix.stackexchange.com/a/269080/201297)
Sudo -b bash -c "$(declare -f main); main $USER"
スクリプトは、通常のユーザー(sudoersグループに属する)として実行する必要があります。
スクリプトは、ファイル/etc/lightdm/lightdm.conf
のバックアップコピーを作成します。次に、現在のユーザーに対して有効になっている自動ログインオプションを使用して、新しい構成ファイルを生成します。この時点でlightdm
が再起動され、ユーザーは自動ログインオプションでログインします。最後に、カスタム構成が削除され、構成ファイルの元の状態が復元されます。
GDMを使用している場合:再起動するサービスはgdm3.service
で、変更する必要がある設定ファイルは/etc/gdm3/custom.conf
です。
これは私にとってはうまくいきます(sshから、lightdmで):
$ XAUTHORITY=/var/lib/lightdm/.Xauthority DISPLAY=:0.0 Sudo sh -c 'xdotool type "My Password" && xdotool key Return'