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

Скажем, я реализую язык программирования, который имеет интерактивный режим, и этот интерактивный режим считывает файл ~/.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 (кроме того, что он существует и читается, предпосылки для чего-либо с ним вообще).

[Обновить]

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

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

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

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

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

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

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

  • Существуют ли альтернативы для `dd`?
  • Относительно отдельного файла в несколько файлов в соответствии с разделом строк
  • grep возвращает «Бинарный файл (стандартный ввод) соответствует« при попытке найти строковый шаблон в файле
  • Существует ли такая команда, которая показывает пропускную способность сети и доступ к файлам запущенных процессов
  • Как навсегда избавиться от папки, которая продолжает возвращаться при перезагрузке
  • rhel - журналы изменений файлов
  • Предопределенная umask по заданному пути
  • Как вы пишете конкретные байты в файл?
  • One Solution collect form web for “Проверка прав на файл профиля в домашнем каталоге: должно ли это быть сделано?”

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

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

    Interesting Posts

    command-click git commit ID в терминале и взять его в github?

    Включение общих папок в SCO 5.0.7 на vmplayer

    Есть ли способ остановить остановку и через X секунд снова запустить систему?

    Почему бы нам не включить драйверы файловой системы в ядро, а не использовать Initrd / Initramfs

    Выполнить команду на нескольких хостах, но только команду печати, если она выполнена успешно?

    Как создать постоянную точку монтирования tmpfs при перезагрузке?

    Виртуальный eth-адаптер в конфигурации сети

    Использование auditd для захвата уведомлений об отказе в доступе

    Каковы ограничения длины оболочки bash для здесь-docs?

    Macbook Pro Retina 2015 Проблемы с Wi-Fi на Кали

    Как сделать wicd установленную маршрутизацию на основе dhcp?

    Почему голова; хвост в большом файле иногда занимает много времени, а иногда нет?

    Является ли коммит-выход гарантированным?

    Как удалить предварительно сконфигурированные зоны в firewalld

    Каков эффективный метод установки современного программного обеспечения на устаревшую производственную машину?

    Linux и Unix - лучшая ОС в мире.