Содержимое /etc/xdg/autostart
выполняется после входа пользователя в систему графически. Возможно, вы захотите начатьx11vnc
с диспетчера отображения (, который вызывает приветствие при входе в систему ). В зависимости от вашего выбора диспетчера отображения вам необходимо изменить
/etc/gdm/Init/:0
для ГДМ, /etc/kde4/kdm/Xsetup
для КДМ, /etc/lightdm/lightdm.conf.d/
(фактический файл отличается )для LightDM . Я предполагаю, что вы придерживаетесь GDM. Вызовите x11vnc
с опцией -auth
. Если повезет, x11vnc -auth guess -display :0 &
должно хватить. Не забудьте амперсанд, иначе диспетчер дисплея будет ждать завершения x11vnc
.
Для VNC с LightDM:вы можете попробовать раздел конфигурации внутреннего VNC-сервера, подобный этому:
[VNCServer]
enabled=true
command=/usr/bin/x11vnc -auth guess -display :0
Этот контент должен быть помещен в новый файл, т.е. /etc/lightdm/lightdm.conf.d/vncserver.conf
.
- The user executing the sudo command must also have execute permission to the file
Утверждение 1 неверно. Пользователю, выполняющему sudo, не нужно иметь разрешения на выполнение сценария.
- Only the file will execute as root and not the commands within
Утверждение 2 также неверно. Все команды в сценарии, вызываемые пользователем sudo, будут выполняться от имени пользователя sudo.
Вот простой тестовый скрипт, который я запустил, чтобы показать идентификатор пользователя, от имени которого выполняется скрипт/команда.
/tmp $ id
uid=1000(danesh) gid=1000(danesh)
/tmp $ ls -l test.sh
-rwxr-xr-x 1 danesh danesh 24 Nov 22 10:48 test.sh*
/tmp $./test.sh
uid=1000(danesh) gid=1000(danesh)
/tmp $ sudo./test.sh
[sudo] password for danesh:
uid=0(root) gid=0(root) groups=0(root)
/tmp $ sudo chown root:root test.sh
/tmp $ sudo chmod 770 test.sh
/tmp $ ls -l test.sh
-rwxrwx--- 1 root root 24 Nov 22 10:48 test.sh*
/tmp $./test.sh
fish: The file “./test.sh” is not executable by this user
/tmp [126] $ sudo./test.sh
uid=0(root) gid=0(root) groups=0(root)
/tmp $ cat test.sh
#!/usr/bin/env bash
# show the user executing this script
id
Надеюсь, это поможет.
Два утверждения
The user executing the sudo command must also have execute permission to the file. Only the file will execute as root and not the commands within.
Совершенно неправы.
Кроме того, сценарии оболочки не требуют выполнения. Execute только упрощает их использование, так как тогда #!
вверху используется для определения интерпретатора. Однако вы можете напрямую указать интерпретатору запустить скрипт. Поэтому вам нужно только разрешение на чтение.