вход в систему root должен быть su вместо входа непосредственно в Redhat, как установить? [закрыто]

No he podido encontrar una solución sencilla. La forma más fácil que encontré para resolverlo fue usar una lista de "mantener" en lugar de una lista de "eliminar". Luego, podría agregar las últimas N copias de seguridad a la lista y las más nuevas del rango de cada semana durante M semanas. (En mi propio código, escrito hace algún tiempo, extendí a meses, trimestres y años. )Obviamente, habrá cierta superposición, pero como es una lista de "mantenimiento", eso no importa. Luego borras todo lo que no está en la lista -habiendo comprobado primero que la lista no está vacía.

#!/bin/bash
#
dirs=(
    backup-2018-01-12
    backup-2018-01-13
    backup-2018-01-14
    backup-2018-01-15
    backup-2018-01-16
    backup-2018-01-17
    backup-2018-01-18
    backup-2018-01-19
    backup-2018-01-20
    backup-2018-01-21
    backup-2018-01-22
    backup-2018-01-23
    backup-2018-01-24
    backup-2018-01-25
    backup-2018-01-26
    backup-2018-01-27
    backup-2018-01-28
    backup-2018-01-29
    backup-2018-01-30
    backup-2018-01-31
    backup-2018-02-01
    backup-2018-02-02
    backup-2018-02-03
    backup-2018-02-04
    backup-2018-02-05
    backup-2018-02-06
    backup-2018-02-07
    backup-2018-02-08
    backup-2018-02-09
    backup-2018-02-10
    backup-2018-02-11
    backup-2018-02-12
    backup-2018-02-13
    backup-2018-02-14
    backup-2018-02-15
)
declare -A list
declare -A keep


####################################################################################
# Go
#
prefix="backup-"
today=$(date +%Y-%m-%d)


# Populate list from set of directories
#
for item in "${dirs[@]}"
do
    list[$item]="$item"
done


# Build keep list from business criteria
#
for dayback in {0..6}
do
    dateback=$(date --date "$today - $dayback day" +%Y-%m-%d)
    keep[$prefix$dateback]=1
done

for weekback in {0..3}
do
    dateback1=$(date --date "$today - $weekback week" +%Y-%m-%d)
    dateback2=$(date --date "$today - $((weekback + 1)) week" +%Y-%m-%d)

    # Look for newest in range
    #
    newest=
    dateback="$dateback1"
    while [[ $dateback != $dateback2 ]]
    do
        [[ -n ${list[$prefix$dateback]} ]] && newest=$dateback && break
        dateback=$(date --date "$dateback - 1 day" +%Y-%m-%d)
    done

    [[ -n $newest ]] && keep[$prefix$newest]=1
done


# We now have a keep list, so delete anything not in that list
#
for item in "${list[@]}"
do
    [[ -n ${keep[$item]} ]] && echo "KEEP $item" || echo "DELETE $item"
done


# All done
#
exit 0

Cuando esté satisfecho, cambie o extienda las declaraciones de eco hacia el final para realizar la eliminación real.

-2
30.11.2016, 06:57
2 ответа

Вам необходимо отключить вход в систему root, вам необходимо очистить файл / etc / securetty , чтобы пользователь root не мог войти в систему через консоль для повторного входа, вот ссылка отключить вход в систему root в консоли .

0
28.01.2020, 05:18

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

См. Здесь:

http://www.howtogeek.com/howto/linux/security-tip-disable-root-ssh-login-on-linux/

-1
28.01.2020, 05:18

Теги

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