Версия для печати темы (https://pro1c.org.ua/index.php?s=afc2291c2ce40b53910d21754b1d7ce8&showtopic=58897)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ НачатьЗапускПриложения, черный экран слетает 1с приглашение к входу в графическую оболочку

Автор: uanr81 11.05.20, 23:12

Платформа 8.3.1547, конфигурация самописаная, ОС Ubuntu 18
Написал небольшую библиотеку. В ней есть процедуры который используют НачатьЗапускПриложения. Всё вроде нормально, скрипты выполняются как нужно, если следить за разрешениями. Но если заставить отработать с файлом с преднамеренным нарушением прав доступа, загорается черный экран, 1с слетает и появляется приглашение для входа пользователя в графическую сессию. Если запустить 1с от рута, всё отрабатывает пишет всё что укажешь и куда укажешь ничего не слетает. Пробовал обернуть в Попытка/Исключение (так поржать) ничего не меняется, черный экран и окно входа в систему. Как же отловить встроенными методами превышение превилегий при работе с файлами?

Автор: Vofka 12.05.20, 8:33

Цитата(uanr81 @ 12.05.20, 0:12) *
Как же отловить встроенными методами превышение превилегий при работе с файлами?

Попробовать выполнить операцию над файлом. Например, переименовать файл. Если прав нету, наверное, при этом тоже возникнет какая-то беда.

Автор: sava1 12.05.20, 9:03

Цитата(uanr81 @ 12.05.20, 0:12) *
Как же отловить встроенными методами

А журнал регистрации ничего не говорит ?

Автор: uanr81 12.05.20, 9:11

Vofka @ Сегодня, 9:33 * ,
В сценарии может быть указано, всё что угодно, вплоть до создания любых файлов в любом месте. Не станеш же разбирать весь текст скрипта на предмет "опасных действий" для 1с. В описание оповещения указывается обработчик в случае ошибки. Не понятно, какие там ошибки вообще должна отлавливать 1с, кроме прав доступа к файлам? В модуле отливается вывод терминала, сама оболочка контролирует доступ к файлам. Если запустить из командной строки, появиться сообщение "Отказано в доступе" и система продолжить жить. Короче перед запуском - окно на весь экран: Уважаемый пользователь, перед выполнением вашего сценария, сохраните и закройте всё в 1с, на всякий случай сделайте архивную копию вашей информационной базы, возможно появться черный экран и 1с исчезнет. Не пугайтесь, после ввода вашего пароля пользователя вы снова сможете попасть на ваш графический рабочий стол и снова запустить 1с.
Грустно, но на такое поведение 1с, есть пока неизвестные мне причины. Спасибо

Автор: TipsyKID 12.05.20, 9:43

Пробовали установить привилегированный режим ?
Пробовали отключить механизм защиты от опасных действий? (добавили в 8.3.9)

Автор: uanr81 12.05.20, 10:29

sava1 @ Сегодня, 10:03 * ,
Молчит. Честно говоря мне представляется он как мой журнал, и пока я туда чего нибудь не напишу - там ничего и не появляется. (ну кроме аунтификации, сохранения базы и всего остального что там не должно сохраняться)



TipsyKID @ Сегодня, 10:43 * ,
Даже пробовал и вообще без пользователей. Монитор ламповый, после нажатия кнопки запуска процедуры - хлопок. Даже посещает опасение за монитор!!!

uanr81 @ Сегодня, 10:49 * ,
Интересно, что если указывать допустимые имена для текущего пользователя, тогда и отрабатывает механизм повышения привелегий над файлами. Но какие повышения привилегии, если файлы и так этого пользователя. Короче вообще не понятно!

TipsyKID @ Сегодня, 10:43 * ,

Цитата
Пробовали отключить механизм защиты от опасных действий?


Цитата
Доступность:
Сервер, толстый клиент, внешнее соединение.


Чтобы не быть голословным ниже приведу текст команды с которой запускаю НачатьЗапускПриложения(). В сценарии оборачиваются команды в "script " для захвата вывода терминала и помещения его в файл отчет для последующего его чтения и вывода пользователю в сообщении пользователю. В данном случае, я преднамеренно указываю недопустимое расположение этого файла (/opt/otv).

Цитата
script -qc 'bash <<-"heredoc"
echo "Смена прав на ключ СА /tmp/v8_5aOuw6_7/files/keyCa1"
chmod 600 "/tmp/v8_5aOuw6_7/files/keyCa1"
if [ $? -eq 0 ]; then
echo "Изменены права на ключ СА /tmp/v8_5aOuw6_7/files/keyCa1"
else
echo "Ошибка при попытки смены права на ключ СА /tmp/v8_5aOuw6_7/files/keyCa1"
fi
echo "Издание сертификата ключа демона /tmp/v8_5aOuw6_7/files/key1-cert.pub"
ssh-keygen -s "/tmp/v8_5aOuw6_7/files/keyCa1" -I srt_dmn_sshd_0004_0002 -h -n fd87:f221:3934:0000:0230:4fff:fe67:caf2,192.168.001.201 -z 1205201113111 /tmp/v8_5aOuw6_7/files/key1.pub
if [ $? -eq 0 ]; then
echo "Издан сертификат ключа демона /tmp/v8_5aOuw6_7/files/key1-cert.pub"
echo "Содержимое изданного сертификата"
echo "##########################################################"
ssh-keygen -L -f "/tmp/v8_5aOuw6_7/files/key1-cert.pub"
echo "##########################################################"
else
echo "Ошибка при попытки издать сертификат на ключ демона /tmp/v8_5aOuw6_7/files/key1.pub"
fi
echo "Смена прав на ключ СА /tmp/v8_5aOuw6_7/files/keyCa2"
chmod 600 "/tmp/v8_5aOuw6_7/files/keyCa2"
if [ $? -eq 0 ]; then
echo "Изменены права на ключ СА /tmp/v8_5aOuw6_7/files/keyCa2"
else
echo "Ошибка при попытки смены права на ключ СА /tmp/v8_5aOuw6_7/files/keyCa2"
fi
echo "Издание сертификата ключа демона /tmp/v8_5aOuw6_7/files/key2-cert.pub"
ssh-keygen -s "/tmp/v8_5aOuw6_7/files/keyCa2" -I srt_dmn_sshd_0003_0005 -h -n fd87:f221:3934:0000:0230:4fff:fe67:caf2,192.168.001.201 -z 1205201113111 /tmp/v8_5aOuw6_7/files/key2.pub
if [ $? -eq 0 ]; then
echo "Издан сертификат ключа демона /tmp/v8_5aOuw6_7/files/key2-cert.pub"
echo "Содержимое изданного сертификата"
echo "##########################################################"
ssh-keygen -L -f "/tmp/v8_5aOuw6_7/files/key2-cert.pub"
echo "##########################################################"
else
echo "Ошибка при попытки издать сертификат на ключ демона /tmp/v8_5aOuw6_7/files/key2.pub"
fi
echo "Смена прав на ключ СА /tmp/v8_5aOuw6_7/files/keyCa3"
chmod 600 "/tmp/v8_5aOuw6_7/files/keyCa3"
if [ $? -eq 0 ]; then
echo "Изменены права на ключ СА /tmp/v8_5aOuw6_7/files/keyCa3"
else
echo "Ошибка при попытки смены права на ключ СА /tmp/v8_5aOuw6_7/files/keyCa3"
fi
echo "Издание сертификата ключа демона /tmp/v8_5aOuw6_7/files/key3-cert.pub"
ssh-keygen -s "/tmp/v8_5aOuw6_7/files/keyCa3" -I srt_dmn_sshd_0002_0005 -h -n fd87:f221:3934:0000:0230:4fff:fe67:caf2,192.168.001.201 -z 1205201113111 /tmp/v8_5aOuw6_7/files/key3.pub
if [ $? -eq 0 ]; then
echo "Издан сертификат ключа демона /tmp/v8_5aOuw6_7/files/key3-cert.pub"
echo "Содержимое изданного сертификата"
echo "##########################################################"
ssh-keygen -L -f "/tmp/v8_5aOuw6_7/files/key3-cert.pub"
echo "##########################################################"
else
echo "Ошибка при попытки издать сертификат на ключ демона /tmp/v8_5aOuw6_7/files/key3.pub"
fi
echo "Смена прав на ключ СА /tmp/v8_5aOuw6_7/files/keyCa4"
chmod 600 "/tmp/v8_5aOuw6_7/files/keyCa4"
if [ $? -eq 0 ]; then
echo "Изменены права на ключ СА /tmp/v8_5aOuw6_7/files/keyCa4"
else
echo "Ошибка при попытки смены права на ключ СА /tmp/v8_5aOuw6_7/files/keyCa4"
fi
echo "Издание сертификата ключа демона /tmp/v8_5aOuw6_7/files/key4-cert.pub"
ssh-keygen -s "/tmp/v8_5aOuw6_7/files/keyCa4" -I srt_dmn_sshd_0004_0003 -h -n fd87:f221:3934:0000:0230:4fff:fe67:caf2,192.168.001.201 -z 1205201113111 /tmp/v8_5aOuw6_7/files/key4.pub
if [ $? -eq 0 ]; then
echo "Издан сертификат ключа демона /tmp/v8_5aOuw6_7/files/key4-cert.pub"
echo "Содержимое изданного сертификата"
echo "##########################################################"
ssh-keygen -L -f "/tmp/v8_5aOuw6_7/files/key4-cert.pub"
echo "##########################################################"
else
echo "Ошибка при попытки издать сертификат на ключ демона /tmp/v8_5aOuw6_7/files/key4.pub"
fi
echo "Смена прав на ключ СА /tmp/v8_5aOuw6_7/files/keyCa5"
chmod 600 "/tmp/v8_5aOuw6_7/files/keyCa5"
if [ $? -eq 0 ]; then
echo "Изменены права на ключ СА /tmp/v8_5aOuw6_7/files/keyCa5"
else
echo "Ошибка при попытки смены права на ключ СА /tmp/v8_5aOuw6_7/files/keyCa5"
fi
echo "Издание сертификата ключа демона /tmp/v8_5aOuw6_7/files/key5-cert.pub"
ssh-keygen -s "/tmp/v8_5aOuw6_7/files/keyCa5" -I srt_dmn_sshd_0001_0002 -h -n fd87:f221:3934:0000:0230:4fff:fe67:caf2,192.168.001.201 -z 1205201113111 /tmp/v8_5aOuw6_7/files/key5.pub
if [ $? -eq 0 ]; then
echo "Издан сертификат ключа демона /tmp/v8_5aOuw6_7/files/key5-cert.pub"
echo "Содержимое изданного сертификата"
echo "##########################################################"
ssh-keygen -L -f "/tmp/v8_5aOuw6_7/files/key5-cert.pub"
echo "##########################################################"
else
echo "Ошибка при попытки издать сертификат на ключ демона /tmp/v8_5aOuw6_7/files/key5.pub"
fi
exit 0
heredoc
' /opt/otv


Вот что выводит командный интерпритатор в этом случае:

Цитата
script: невозможно открыть /opt/otv: Отказано в доступе


и никаких вспышек!!!

Автор: sava1 12.05.20, 10:51

Цитата(uanr81 @ 12.05.20, 0:12) *
загорается черный экран, 1с слетает и появляется приглашение для входа пользователя в графическую сессию.


так при чем здесь 1с , если Х валится ?
А бунта что пишет ?

Автор: uanr81 13.05.20, 10:07

sava1 @ Вчера, 11:51 * ,
О том и речь, 1с сносит X. А Ubuntu просит снова войти в графическую сессию, где 1с как не бывало. Причем если был открыт браузер, открываются все раннее открытые окна. 1С не причем, ткнул кнопку и переписала конфигурацию веб сервера. Зато теперь JAVA нужно прикрутить на тот убогий виртуальный сервер, чтобы справку распечатать под лицензией 1С

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua