Вы можете использовать sprintf
только для повторного -формата $1
.
Пр.
$ awk 'BEGIN{OFS=FS="|"} {$1 = sprintf("%-3s",$1)} 1' file
c1 |c2|c3|c4|c5
c6 |c7|c8|c9|c10
c11|c12|c13|c14|c15
useradd
не поддерживает установку значения umask
. Существует возможность переопределить UMASK
из /etc/login.defs
, но это относится только к разрешениям для домашнего каталога.
Так что я думаю, что нет никаких шансов сделать это с помощью одной (хорошо известной )команды.
Мне это не кажется разумным, но вы можете добавить код в общие файлы инициализации оболочки (, например. /etc/bash.bashrc
), который устанавливает umask
на основе разрешений домашнего каталога (или лучше, создает только один раз соответствующую запись в файле конфигурации пользователя ). Это, очевидно, не очень хорошая идея, если может случиться так, что переданное значение umask
более разрешающее, чем вы хотите, чтобы домашний каталог был.