ログイン画面でリモートFedora LinuxシステムのVNCを使用するヘルプ

ログイン画面でリモートFedora LinuxシステムのVNCを使用するヘルプ

Fedora 29 / gnomeを実行するLinuxボックスがあります。職場にいる間は常にログイン状態を維持するため、家に着いたらVNCを介してリモートで接続して作業を続けることができます。

以前のFedora(私の考えでは16個)では、停電/衝突などが発生した場合にコンピュータを再起動し、VNCを介してログイン画面を表示できるようにログイン画面でx11vncを起動する方法に関する情報をオンラインで見つけました。これはシステム化以前の時代でした。

Fedora 29ではこれを行う方法が見つかりませんでした。会社からログインすると、x11vncが実行され、VNCを介してリモートでログインできるようにする魔法のポーションが見つかりません。これで自宅でフルタイムで作業しているため、ログアウトしても持続セッションを開始できません。私は作業している人を見つけて、それらにマシンにアクセスする方法を説明し、VNCセッションを実行するためのパスワードを教えなければなりません(たとえば、VNCはパスワードで保護されています)。

ログイン画面から起動するようにFedora 29 / gnomeを設定する方法を知っている人はいますか?これが欠落している場合は、telnet / sshを介してこの問題を引き起こす方法はありますか?会社が設定したノートブックでWin10を実行しているため、SSHを介したトンネリングは実行可能なオプションではないようです。

これは /usr/lib/systemd/system/x11vnc.service です:

[Unit]
Description=X11vnc
After=graphical.target

[Service]
Type=forking
ExecStart=/root/X11vnc_init
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=X11VNC
SyslogFacility=local5
SyslogLevel=debug
[Install]
WantedBy=graphical.target

...これは/root/X11vnc_initです:

#!/usr/bin/perl

if($ARGV[0] eq "stop"){system("killall -9 x11vnc"); exit 0;}
$DM="";
$LIGHT=`pgrep -x lightdm`; chomp $LIGHT;
if($LIGHT){
 $DM="lightdm"; 
 print "Found Lightdm Display manager\n";
 goto nextstep;
}
$KDM=`pgrep -x kdm`; chomp $KDM;
if($KDM){
 $DM="kdm";
 print "Found KDM Display manager\n";
 goto nextstep;
}
$GDM=`pgrep -x gdm`; chomp $GDM;
if($GDM){
 $DM="gdm";
 $dm=`ps ax |grep gdm |grep \\\\-auth |grep -v grep`;chomp $dm;
 ($junk1,$junk2)=split(/-auth /,$dm);
 ($junk3,$junk4)=split(/\/gdm\/Xauthority /,$junk2);
 $authfile="$junk3/gdm/Xauthority";
 print "Found GDM Display manager with authfile $authfile\n";
 goto nextstep;
}
$XDM=`pgrep -x xdm`; chomp $XDM;
if($XDM){
 $dm=`ps ax |grep xdm |grep authdir |grep -v grep`; chomp $dm;
 ($a,$filename)=split(/authdir\/authfiles\//,$dm);
 $authfile="/var/lib/xdm/authdir/authfiles/$filename";
 $DM="xdm";
 print "Found XDM Display manager with authfile $authfile\n";
 goto nextstep;
}
$SDDM=`pgrep -x sddm`; chomp $SDDM;
if($SDDM){
 $dm=`ps ax |grep sddm |grep var/run |grep -v grep`; chomp $dm;
 ($junk1,$junk2)=split(/-background/,$dm);
 ($junk3,$junk4)=split(/var\/run\/sddm\//,$junk1);
 $filename="/var/run/sddm/$junk4";
 $authfile="$filename";
 $DM="sddm";
 print "Found SDDM Display manager with authfile $authfile\n";
 goto nextstep;
}
nextstep:
if($DM eq "gdm"){$AUTH="-auth $authfile";}
if($DM eq "lightdm"){ $AUTH="-auth /var/run/lightdm/root/:0 ";}
if($DM eq "kdm" ){ $AUTH="-auth guess ";}
if($DM eq "xdm" || $DM eq "sddm"){$AUTH="-auth $authfile ";}
if(!$DM){
 print "NO Compatible dm found\n";
 exit 0;
}
my $pid = fork();
$XCMD="/usr/bin/x11vnc \
-rfbauth /root/x11vncpasswd \
-nap -many -norepeat 5 -alwaysshared -dontdisconnect \
-shared -nolookup \
$AUTH \
-rfbport 5900 -no6 -xkb -display :0 &";
$XCMD=~s/\n/ /gm;
open tmpsh,">/tmp/tmpvnc.sh";
print tmpsh "#!/bin/bash
sleep 10;
$XCMD
";
close tmpsh;
system("chmod 755 /tmp/tmpvnc.sh");
system("/tmp/tmpvnc.sh &");
exit 0;

ありがとう、

表示

ベストアンサー1

おすすめ記事