Когда Вы вводите:
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
процесс не будет видеть обратную косую черту.
Вы корректны, 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).
syslogd
из системы. Моя идея состоит в том, чтобы запуститься, в моем пространстве пользователя, новый экземпляр демона (я могу выбрать между syslogd и системным-журналом-ng, оба установлены), и настройте вызов openlog для использования моего демона вместо этого по умолчанию (использование/opt/my_root/dev/log
вместо этого/dev/log
как_PATH_LOG
). – JoseLSegura 01.03.2013, 16:19