Необходимо смочь использовать Липкий бит, чтобы позволить студентам только перезаписывать свои собственные файлы в общем каталоге.
Править: Не решает проблему, так как студенты смогли бы читать, другие студенты работают.
Вы могли использовать эту команду для обнаружения, в каких пользователей входят система и уничтожают их:
$ 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{}
Это - идея, но я думаю, что этому нужно дальнейшее улучшение.
Я делаю что-то подобное на своих серверах. Общая суть его - это
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.
grep -v root
вawk '! /root/ { ... }
или даже простоawk '$1 != "root"'
– tripleee 03.07.2013, 12:14