Начните всех других пользователей, которые зарегистрированы?

Я знаю, ввожу ли я w Я могу добраться, список всех вошел в систему пользователи.

Я также знаю это killall -u USERNAME удары все процессы, связанные с пользователем USERNAME (включая удар / их оболочка, их процесс sshd, и т.д.). Насколько я знаю, что это - то, как Вы, как предполагается, "ударяете пользователя от" своего сервера.

Однако я не знаю, как начать всех пользователей. Сделайте я имею к так или иначе w | cut -d' ' -f1 получить список пользователей (и затем так или иначе снять изоляцию с пустой строки и поля USER и Вашего собственного имени пользователя) и канал, которые к-u управляют для killall?

Или есть ли лучший путь?

3
задан 15 October 2017 в 23:55

2 ответа

Вы можете kill'm все с:

who | awk '$1 !~ /root/{ cmd="/sbin/pkill -KILL -u " $1; system(cmd)}'

необходимо быть корнем или использовать sudo.

Мышление, что уничтожение всех пользователей может быть опасным и повредить Вашу файловую систему. Плюс раздражают Ваших пользователей; что Вы ожидаете происходить, если один из них сделает что-то как mysql обслуживание, когда Вы уничтожаете их?

действительно необходимо использовать ps -ef | grep "user" или что-то подобное для осмотра их процессов.

, Почему бы не предупредить их вместо этого?

shutdown -h +10 "Server is going down 10 minutes. Save your work and logout."
2
ответ дан 1 December 2019 в 16:18

Записал этот сценарий также, который, кажется, работает:

#!/bin/bash

ME=$SUDO_USER

if [[ -z $ME ]] 
then
    echo "Must run script using sudo."
    exit 1
fi

who | while read NAME REST
do
    if [[ $NAME != $ME ]]
    then
        killall -u "${NAME}"
        if [[ "$?" = "0" ]]
        then
            echo "Disconnecting ${NAME} from the system..."
        else
            echo "Could not disconnect ${NAME} from the system..."
        fi
    fi
done
1
ответ дан 1 December 2019 в 16:18

Другие вопросы по тегам:

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