Системы Unix имеют тенденцию быть организованными с различными типами файлов, распространенных по различным каталогам. Например, исполняемые файлы обычно находятся в названных каталогах bin
(/bin
, /usr/bin
, /usr/local/bin
, …); исторически, bin
обозначавший за двоичный файл, потому что исполняемые файлы являются двоичными файлами (машинный код), но также могут быть сценарии. С тех пор существует несколько каталогов, которые содержат исполняемые файлы, и полезно добавить и удалить каталоги на лету (например, протестировать мультиисполняемое приложение, Вы временно добавляете его к пути поиска для исполняемых файлов), существует переменная среды для этого: PATH
. Когда Вы выполняете программу путем давания ее имени, оболочка ищет ее в каталогах, упомянутых в PATH
переменная (это - разделенный от двоеточия список каталогов).
Тот же механизм существует для других типов файлов, которые некоторая программа собирается искать по имени. Вот некоторые типичные PATH
- как переменные (отмечают, что пути в качестве примера, которые я даю, не точно, чему Вы найдете в своей системе, там' просто там давать общее представление).
PATH
: исполняемые файлы (например. /home/username/bin:/usr/local/bin:/usr/bin:/bin
).MANPATH
: страницы руководства (например. /usr/local/man:/usr/man
).LD_LIBRARY_PATH
: библиотеки собственного кода (на Linux, в дополнение к значению этой переменной, путь поиска обычно содержит /usr/local/lib
, /usr/lib
, /lib
и немногие другие). Имя LD
прибывает из динамического загрузчика, компонент системы, который загружает библиотеки в динамично связанные исполняемые файлы.PERL5LIB
: Библиотеки Perl (например. /usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl
).PYTHONPATH
: Библиотеки Python (например. /usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6
).TCLLIBPATH
: Библиотеки TCL (например. /usr/local/lib/tcltk:/usr/lib/tcltk
).Таким образом, если Ваш pkg.tcl
автономный исполняемый файл, дайте ему полномочия выполнения и отбросьте его где-нибудь в $PATH
. Если это - библиотека TCL, загруженная программой TCL, отбросьте его где-нибудь в $TCLLIBPATH
.
Чтобы позволить клиенту NTP говорить с сервером, можно использовать эти правила:
$ sudo iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
$ sudo iptables -A INPUT -p udp --sport 123 -j ACCEPT
Действовать как сервер NTP и принять соединения клиента:
$ sudo iptables -A INPUT -p udp --dport 123 -j ACCEPT
$ sudo iptables -A OUTPUT -p udp --sport 123 -j ACCEPT