Уничтожьте пользовательские процессы на выходе из системы

Необходимо смочь использовать Липкий бит, чтобы позволить студентам только перезаписывать свои собственные файлы в общем каталоге.

Править: Не решает проблему, так как студенты смогли бы читать, другие студенты работают.

7
30.04.2013, 01:23
2 ответа

Вы могли использовать эту команду для обнаружения, в каких пользователей входят система и уничтожают их:

$ who | awk '{ printf ("%s",$1 "\n"); }' | \
        grep -v root | xargs -I {} -t pkill -u $1{}

Это должно было бы быть пропущено с тем, когда работать хотя, возможно:

$ ps -eaf | egrep -q [g]nome-session || who | \
            awk '{ printf ("%s",$1 "\n"); }' | \
            grep -v root | xargs -I {} -t pkill -u $1{}

Это - идея, но я думаю, что этому нужно дальнейшее улучшение.

0
27.01.2020, 20:20
  • 1
    я предполагаю Вас, хотел бы учесть grep -v root в awk '! /root/ { ... } или даже просто awk '$1 != "root"' –  tripleee 03.07.2013, 12:14

Я делаю что-то подобное на своих серверах. Общая суть его - это

1) Добавьте к /etc/pam.d/login у основания session объекты:

session optional pam_exec.so quiet /etc/pam_session.sh

2) Затем создайте /etc/pam_session.sh как (и chmod +x):

#!/bin/bash
[[ "$PAM_USER" == "root" ]] && exit 0

SESSION_COUNT="$(w -h "$PAM_USER" | wc -l)"

if (( SESSION_COUNT == 0 )) && [[ "$PAM_TYPE" == "close_session" ]]; then
  pkill -u "$PAM_USER"
fi

Если Вы хотите, Вы могли бы добавить что-то как sleep 5; pkill -9 -u "$PAM_USER" после pkill гарантировать, что это действительно мертво.

Это будет только вызвано, когда вход в систему окружит выход, таким образом, он влияние привычки автоматизировал системное действие. Однако, если Вы хотите быть еще более в безопасности, Вы могли бы добавить проверку на что-то как UID, являющийся больше, чем 1 000.

1
27.01.2020, 20:20

Теги

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