удалите многочисленных пользователей

Вы можете напрямую EVAL Это:

eval "$(grep -P '^\s*\w+=' config.sh)" 
#quotes needed if you want the full content of the file (including newlines etc.)

Sourcing по существу так же, как:

eval "$(cat file)"   

примечание, однако, что люди могут выполнять все Kinz Codez в Правая сторона равного знака:

a=$(evil_code_here)
b=`evil_code_here`
c="something" evil_code_here
#etc.

Вам нужен лучший фильтр.

-121--53107-

У вас есть неtermined , если цикла. Добавьте Fi для этого , если LOOP.

if [[ ($month == 9) && ($year == 1752) && ( $day -gt 2) && $day -le 14  ]] 

После добавления Fi , когда я запускаю скрипт, это то, что я получаю как вывод.

chkdate 1342 1 21
valid date
chkdate 13as 1 21
Usage: chkdate year month day
1
05.12.2014, 15:42
2 ответа

Вы можете сделать это так:

root@host# lastlog -b Num_Days_Since_Last_Login | egrep -v "^Username|Never logged in" | awk '{print $1}' | xargs -i userdel {}

Где num_days_since_last_login - это целое число дней с момента последнего входа в систему ...

0
28.01.2020, 01:48

Полное решение :

#!/bin/bash

maxdate=$(date -d "$1" +%s) || exit 1
daysdate=$((($(date +%s)-maxdate)/(3600*24)))

LANG=C lastlog -b $daysdate -u 1000- |
    awk 'NR>1{print $1}' |
    xargs -n1 echo userdel

Проверьте его и удалите echo, чтобы сделать это forReal™. Пример использования :

./script.sh 'Fri Dec  5 17:00:06 CET 2013'
0
28.01.2020, 01:48

Теги

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