Шаблон *.gz
("*.gz"
)необходимо заключить в кавычки, если текущий каталог содержит файлы.gz, иначе оболочка расширит шаблон до того, как его увидит tar.
Вам также потребуется добавить z
в список аргументов, если вы хотите, чтобы tar создавал gzip-архив.
Чтобы определить umask пользователя в данный момент времени, вы можете просто запустить команду umask
от имени этого пользователя. Сценарий, который вы указали в вопросе, извлекает список пользователей из файла /etc/passwd
, а затем последовательно запускает команду umask
для каждого из них. Но у него есть некоторые проблемы, не последняя из которых заключается в том, что он будет зависать в ожидании пароля, если он запущен от имени пользователя, отличного от -root.
Пользователь может изменить свою umask в любое время (на самом деле, у пользователя даже нет umask, umask зависит -от процесса ), так что вам не следует быть в зависимости от этого, чтобы быть одинаковым каждый раз. Если вам нужно знать, какой umask у пользователя при запуске сценария оболочки, просто добавьте команду umask
в этот сценарий оболочки. Или просто полностью игнорируйте umask и chmod
каталог в любом режиме, который вы хотите.