Как указано в комментариях, первоначальный ответ был несколько неясным.
Владелец файла всегда может изменить разрешения любого файла, которым он владеет (в то время как root может сделать это для всех существующих файлов).
Если вы обычный пользователь, это зависит от того, как вы пытаетесь изменить read-only-файл:
Если вы являетесь пользователем root, вы можете перезаписывать и изменять любой файл, но программа vi будет учитывать разрешение только для чтения и попросит подтверждения.
Файл /etc/sudoers всегда должен изменяться командой "visudo", которая открывает содержимое реального файла во временном файле и делает несколько проверок перед сохранением изменений. Как пользователь root-User изменения могут быть записаны, несмотря на права только для чтения.
Sawfish управляет своими меню с помощью сопутствующей программы sawfish-menu
. Вы можете использовать эту программу, даже если вы не используете Sawfish в качестве оконного менеджера. Протокол между sawfish и sawfish-menu, похоже, нигде не задокументирован; он вдохновлен форматом спецификации меню в самом Sawfish.
echo '(popup-menu (("_toplevel" 0) ("_submenu" ("_foo" 1) () ("_bar" 2))))' |
/usr/lib/sawfish/1.5.3/x86_64-pc-linux-gnu/sawfish-menu
sawfish-menu
печатает 0
, если пользователь выбирает «верхний уровень» и т. Д. Вы можете указать строки (в двойных кавычках или даже без кавычек, если они действительные идентификаторы Lisp) вместо номера для записей. Если пользователь прерывает работу (например, нажатием Esc ), то вывод будет ()
.
Вот краткое изложение синтаксиса ввода sawfish-menu
.
(всплывающее меню
и закончите )
. (« ТЕКСТ » ВЫХОД )
, где ТЕКСТ - это текст записи, а ВЫХОД - это то, что программа печатает, если выбран этот пункт меню.
(check. T)
, например ("Фу" 42 (чек. Т))
. (группа. ЧТО-ТО ) (проверьте t)
. Только одна запись в данной группе может иметь кнопку. (нечувствительность. T)
. (« ТЕКСТ » ВХОД …)
. ()
. Очевидно, не стоит ожидать, что люди установят эту утилиту. Обычно он не упаковывается отдельно от Sawfish, но на самом деле ему ничего не нужно от самого Sawfish; это сценарий rep, rep - это диалект Лиспа, на котором написан Sawfish (и в основном ничего больше). В Debian вам нужен пакет rep-gtk
для запуска sawfish -menu
плюс сам скрипт.