Я знаю, это может показаться странным, но мне нужно разрешить запись в определенный файл только сценариям.
Файл принадлежит пользователю root, а у некоторых пользователей есть доступ sudo или root. Иногда они редактируют файл вручную, но это неправильно, потому что есть скрипты, которые редактируют файл правильно (а такие пользователи делают это неправильно).
Итак, я бы хотел, чтобы только эти сценарии имели право редактировать файл, в то время как любой пользователь не может редактировать, а только читать этот файл.
Возможно ли такое сделать? Я знаю, что это глупо, потому что у них есть права администратора, но, по крайней мере, я хотел бы усложнить редактирование файлов вручную ... Сценарии, конечно, могут быть изменены, поэтому, если возможно получить сценарий -only access token ", который предоставляет доступ на запись к такому файлу, скрипты могут быть изменены соответствующим образом.
Поскольку у ваших «некоторых пользователей» есть sudo или root-доступ к машине, это невозможно. Потому что все, что вы делаете как root, может им отменить. Итак, единственное, что вы можете сделать, - это приписывать. Таким образом, им трудно изменить файлы, но все же это не полностью доказано по той же причине, что я упомянул в первом предложении.
Используя следующую команду, вы можете установить атрибуты для файла:
chattr +i /path/to/file
где + я имею в виду неизменный. Таким образом, никто не может редактировать файл без удаления атрибута. Итак, в вашем сценарии вам нравится следующее:
...
chattr -i /path/to/file # remove the immutable attribute of the file at the beginning of your script
...
...
...
...
chattr +i /path/to/file # attribute the file at the end of your script
Примеры :
Если у них есть root-доступ, все ставки будут в значительной степени невыгодными ... в зависимости от того, насколько они подкованы. Один уродливый способ - установить неизменный бит в вашем файле. Пока этот атрибут установлен, его нельзя будет изменить. Затем измените свои сценарии, чтобы удалить этот атрибут перед обновлением файла, а затем установите его обратно. Надеюсь, ваши пользователи не заметят этот атрибут, и их попытки редактирования будут тщетными.
И, конечно же, самое важное - это обучение пользователей. Не стоит запрещать молотки, потому что идиоты продолжают бить себя по пальцам;)
Пусть скрипт сделает первую строку файла
#### WARNING: THIS FILE IS GENERATED AUTOMATICALLY. DO NOT EDIT BY HAND
Как отмечали другие, если у них есть root, вы не можете их остановить.