Как найти права sudo в сценарии оболочки

Используйте переменную окружения MANWIDTH:

MANWIDTH=60 man apropos > apropos.txt

В manpage для man 2.7.4 сказано:

Если $MANWIDTH установлен, его значение используется как длина строки, для которой должны быть отформатированы страницы руководства. Если оно не установлено, страницы руководства будут отформатированы с длиной строки, соответствующей текущему терминалу (используя значение $COLUMNS, ioctl(2), если он доступен, или возвращаясь к 80 символам, если ни то, ни другое не доступно).

То есть, это отменяет и COLUMNS, и значение ioctl. Я предпочитаю не полагаться на модификацию COLUMNS (хотя здесь это работает), поскольку его значение обновляется динамически при каждом изменении размера окна.

Использование MANWIDTH вместо COLUMNS также позволяет сделать изменение постоянным, добавив строку типа export MANWIDTH=60 в файл запуска оболочки.

0
17.12.2018, 10:49
1 ответ

Вариант RHEL passwdподдерживает параметр -S, но вы должны использовать его одновременно с одним именем пользователя.

Поэтому начните со списка пользователей из /etc/passwd, а затем используйте команду passwdдля всех из них по очереди.

#!/bin/bash
for user in $(cut -d: -f1 /etc/passwd); do
    read -r LOGIN PASS_TYPE LAST_CHANGE MIN_AGE MAX_AGE WARN_DAYS INACTIVE_DAYS CRYPT < <(passwd -S $user)
    # Rest of the processing
done

Обратите внимание, что я добавил дополнительную переменную с именем CRYPT для захвата криптографической информации с конца строки. Без этого переменная INACTIVE _DAYS не получает числовое значение.

0
28.01.2020, 04:07

Теги

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