Я хочу, чтобы срок действия учетной записи пользователя Linux истекал через 7 дней после входа пользователя в систему. Есть ли какое-либо решение, кроме специально написанного сценария, который проверяет и обновляет учетные записи пользователей?
Я уже смотрел chage
, /etc/login.defs
и т.д. Эти инструменты позволяют установить срок действия на основе текущей даты. Я не хочу, чтобы обратный отсчет срока действия начинался до тех пор, пока пользователь не войдет в систему в первый раз.
Я действительно думаю, что для этого вам понадобится немного скриптов. Вы можете упростить задачу, поместив специальный файл в домашний каталог пользователя при создании учетной записи, например. .firsttime - затем используйте это как флаг, вошел ли пользователь в систему.
Затем в общесистемном профиле входа вы проверяете наличие файла, если он там, вы можете затем коснуться файла в корневом каталоге с установленным липким битом и не выполнять (это будет для предотвращения пользователей увидев файл), а затем удалите исходный файл.
в /etc/profile.d добавлены три строки сценария, например
if [ -e ~/.firsttime ]
then
touch /tmp/firsttime/$USER
rm ~/.firsttime
fi
затем сценарий cron или ручной сценарий может установить срок действия для перечисленных учетных записей. Я бы поставил галочку, чтобы убедиться, что права собственности и имя файла совпадают, чтобы никто не поместил туда «корневой» файл.