[syslog-ng] [Bug 42] capabilities, chown, chmod
bugzilla at bugzilla.balabit.com
bugzilla at bugzilla.balabit.com
Wed Apr 29 17:39:19 CEST 2009
https://bugzilla.balabit.com/show_bug.cgi?id=42
Balazs Scheidler <bazsi at balabit.hu> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--- Comment #2 from Balazs Scheidler <bazsi at balabit.hu> 2009-04-29 17:39:19 ---
(In reply to comment #0)
> Let's take a look at syslog-ng-3.0.1/src/affile.c lines 60-83
>
> 1. CAP_SYS_ADMIN is needed only for /proc/kmsg, it is added w/o check
> 2. CAP_DAC_READ_SEARCH should be added only if open fail with errno 13
> 2a. CAP_DAC_OVERRIDE should be added only if open fail with errno 13 and with CAP_DAC_READ_SEARCH set
well, I wouldn't want to complicate enabling those capabilities too much.
Currently those capabilities are only enabled for /proc/kmsg and nothing else.
(see the check for AFFILE_PRIVILEGED in affile_sd_new)
so the effects are already a quite limited, I wouldn't want to complicate matters by adding errno 13 checks.
> 3. fchown needs CAP_CHOWN unconditionaly
> 4. fchmod needs CAP_FOWNER if file owner != euid (root here)
I didn't know those. If these are needed for fchown/fchmod, do I need
CAP_DAC_OVERRIDE at all? I was enabling DAC_OVERRIDE to be able to
change owner/mode information, but as it seems that is not needed, right?
I've tested it and it does not seem to be needed, so I've removed DAC_OVERRIDE.
> 5. all caps should be restored
this was done:
if (privileged)
{
g_process_cap_restore(saved_caps);
}
however I've found one possible case when it wasn't disabled, thus I moved the 'save-caps' code a bit earlier.
>
> summary:
> - CAP_SYS_ADMIN and CAP_DAC_OVERRIDE are set always even if unnecessary, and permanently
no, this is not true.
> - owner, group and perm doesn't work
>
this should be fixed by this patch:
commit f96ae94df8abdc92402247682537404613db26b9
Author: Balazs Scheidler <bazsi at balabit.hu>
Date: Wed Apr 29 17:38:49 2009 +0200
[affile] fixed capability management around file opens (fixes: pub#42)
caps are always saved not just in case of "privileged" operation.
instead of using DAC_OVERRIDE use CAP_CHOWN and CAP_FOWNER for
changing file ownership.
Reported-By: Zbigniew Krzystolik
--
Configure bugmail: https://bugzilla.balabit.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the syslog-ng
mailing list