В Perl вы можете использовать функцию readlink()
, чтобы узнать назначение символической ссылки.
Вы также можете использовать функцию lstat()
для чтения разрешений символической ссылки (в отличие от stat()
, которая будет считывать подробности файла, на который указывает символическая ссылка).
Фактически установка владельца для новой символической ссылки не может быть выполнена без дополнительной помощи, поскольку Perl не раскрывает системный вызов lchown()
. Для этого вы можете использовать модуль Perl Lchown
из CPAN.
При условии достаточных прав доступа (nb: непроверенный код)
use Lchown;
my $old_link = 'path to the symlink';
my $new_link = 'path to the copy';
my $dst = readlink($old_link);
my @stat = lstat($old_link);
symlink $dst, $new_link;
lchown $stat[4], $stat[5], $new_link; # set UID and GID from the lstat() results
Вам не нужно беспокоиться о разрешениях на символическую ссылку - они всегда отображаются как -rwxrwxrwx