На самом деле не имеет значения, являются ли файлы в /bin
(или любом другом стандартном каталоге, где хранятся исполняемые файлы) доступными для записи пользователем root или нет. На сервере Linux, который я использую, они доступны для записи root, но на моей машине с OpenBSD это не так.
Пока они не доступны для записи ни группой, ни «другим»!
Нет проблем с безопасностью, например,
-rwxr-xr-x 1 root root 126584 Feb 18 2016 /bin/ls
Если кто-то хочет перезаписать его, он должен быть пользователем root, а если он root
и перезаписать его, то он либо
- установка новой версии или
- неуклюжий или
- злоумышленник с правами root уже .
Еще одна вещь, которую следует учитывать, - это то, что root может записывать в файл независимо от того, защищен он от записи или нет, потому что ... root.
Также обратите внимание, что «скрипт» является исполняемым файлом настолько же, насколько и двоичный файл. Скрипт не должен быть доступным для записи «потому что это текстовый файл». Во всяком случае, он должен иметь такое же разрешение, как и другие исполняемые файлы в том же каталоге.
Не изменяйте права доступа ко всему сейчас! Это может привести к разного рода хаосам и может привести к путанице в работе менеджеров пакетов, которые могут проверить правильность установки разрешений. Это также может сделать систему уязвимой, если вы случайно неверно измените разрешения для критически важного приложения.
Просто предположите, что права доступа к исполняемым файлам установлены правильно, если только вы не найдете что-то, что выглядит действительно странно, и в этом случае вам, вероятно, следует обратиться к соответствующему сопровождающему пакета, чтобы проверить, а не начать что-то менять.
Из комментариев и в чате , был звонок для некоторой истории.
История разрешений для двоичных файлов в Linux - это не то, о чем я ничего не знаю. Можно предположить, что они просто унаследовали разрешения от каталога или просто от umask
Linux по умолчанию , но я действительно не знаю.
Что я знаю, так это то, что OpenBSD устанавливает двоичные файлы в базовой системе 1 с режимом разрешений 555 по умолчанию ( -r-xr-xr-x
). Это указывается во фрагменте Makefile, в /usr/share/mk/bsd.own.mk
котором установлено BINMODE
значение 555 (если оно уже не установлено). Это позже используется при установке исполняемых файлов во время make build
в /usr/src
.
Я просмотрел аннотированный журнал CVS для этого файла и обнаружил, что эта строка в файле не изменилась, поскольку она была импортирована из NetBSD в 1995 году.
В NetBSD файл был впервые помещен в CVS в 1993 году с BINMODE
значением 555.
Похоже, что в проекте FreeBSD использовался тот же файл, что и в NetBSD, по крайней мере с 1994 года , и при последующей фиксации в сообщении о фиксации добавляется подсказка о том, что старые файлы были из версии 4.4BSD дистрибутива программного обеспечения Berkeley.
Кроме того, CSRG в Беркли хранил источники в SCCS, но их хранилище доступно в форме Git на GitHub 2 . Файл , который мы даем на forencic здесь для пропитки , кажется, было совершено по Keith Бостик (или кто - то в непосредственной близости от него) в 1990 году.
Вот такая история. Если вы хотите почему , тогда, я полагаю, нам придется спросить Кейта. Я как бы надеялся увидеть сообщение о фиксации изменений, говорящее « это должно быть 555, потому что ... », но нет.
1 Системы BSD более строго разделены на «базовую систему» и «сторонние пакеты» (порты / пакеты), чем Linux. Базовая система представляет собой единое целое, которое предоставляет полный набор средств для запуска операционной системы, в то время как порты или пакеты рассматриваются как «локальное программное обеспечение» и устанавливаются под ним /usr/local
.
2 Также доступно более полное GitHub-хранилище версий Unix, начиная с 70-х годов .
root
есть разрешение на запись в двоичный файл? Если ничего другого, это поможет при обновлении этого пакета.