Смена владельца

Если операционная система предоставляет такую возможность, вы можете сменить владельца (пользователя и группу) для списка файлов (или файловых дескрипторов) при помощи функции chown. Пользователь и группа изменяются одновременно, и в обоих параметрах должны передаваться соответствующие числовые значения. Пример:

my $user = 1004;
my $group = 100;
chown $user, $group, glob "*.o";

А если вы предпочитаете использовать вместо числа имя пользователя (например, merlyn)? Легко. Вызовите функцию getpwnam, чтобы преобразовать имя пользователя в числовой код, а затем функцию getgrnam1, чтобы преобразовать название группы в число:

defined(my $user = getpwnam "merlyn") or die "bad user";
defined(my $group = getgrnam "users") or die "bad group";
chown $user, $group, glob "/home/merlyn/*";

Функция defined проверяет, что возвращаемое значение отлично от undef (возвращается в том случае, если код пользователя или группы недействителен). Функция chown возвращает количество файлов и задает переменную $! при обнаружении ошибки.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Альтернативный синтаксис глобов
Глобы
Дескрипторы каталогов
Изменение временных меток
Изменение разрешений

Вернуться в раздел: Perl / 12. Операции с каталогами