Отказано в доступе из-за запуска пользовательского скрипта с правильными разрешениями

Aproximación cortased:

sed -E 'N; s/\n([^[:space:]]*,[^[:space:]]+)/\1/' file

La salida:

1234  1234  dei_1/3,dei_2/3,dei_9/0,dei_10/0,dei_8/4
2345  2345  dei_8/9,dei_5/6,dei_4/9
4244  4244  dei_0/9,dei_4/6,dei_4/1
4235  4235  dei_0/9,dei_4/6,dei_4/,dei_9/7,dei_1/3,dei_2/3,dei_9/0
1
08.07.2019, 20:36
1 ответ
/usr/bin/linkhandler: 10: /usr/bin/linkhandler: : Permission denied

Это сообщение об ошибке от оболочки, выполняющей сценарий. Это немного неудобно читать, но есть 10, который может быть номером строки, и стоит обратить внимание на странное двойное двоеточие : :перед сообщением об ошибке Permission denied. Как будто перед вторым двоеточием должна быть еще одна строка, но эта строка пуста.

Ваша строка 10

[ -z "$1" ] && { "$BROWSER"; exit; }

И потенциальная проблема заключается в том, что $BROWSERможет быть пустым. Это по-прежнему не объясняет, почему имя скрипта снова присутствует, или если пустое значение вызовет эту ошибку. Итак, давайте попробуем воспроизвести это:

$ cat foo.sh
#!/bin/dash
unset FOO
"$FOO" 
$./foo.sh
./foo.sh: 3:./foo.sh: : Permission denied

В Dash, Debian и Ubuntu /bin/shсообщение об ошибке при выполнении команды с пустым сообщением выглядит очень похоже, и действительно, по какой-то причине имя сценария дублируется в сообщении об ошибке. (В Bash сообщение об ошибке будет другим.)

Итак, может показаться, что проблема действительно в том, что $BROWSERпусто. Вы можете проверить это с помощью [ -z "$BROWSER" ]или указать значение по умолчанию, используя "${BROWSER-/usr/bin/sensible-browser}"с соответствующим путем.

2
27.01.2020, 23:30

Теги

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