Автор: 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С