Ядра Unix отслеживают, какого каталога каждый процесс имеет для рабочего каталога. Можно доказать это cd'ing в смонтированный объем, и затем, как корень, делая a umount
на точке монтирования. Вы получите некоторое сообщение о том, как устройство занято.
И ясно, современные оболочки имеют рабочий каталог, они говорят, что имеют, иначе программы, которые являются детьми оболочки (C, Python или иначе) не открыли бы корректный файл при предоставлении относительного пути на командной строке.
Но современные оболочки (ksh, удар, zsh, возможно, другие) играют в игры с рабочим каталогом. Можно доказать это путем создания дерева каталогов, которое имеет символьную ссылку где-нибудь в середине уровней:
% mkdir a
% cd a
% mkdir b.orig
% ln -s b.orig b
% mkdir b.orig/c
% cd ..
% cd a/b/c
% pwd
/home/bediger/a/b/c
Это - все с zsh. Это следует, символьная ссылка создают резервную копию дерева, где, если это просто работало, это - путь с помощью ".." каталоги, это нашло бы a/b.orig/c
Можно также использовать енота, если сертификат используется для аутентификации.
Конфигурация /etc/racoon/racoon.conf
# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
path script "/etc/racoon/scripts";
sainfo anonymous
{
lifetime time 1 hour ;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
compression_algorithm deflate ;
}
remote ???.???.???.???
{
exchange_mode main;
my_identifier asn1dn;
certificate_type x509 "client.crt" "client.key";
ca_type x509 "ca.crt";
mode_cfg on;
script "p1_up_down" phase1_up;
script "p1_up_down" phase1_down;
proposal
{
encryption_algorithm 3des;
hash_algorithm md5;
authentication_method xauth_rsa_client;
dh_group modp1024;
}
}