Где хранить проприетарный код и исполняемые скрипты? [закрыто]

Usar un caseestá muy bien si tienes un conjunto fijo de mascotas con las que quieres emparejar. Pero no funcionará si necesita construir el patrón en tiempo de ejecución, ya que caseno interpreta la alternancia desde los parámetros expandidos.

Esto coincidirá solo con la cadena literalcat|dog|mouse:

patt='cat|dog|mouse'
case $1 in 
        $patt) echo "$1 matches the case" ;; 
esac

Sin embargo, puede utilizar una variable con la coincidencia de expresión regular. Siempre que la variable no esté entre comillas, cualquier operador de expresiones regulares dentro de ella tiene sus significados especiales.

patt='cat|dog|mouse'
if [[ "$1" =~ ^($patt)$ ]]; then
        echo "$1 matches the pattern"
fi

También puede utilizar matrices asociativas. Comprobar si existe una clave en uno es lo más parecido a un operador inque ofrece Bash. Aunque la sintaxis es un poco fea:

declare -A arr
arr[cat]=1
arr[dog]=1
arr[mouse]=1

if [ "${arr[$1]+x}" ]; then
        echo "$1 is in the array"
fi

(${arr[$1]+x}se expande a xsi arr[$1]está configurado, vacío de lo contrario.)

0
15.09.2018, 19:02
2 ответа

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

1
28.01.2020, 02:42

Мне помогло следующее решение:

Добавьте следующую строку в/etc/sudoers:

user ALL = (root) NOPASSWD: /path/to/script

От имени пользователя запустите скрипт следующим образом:

sudo /path/to/script

Таким образом, сам скрипт (и все последующие скрипты Python )запускаются от имени root, но в то же время ни один из них не доступен ни для чтения, ни для записи

0
28.01.2020, 02:42

Теги

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