Отправьте сообщения журнала в другое местоположение

Когда Вы вводите:

ssh-keygen -N password123\$ -f bobskeys

оболочка выполнит ssh-keygen с аргументами -N password123$ -f и bobskeys.

Если Вы хотите передать password123\$ как аргумент Вам нужен к одинарной кавычке он:

ssh-keygen -N 'password123\$' -f bobskeys

или обратная косая черта обратная косая черта:

ssh-keygen -N password123\\$ -f bobskeys

Иначе ssh-keygen процесс не будет видеть обратную косую черту.

3
01.03.2013, 16:21
1 ответ

Вы корректны, libc openlog() не позволяет Вам указать сокет, но это обычно только было бы полезно при необходимости в отдельном syslogd. (Сокет не является тем же как вещью как файл, который сообщения зарегистрированы к, конечно.)

logger значения по умолчанию к (в большинстве систем я думаю), user.notice, таким образом, если это регистрируется к корректному месту, необходимо сделать что-то вроде этого в C:

#include <syslog.h>
  ...
  openlog("myprog",LOG_PID,LOG_USER);
  syslog(LOG_INFO,"%s","my message...");

Или в жемчуге:

use Sys::Syslog qw(:DEFAULT setlogsock);
setlogsock 'unix';   
# setlogsock('unix','/opt/my_root/dev/log');

openlog("myprog","pid","user");
syslog("info","my message...");

Посмотрите Ваш openlog(3) и Sys::Syslog(3) страницы справочника для получения дополнительной информации о константах.

Если Вы действительно хотите зарегистрироваться к другому сокету, чем /dev/log можно сделать это легко в жемчуге со второй формой setlogsocket() как выше. Вы, возможно, должны использовать недавнее Sys::Syslog пакет, я видел, что он перестал работать с v0.17, когда путь указан.

Это немного tricker в C, Вы должны connect() к AF_UNIX сокет и write() к нему с корректным форматом сообщения. Я рекомендую считать источник для logger (функции myopenlog() и mysyslog()) в недавнем выходе util-linux-2.x версия.

На Linux (glibc) и FreeBSD путь это openlog() использование трудно кодируется (_PATH_LOG от /usr/include/syslog.h), я не знаю ни о каком способе изменить его во время выполнения (кроме chroot, или .so Внедрение DLL).

3
27.01.2020, 21:24
  • 1
    Спасибо за Ваш ответ. Мне нужен отдельный демон системного журнала действительно, потому что мы не можем настроить значение по умолчанию syslogd из системы. Моя идея состоит в том, чтобы запуститься, в моем пространстве пользователя, новый экземпляр демона (я могу выбрать между syslogd и системным-журналом-ng, оба установлены), и настройте вызов openlog для использования моего демона вместо этого по умолчанию (использование /opt/my_root/dev/log вместо этого /dev/log как _PATH_LOG). –  JoseLSegura 01.03.2013, 16:19
  • 2
    , обновленный. –  mr.spuratic 01.03.2013, 17:10
  • 3
    Спасибо за Ваше обновление, снова :-D. Я не могу полагать, что не думал о взятии источники регистратора!!! Спасибо за предложение. Я думаю, что предложу этот подход, создавая подобную системному журналу библиотеку, которая позволяет указывать такие опции, которые не позволяет standar libc. Спасибо за Вашу справку –  JoseLSegura 01.03.2013, 17:44

Теги

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