Проверка прав на файл профиля в домашнем каталоге: должно ли это быть сделано?

Скажем, я реализую язык программирования, который имеет интерактивный режим, и этот интерактивный режим считывает файл ~/.foo_rc в домашнем каталоге пользователя. Файл содержит код на этом языке, который можно использовать для настройки некоторых параметров. При чтении этого файла язык не изолирован; файл может делать «что угодно».

Должен ли я беспокоиться о выполнении проверки прав на файл? Подобно:

 $ foo -i Not reading ~/.foo_rc because it is world-writable, you goof! PS you don't even own it; someone else put it there. > _ 

Я смотрю на источник Bash, и он не беспокоится о проверках разрешений для ~/.bash_profile (кроме того, что он существует и читается, предпосылки для чего-либо с ним вообще).

[Обновить]

После рассмотрения ответа триггера я выполнил следующую проверку файла:

  • Если файл не принадлежит действующему идентификатору пользователя вызывающего, то он не является безопасным.

  • Если файл доступен для записи другим, тогда он не защищен.

  • Если файл доступен для записи группе владельца, тогда он небезопасен, если в группу входят пользователи, отличные от вызывающего. (Т. Е. Группа должна быть пустой или иметь вызывающего абонента как своего единственного члена).

  • В противном случае он считается безопасным.

Обратите внимание, что групповая проверка не делает никаких предположений о каких-либо соответствиях между числовыми идентификаторами пользователя и идентификаторами группы или их именами; он основан на проверке того, что имя пользователя указано как единственный член.

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

One Solution collect form web for “Проверка прав на файл профиля в домашнем каталоге: должно ли это быть сделано?”

Разумный и осмотрительный, при условии, что есть четкие предупреждения о том, что происходит с файлом, и почему, поэтому пользователь может исправить проблему с разрешениями. Вероятно, bash датируется более доверчивым (и шутящим) днем. Обратите внимание, что пользовательские файлы могут быть законными для записи на группы, если на сайте есть политика каждого пользователя, входящего в группу, в которой находится только этот пользователь, иначе нет.

(Проверка родительского каталога также может быть разумной, чтобы обнаружить chmod 777 $HOME goofs.)

  • как дифференцировать ошибку, возвращаемую при чтении, и для EOF в сценарии оболочки
  • Обратная сторона `tree` - восстанавливает структуру файлов и каталогов из содержимого текстового файла?
  • ls colors: почему некоторые из моих шрифтов черные, а другие - зеленые на выходе ls
  • Как открытые файлы ведут себя в системах Linux?
  • readlink -f не работает с несколькими файлами
  • Как я рекурсивно устанавливаю атрибут, созданный датой, для атрибута с измененной датой в NTFS-3G?
  • Как навсегда избавиться от папки, которая продолжает возвращаться при перезагрузке
  • найти последний файл с датой и датой и использовать sed
  • Заменить или изменить содержимое файла одним выстрелом
  • архивные файлы и каталоги перед передачей
  • Преобразование идентичных файлов в hardlinks
  • Проверить, был ли файл изменен после даты в имени файла
  • Linux и Unix - лучшая ОС в мире.