Запуск x11vnc от имени пользователя без полномочий root

Я не знаю, как выделить день в календаре года cal -y только регулярными выражениями, но причина, по которой ваш пример не работал для однозначных дат , заключается в том, что $ (дата +% е) добавляет космос к

Это будет работать:

cal | grep --color -EC6 "\b$(date +%e | sed "s/ //g")"

-121--291798-

С socat на сервере:

socat tcp-listen:8001,reuseaddr,fork tcp:localhost:8000

По умолчанию socat прослушивает порт TCP 8001 на любом IPv4 или IPv6 адресе (если поддерживается) на компьютере. Вы можете ограничить его IPv4/6, заменив tcp-listen на tcp4-listen или tcp6-listen , или на определенный локальный адрес, добавив , bind = that-address .

Для подключения сокета, к которому выполняется прокси, можно использовать любой адрес вместо localhost и заменить tcp на tcp4 или tcp6 , если требуется ограничить разрешение адреса IPv4 или IPv6 адресами.

Обратите внимание, что для сервера, прослушивающего порт 8000, подключение будет отображаться как исходящее от прокси (в случае localhost , то есть localhost ), а не от исходного клиента. Необходимо использовать DNAT-подходы (но которые требуют привилегий суперпользователя), чтобы сервер мог определить, кто является клиентом.

-121--4952-

Грязное решение выглядит следующим образом:

boolRememberNext=0
rememberString=""

for arg in $*; do
   if [ ${boolRememberNext} -eq 1 ]; then
      rememberString="${rememberString} ${arg}"
   fi
   if [ "${arg}" = "-name" ]; then
      boolRememberNext=1
   else
      boolRememberNext=0
   fi
done

echo ${rememberString} | while read filemask; do
   unquotedFile=$(echo "$filemask" | tr -d "'")
   ls -R1 ~/homedir/ | grep ":" | cut -d: -f1 | while read dir; do
      ls ${dir}/unquotedFile
   done
done

Почему оно грязное?

  • Много циклов, доступ к файловой системе осуществляется многократно
  • Неправильный синтаксис командной строки игнорируется
  • директория и имена файлов могут не иметь: внутри
  • разгерметизация var с tr не будет обрабатывать * комбинаций
    Я не хочу использовать eval для этого

Что можно сделать для улучшения решения?

Вы можете хранить промежуточные результаты в локальных var, улучшить обработку специальных символов и проверить синтаксис.

Можно также выполнить ls ~/homedir/* и добавить звездочку к пути поиска, пока файлы не будут найдены. Разбор всех файлов с помощью какого-либо фильтра (awk?). Проверьте найденные файлы, что они являются файлами, а не каталогами.

0
21.06.2018, 16:08
1 ответ

Я нашел способ, с помощью которого -не привилегированный пользователь может запустить x11vncбез необходимости устанавливать или настраивать что-либо еще. Возможно, это не самый чистый способ сделать это, но он работает.

Я создал скрипт, который запускается при запуске:

#!/bin/sh

cd  /home/amorimph/
while true; do
    if [ -e startVNC ]
    then
        x11vnc -display :0
        rm startVNC
    fi
done

Он проверяет каталог пользователя на наличие файла «startVNC». Затем, когда я вхожу в систему как этот не -пользователь root, touch startVNCзапускается x11vnc, и файл удаляется после завершения процесса.

0
28.01.2020, 04:20

Теги

Похожие вопросы