«Заблокировать» один конкретный файл, чтобы ни я, ни root больше не имели к нему доступа

«Заблокировать» один конкретный файл, чтобы ни я, ни root больше не имели к нему доступа

Чтобы бороться с прокрастинацией, я редактирую свой /etc/hostsфайл, добавляя веб-сайты, которые тратят время, и указывая на них localhost. Однако плоть слаба, и я часто обнаруживаю, что отменяю свои изменения.

Я думал о следующем решении, но не знаю, возможно ли это технически.

Я бы попросил близкого друга прийти, создать новую учетную запись с надежным паролем, которого я не знаю, изменить владельца и права доступа к файлу /etc/hostsтак, чтобы только этот новый пользователь мог изменять этот файл, и чтобы яни кореньбольше не имею к нему доступа.

Вариант использования будет таким: я попрошу своего друга прийти до экзаменационного периода, он изменит файл и введет меры по блокировке прокрастинации, и в то время, когда мне нужно учиться, у меня нет возможности редактировать файл самостоятельно. После окончания экзаменационного периода я прошу его «разблокировать» файл, и я снова могу свободно просматривать его.

решение1

Вы можете заблокировать файл, чтобы даже пользователь root не мог его редактировать.

sudo chattr +i /etc/hosts

Прекратите читать этот ответ, пока не сдадите экзамены :)

Затем вы снова разблокируете файл, используя

sudo chattr -i /etc/hosts

решение2

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

решение3

Вы можете настроить другую учетную запись пользователя, которая является обычным пользователем рабочего стола, который не может использовать sudo. Затем попросите своего приятеля зайти и войти в систему под вашим именем в вашей существующей учетной записи, отредактировать файл /etc/hosts, затем сбросить пароль, не сообщая вам его, и выйти из системы.

Тогда вам придется использовать новую учетную запись, у которой нет прав на редактирование /etc/hosts.

Однако вам все равно придется проявить силу воли, чтобы не загружать систему с Live CD/USB.

решение4

В качестве альтернативы, в то же время, когда вы создаете свой /etc/hostsфайл, вы также можете редактировать /etc/sudoersфайл или просто удалить своего пользователя из adminгруппы. Сменить группу, вероятно, проще.

Вероятно, вам следует создать защиту, чтобы вы могли снова добавить себя в группу. Я предлагаю добавить что-то в /etc/rc.localили что-то в скрипт пробуждения (быстрее, чем делать полную перезагрузку).

Если произойдет худшее и вы окажетесь заблокированы, вы можете загрузиться в режиме восстановления (в grub) и использовать консоль root, чтобы вручную добавить своего пользователя обратно в adminгруппу.

Связанный контент