Обычно:
они перезаписываемы владельцем (поддержать /bin
, /usr/bin
, ...)
они исполняемый файл и читаемый всеми остальными
Но Ваш вопрос должен вместо этого быть:
кто должен смочь изменить каталог?
кто должен смочь считать содержание и выполнить двоичные файлы?
После того как Вы отвечаете на эти вопросы, полномочия просты.
Пример:
$ ls -ld /bin /usr/bin /usr/local/bin ${HOME}/bin
drwxr-xr-x 8 corti corti 272 Apr 11 2011 /Users/corti/bin
drwxr-xr-x 39 root wheel 1326 Jul 21 19:37 /bin
drwxr-xr-x 948 root admin 32232 Oct 10 08:36 /opt/local/bin/
drwxr-xr-x 1205 root wheel 40970 Oct 5 09:01 /usr/bin
Отказ сегментации является сигналом, если Вы не поймаете это затем, то Ваша программа будет завершена, и Ваша оболочка распечатает это к своему stderr (а не stderr Вашей программы).
Или для Вашей программы или для оболочки возможно принять определенные меры, когда это происходит, или программой, ловя сигнал или Вашей оболочкой, захватывающей сигнал SIGCHILD и затем проверяющей статус выхода Вашего ребенка.
“Сообщение” отказа сегментации печатается к stderr, но это - стандартная погрешность оболочки, не стандартная погрешность программы. Оболочка печатает это сообщение, когда это обнаруживает, что программа завершилась из-за сигнала.
Можно заставить сообщение замолчать путем перенаправления stderr вокруг части сценария оболочки, который запускает программу:
{ ./code; } >&log
help trap
– Carlos Campderrós 30.10.2012, 10:31trap
управляйте сигналами прерываний, отправленными в оболочку. Таким образом, это не будет работать для ловли того, отправляемого в программу. – derobert 31.10.2012, 13:36