LINUX.ORG.RU
ФорумTalks

зачем в конфигах закомментировывают значения по-умолчанию?


0

0

Недавно в одном из xml-срачей против xml был аргумент вида «и как ты в своём xml-конфиге собираешься одной клавишей закомментировать значение, используемое по-умолчанию?»

Ну вот и в самом деле: открываю я тот же sshd_config - а там [почти]все параметры закомментированы. Зачем? Ведь несмотря на то, что они закомментированы, применяются именно значения, установленные в них. В итоге я, глядя на этот закомментированный параметр, могу даже не сразу понять: закомментировано значение, которое применяется сейчас (тогда зачем его зкамментировали?) или значение, рекомендуемое, но отличное от дефолтного (тогда почему дефолтное значение отличается от рекомендуемого?)

Надеюсь, понятно изложил суть вопроса )))

★★
Ответ на: комментарий от Quasar

Чтобы знать, что стоит по умолчанию. Так проще править конфиги.

Вопрос был зачем их закомментировывать? Зачем их указывать понятно и без того.

name_no ★★
() автор топика
Ответ на: комментарий от name_no

приходится кроме изменения значения ещё удалять лишний символ

А если бы не было этой строчки, пришлось бы сначала погуглить, а потом написать нужный параметр, еще и без ошибок.

Eddy_Em ☆☆☆☆☆
()
Ответ на: ЧЯДНТ? от ist76

ЧЯДНТ?

Мне так тоже проще править.

Чем же проще-то? Что проще исправить:

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0

или

Port 22
AddressFamily any
ListenAddress 0.0.0.0

name_no ★★
() автор топика
Ответ на: комментарий от Eddy_Em

А если бы не было этой строчки, пришлось бы сначала погуглить, а потом написать нужный параметр, еще и без ошибок.

ещё раз вопрос задам:

зачем в начале этой строчки вставляется символ комментария?

name_no ★★
() автор топика

Мне проще с комментариями - есть шаблон а это удобно. А текущий конфиг смотрю cat config | grep «^[^#]»

tux2002
()
Ответ на: комментарий от name_no

> Вопрос был зачем их закомментировывать?

Чтобы знать какие значения стоят по умолчанию, если параметров вообще не будет в конфиге. Подумать не?

Deleted
()

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

HighwayStar ★★★★★
()
Ответ на: комментарий от Deleted

Вопрос был зачем их закомментировывать?

Чтобы знать какие значения стоят по умолчанию, если параметров вообще не будет в конфиге. Подумать не?

это тебе бы подумать. Если это значение применяется - зачем его загораживать? Я понимаю, зачем оно написано в конфиге: чтоб его было видно. Вопрос - «почему оно закомментировано» если оно все равно применяется.

name_no ★★
() автор топика

закомментировывают

Что-что они с ними делают?

Xellos ★★★★★
()
Ответ на: комментарий от name_no

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

Deleted
()
Ответ на: комментарий от HighwayStar

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

не считаю этот аргумент весомым, если честно. На мой взгляд наличие закомментированного параметра вводит в заблуждение, и вред от этого гораздо сильнее, чем необходимость нажать на # вместо del

name_no ★★
() автор топика
Ответ на: комментарий от Deleted

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

вообще не будет в конфиге.

Ты наверно не понял. Параметр в конфиге ЕСТЬ. Но он закомментирован. Я выше привёл пример. Так вот, вопрос был: зачем он закомментирован.

name_no ★★
() автор топика
Ответ на: комментарий от name_no

> Ты наверно не понял.

Ты, наверное, кроме зумля ничего не видел и никогда конфиги не писал. Иногда у софта, который обладает большим количеством ручек настройки (например, тот же squid), бывает несколько файлов конфигурации. И иногда гораздо легче написать некоторые из них с нуля, поставив туда 10-20 строчек (оставив остальные «умолчательными»), чем просматривать и редактировать боольшую бороду с настройками.

Deleted
()
Ответ на: комментарий от Deleted

иногда гораздо легче

оставим вопрос об «иногда» и конфигах с убогим синтаксисом. Мне интересно про известные мне ssh*, wgetrc и т.п.

name_no ★★
() автор топика
Ответ на: комментарий от tux2002

Наверное не проще лезть в ман чтобы узнать имя параметра, если надо поменять его значение.

Я просто не понимаю, как наличие знака # помогает не лезть в ман? Например, если написать «Port 22» вместо «#Port 22» - что изменится?

name_no ★★
() автор топика

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

bender ★★★★★
()
Ответ на: комментарий от name_no

> оставим вопрос об «иногда» и конфигах с убогим синтаксисом.

Не стоит называть конфиг приложения, которое работает ОЧЕНЬ ХОРОШО убогим. Иначе хочется назвать убогим тебя.

Я просто не понимаю, как наличие знака # помогает не лезть в ман? Например, если написать «Port 22» вместо «#Port 22» - что изменится?

Почитай «Искусство программирования для UNIX» ESR'а, может, проникнешься.

Deleted
()
Ответ на: комментарий от HighwayStar

Поддерживаю. Всегда удобно иметь дефолтные значения.

По сабжу: ТС может и прав, но представь, что у тебя вообще нет конфига. Что теперь, проге не работать? А так, ты можешь изменить значения в конфиге, а можешь выкинуть его нафиг.

dragonfly
()
Ответ на: комментарий от bender

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

а разве не достаточно написать вот такое сообщение в начале файла?

name_no ★★
() автор топика
Ответ на: комментарий от dragonfly

представь, что у тебя вообще нет конфига.

это _севсем_ другой случай. Вопрос лишь о необходимости ставить # перед каждым параметром. Просто я неоднократно видел конфиги, в которых наоборот, закомментированы параметры, которые _не_по_дефолту_. Типа «если хотите изменить это поведение, раскомментируйте следующую строку» теперь глядя на закомментированные строки я не могу сразу понять: сейчас-то какое значение применяется? то, котрое закомментировано? Моя логика такая: если я поставил значение, а потом оно меня не удовлетворило, я его закомментирую. И в итоге закомментировано будет значение не по умолчанию Когда я вижу чужой конфиг, я не могу вот сразу определить, является ли закомментироанное значение тем, которое применяется в текущий момент

name_no ★★
() автор топика

Во~от это лень... Ну, если для тебя нажать клавишу - такое большое дело, то осиль регекспы.

Lighting ★★★★★
()
Ответ на: комментарий от Deleted

> Почитай «Искусство программирования для UNIX» ESR'а

Почему-то нет нигде в продаже...

Deleted
()
Ответ на: комментарий от Deleted

Иначе хочется назвать убогим тебя.

не надо на личности переходить.

Я просто не понимаю, как наличие знака # помогает не лезть в ман? Например, если написать «Port 22» вместо «#Port 22» - что изменится?

Почитай «Искусство программирования для UNIX» ESR'а, может, проникнешься.

отправили читать книжку вместо того, чтобы дать приемлемый ответ.

name_no ★★
() автор топика
Ответ на: комментарий от name_no

>> Чтобы знать, что стоит по умолчанию. Так проще править конфиги.

Вопрос был зачем их закомментировывать? Зачем их указывать понятно и без того.



Чтобы sshd их по новой не инициализировал.

//К.О.

ansi ★★★★
()
Ответ на: комментарий от name_no

«Port 22» вместо «#Port 22» - что изменится?

Изменится то, что ты без символа # не сможешь узнать, является ли этот параметр параметром по-умолчанию, или же это ты его изменил когда-то. То есть #Port 22 значит, что у тебя какая-то служба (т.е. ssh) по-умолчанию работает с 22м портом, а вот если бы было написано без #, и служба была бы не ssh, а какой-нибудь хитрой, ты бы не смог понять без гугления, по умолчанию этот порт используется, или нет.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

То есть #Port 22 значит, что у тебя какая-то служба (т.е. ssh) по-умолчанию работает с 22м портом

Не согласен. #Port 22 запросто может значить, что когда-то я его включил на этом порту, а потом переключил на дефолтный, закомментировав это установленное вручную значение, чтоб при желании вернуться на него.

name_no ★★
() автор топика
Ответ на: комментарий от name_no

> отправили читать книжку вместо того, чтобы дать приемлемый ответ.

Могу перепечатать часть книжки в пост. За отдельную плату.

Deleted
()
Ответ на: комментарий от name_no

а вот если у тебя значение раскомментировано, то ты можешь быть уверен в том, что если ты его удалишь, то программа будет продолжать подключаться к тому самому порту? - тут логика как раз в том, что если какой-то параметр раскомментирован, то у дистростроителя на это были веские причины (не устроило значение по умолчанию) и удаление этой строки чревато проблемами.

Если же значение изначально закомментировано, то оно с большой долей вероятности выполняет роль документации и содержит как раз дефолтное значение. Откуда разработчику знать каким образом тебе взбредет в голову менять умолчания? - ну допустим дефолтный порт 22. По твоей логике, в закомменитрованной строке должен стоять порт 23 (типа если вы хотите поменять значение по умолчанию) - а почему не 24? не 25? не 2870?

bender ★★★★★
()

> Зачем?

Так лучше.

Deleted
()
Ответ на: комментарий от dragonfly

Конфиг с закомментированными параметрами для программы == нет конфига вообще

я говорю не про точку зрения программы на наличие конфига. Предположим, что программа прекрасно работает, если создать пустой конфиг, удалить конфиг вообще или закомментировать в конфиге все параметры. Но зачем писать перед параметром, используемым по-умолчанию, символ комментария? независимо от наличия этого символа программа будет работать правильно. А я получаю сомнения в том, что программа использует именно то значение, которое написано после символа комментария. Зато если символ не ставить, я буду _точно_ знать, что именно это значение используется.

name_no ★★
() автор топика
Ответ на: комментарий от bender

Откуда разработчику знать каким образом тебе взбредет в голову менять умолчания?

/etc/samba/smb.conf.example:# Uncomment this if you want a guest account, you must add this to /etc/passwd

Вот в этом конфиге под комментарием прячется значение, которое не применяется по умолчанию.

и вот в этом:

/etc/ntp.conf:# to synchronize against, uncomment this line.

и вот в этом:

/etc/X11/xorg.conf.example:# Uncomment this to cause a core dump at the spot where a signal is

вот откуда мне знать про взятый наугад конфиг, применяется ли закомментирование значение по умолчанию или нет?

name_no ★★
() автор топика
Ответ на: комментарий от dragonfly

Обычно комментируются как раз дефолтные значения

в предыдущем комментарии я возразил на это утверждение. Могу добавить пример:

/etc/ssh/sshd_config

#PermitRootLogin no

вот это значение - оно такое по-умолчанию или это я закомментировал, чтобы разрешить руту логиниться?

name_no ★★
() автор топика
Ответ на: комментарий от bender

а вот если у тебя значение раскомментировано, то ты можешь быть уверен в том, что если ты его удалишь, то программа будет продолжать подключаться к тому самому порту?

если я раскомментирую значение, то я тоже не буду уверен, продолжит ли программа подключаться к тому же порту, к которому подключается сейчас. зато я _точно_ буду знать, к какому именно порту она подключается.

name_no ★★
() автор топика

А вот, например, существуют гуевые конфигурялки, которые прописывают установленные значения, но не трогают комментарии. Потом в случае косяка можно поправить руками.

abraziv_whiskey ★★★★★
()
Ответ на: комментарий от ansi

Чтобы sshd их по новой не инициализировал.

вот по этому поводу тоже есть возражения. Из позиции следует, что инициализация апарметров - это какая-то проблема. Получается, что если я настрою так, что большинство значений будет отличаться от дефолтных, то я влезу в проблему? Если инициализация - не проблема, то вопрос остаётся в силе - зачем там символ комментария.

name_no ★★
() автор топика
Ответ на: комментарий от abraziv_whiskey

А вот, например, существуют гуевые конфигурялки, которые прописывают установленные значения, но не трогают комментарии. Потом в случае косяка можно поправить руками.

вот это более или менее убедительный аргумент. Но мне кажется, что если кто-то правит конфиг руками, то доверять закомментированным значениям всё равно уже сложно. Кроме того, я не видел таких конфигурялок. Обычно etc-update выдаёт длиннющие диффы, состоящие почти только из одних удалённых комментариев, для конфигов, сконфигурированных гуёвыми конфигурялками ))))

name_no ★★
() автор топика
Ответ на: комментарий от Deleted

>Не стоит называть конфиг приложения, которое работает ОЧЕНЬ ХОРОШО убогим.

т.е. ты утверждаешь, что все приложения, которые работают очень хорошо обладают не убогими конфигами по самому факту своей крутости?

Deleted
()
Ответ на: комментарий от name_no

применяется ли закомментирование значение по умолчанию или нет

Допустим, у самбы в конфиге два обозначения для комментов - решка и точка с запятой. Разрабы решили, что параметры с дефолтными значениями будут комментиться первым способом, а примеры с произвольными значениями - вторым. Я считаю, это самый хороший пример. Смотришь в конфиг, и (если не потёр от большого ума) видишь, какие значения принимаются по умолчанию, и где ты наконфигурял по-своему. Чистый профит, ей-ей.

Xenesz ★★★★
()
Ответ на: комментарий от Deleted

Могу перепечатать часть книжки в пост

Не, не стоит. Я хочу докопаться до истины, а Вы не поняли суть вопроса. Ну то есть я понимаю, что Вы хотите сказать, но это ответ не на мой вопрос.

name_no ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.