В моем случае у меня была блокировка RPM db, из-за которой yum зависал.
Запуск strace yum --verbose --noplugins info
застревал на:
open("/var/lib/rpm/.dbenv.lock", O_RDWR|O_CREAT, 0644) = 5
umask(022) = 022
fcntl(5, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}Killed
, поэтому, чтобы исправить это, я запускал как root:
rm /var/lib/rpm/.dbenv.lock
Совершенно другой подход :Создайте группу students
, дайте каждому учащемуся свою учетную запись с членством в группе в students
. Имейте сценарий, который восстанавливает заданный домашний каталог из шаблона в известное хорошее состояние, возможно, удаляя все лишние файлы точек. Расскажите учащимся об этом сценарии.
Если у вас несколько компьютеров, централизуйте этот подход (управление пользователями на одном центральном сервере )и используйте центральный файловый сервер для домашних каталогов учащихся, чтобы каждый учащийся получал один и тот же домашний каталог на любой машине..
Вместе с правильными (базовымиchmod
)разрешениями везде это гарантирует, что каждый учащийся сможет сеять хаос только в своем собственном домашнем каталоге и может восстановить его, когда он сломается, возможно, потеряв свои собственные настройки в этом процессе., так что в следующий раз они будут осторожнее.
Кстати, это очень стандартная настройка для многих пользователей кластера машин.
Установка атрибутов Immutable
и Undeletable
в dotfiles через ] chattr
должен помочь. См. man chattr
или запись в википедии для chattr
Не предотвращает полное изменение или удаление, так как пользователь может запустить chattr
, но это определенно делает его более неясным.