Re: Question about profile.d scripts definition in Spec file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02.08.2015 23:15, Michael Schwendt wrote:
> On Sun, 2 Aug 2015 16:29:06 +0200, Marcin Haba wrote:
> 
>>>> A) if a shell script can be treated as configuration file?
>>>
>>> Certainly. It's a cheap way to set a program's runtime configuration
>>> instead of implementing a full config file loader/parser.
>>
>> My image of configuration files is that they are files for read/write
>> purpose by design, because they enables _configure_ something
>> (application, service, single program, script...whatever). If they are
>> dedicated only for reading then from my point of view they lose
>> "configuration" meaning (something like WORM storage ;-) ).
> 
> Why would you say that?

Hello Michael,

I trying to express my opinion about my understanding 'configuration
files' meaning.

> There are read-only config files to set the system-wide default for
> everyone. The program reads them first before looking for user's local
> config files to override the defaults. The program would never write
> the system-wide file file in /etc, but at most the user's local file.

In my opinion that this type of files can be classified as pre-defined
settings files, not configuration files. In any case, it looks that we
have different understanding configuration files and it causes cross
over our opinions.

I think also that better could be set the environment variables values
in /etc/defaults/ and use these values by shell scripts instead using
hard-coded values in shell scripts.

Coming back to profile.d sample, when somebody try to modify profile.d
file marked as %config [not %config(noreplace)] then after upgrade
package with new profile.d file version, the file will be overwritten
and user will lose introduced changes.

It seems that all this situation uncovers bigger problem :-)

> And in general, whether a program can write its own config files is purely
> a question of design. Clearly, over the years there have been programs that
> only read config files somebody [or some tool] can create.
> 
> /etc/bashrc, /etc/profile are examples of %config files where the file
> format is shell language code to be interpreted by a shell.
<cut>
>> However I believe that exist some tools or libraries that can do this
>> content analyze for rpmlint.
> 
> What would be the benefit?  rpmlint cannot get it 100% right
> anyway. There could be corner-cases, where a config file gets executed
> instead of being "sourced" like a shell include file.

Yes, rpmlint cannot get it 100% right, but it can report potential
executable files more accurate. If something can offload person, that
for example do review request, from manual checking content of files,
why not use it?

>>> It's some sort of white-list to assume that files in /etc meant to be
>>> executed (such as initscripts related files) are not configuration
>>> files in any way. Admin may decide to edit such executables nevertheless
>>> (for reasons unknown), but the next update would overwrite the changes.
>>
>> Good to know that mentioned white-list exists. Could you indicate me
>> where can I find this white-list?
> 
> With "some sort of white-list" I mean the simplification -- the
> simplified assumption -- that files with execute permission are
> believed to be executables and not configuration files. And vice
> versa. Real configuration files being marked executable are believed
> to be mistakes.

OK. Thanks for clarify.

Best regards.
Marcin Haba

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux