Допустимые специальные символы, разрешенные в имени пользователя CentOS 7?

Наконец-то я нашел способ добиться этого. Я хотел избежать файловых операций (tmpfs и подобных) по причинам производительности и задержки. Хитрость заключается в том, чтобы в двух аргументах команды dwdiff или wdiff указать, что выход команды is и was в пределах одной итерации. Подстановка процессов была моей рукой помощи:

while true; do p1=$p2; p2=$(clear; iotop -ob -n1); 
    dwdiff -y "\010" -1 -c <(echo "$p1") <(echo "$p2"); sleep 1; done

Команда -y "\010" удаляет пробел перед измененным словом, чтобы столбцы были выровнены. $p1 и $p2 используются для сохранения области видимости для подстановок процесса . Предоставление вывода в подстановках напрямую не сработало для меня. Я получил подсказку из этого сообщения.

Возможно, есть более простое решение, а я просто слишком усложнил задачу. Не стесняйтесь опубликовать его!

0
21.03.2019, 01:33
1 ответ

Обратите внимание, что useraddможет быть более строгим, чем то, что действительно допустимо в качестве имени пользователя. Правила относительно допустимого имени пользователя также могут измениться с помощью параметров конфигурации PAM и nsswitch.

Стандарт POSIX говорит, что имена пользователей должны быть из «переносимого набора символов имени файла», но первый символ не должен быть дефисом.

Переносимый набор символов имени файла представляет собой символы A -Z a -z 0 -9.-_

Обратите внимание, что это означает, что что-то вроде «1337» является допустимым именем пользователя в соответствии с этим стандартом, что может вызвать проблемы в других местах.

Итак, в целях безопасности я бы использовал такой шаблон, как [A -Za -z][A -Za -z0 -9. _-]+

1
28.01.2020, 03:54

Теги

Похожие вопросы