All of lore.kernel.org
 help / color / mirror / Atom feed
* improvement of setfiles man page
@ 2021-05-06  5:40 clime
  0 siblings, 0 replies; only message in thread
From: clime @ 2021-05-06  5:40 UTC (permalink / raw)
  To: selinux

Hello,

isn't it a bit strange that when i invoke

setfiles -F /etc/selinux/targeted/contexts/files/file_contexts /

it apparently also reads other files from
/etc/selinux/targeted/contexts/files/ like file_contexts.homedirs or
file_contexts.subs. I mean i am lucky it does but it doesn't seem
to be described in man pages. Could the documentation be improved in
this respect? I.e. state that it also can read other spec files than
just the one specified? (in some friendly form)

What I care about is differences of that command to restorecon, i.e. i
think that in the man page some info might be missing. There is this
thing regarding reading the spec files and then also here:
https://github.com/SELinuxProject/selinux/blob/master/policycoreutils/setfiles/setfiles.c#L174,
some more differences are mentioned. Recursive descent is already
mentioned in the man page but stuff like "Does not follow mounts"
isn't.

Could anyone, please, tweak the man page to point out those differences?

I am also attaching my conversation with grift on freenode #selinux
channel about this to provide more context. I was supposed to send a
patch for the man pages on this but I don't really feel like I can
provide correct formulations of this.

Thank you
clime (Michal Novotny)

The conversation:

2020-02-14 22:06:42 clime   hi, isn't it a bit strange that when i
invoke setfiles -F /etc/selinux/targeted/contexts/files/file_contexts
/, it apparently also reads other files from
/etc/selinux/targeted/contexts/files/ like file_contexts.homedirs or
file_contexts.subs. I mean i am lucky it does but it doesn't seem
to be described in man pages. What i care about is compatibility of
that command with restorecon
2020-02-14 22:07:57 grift   what you mean compatibility? restorecon is
a symlink to setfiles
2020-02-14 22:09:46 clime   grift: i mean that the command produces
the same labelling in the end as restorecon -R / would.
2020-02-14 22:23:12 grift   yes i guess it could be documented better
2020-02-14 22:26:21 grift   the differences are documented in the source it self
2020-02-14 22:26:34 grift
https://github.com/SELinuxProject/selinux/blob/master/policycoreutils/setfiles/setfiles.c#L192
2020-02-14 22:27:26 grift   so i guess it could be considered to add a
summery of the differences between setfiles being invaoke as setfiles
and as restorecon
2020-02-14 22:27:55 clime   yes, that would be great
2020-02-14 22:28:22 clime   should i file a bug somewhere?
2020-02-14 22:28:49 grift   can't you just send a patch to selinx maillist
2020-02-14 22:29:11 grift   i mean you could just copy and paste the
comments almost
2020-02-14 22:30:12 grift   recursive descent by default vs. no
recursive descent by default
2020-02-14 22:30:49 grift   does not expand paths via realpath vs.
expands path via realpath
2020-02-14 22:31:00 grift   .... etc
2020-02-14 22:31:15 grift   6 main differences
2020-02-14 22:31:25 clime   ok
2020-02-14 22:33:08 clime   i am still confused about how setfiles
really processes that spec_file argument (e.g.)
/etc/selinux/targeted/contexts/files/file_contexts i would expect it's
the only file it reads but no it reads also other associated files
2020-02-14 22:34:04 clime   and how restorecon (setfiles invoked under
that handle) is different in respect to that....
2020-02-14 22:35:01 grift   well it might not be different except for
the fact that restorecon does lazy init of file contexts?
2020-02-14 22:37:19 grift   dunno
2020-02-14 22:41:22 grift   probably this is used but i am not sure
:https://github.com/SELinuxProject/selinux/blob/master/libselinux/src/label.c
2020-02-14 22:41:47 grift
https://github.com/SELinuxProject/selinux/blob/master/libselinux/src/label_file.c
2020-02-14 22:42:32 clime
https://github.com/SELinuxProject/selinux/blob/master/libselinux/src/label_file.c
... just found it too
2020-02-14 22:42:36 clime   you were faster
2020-02-14 22:42:53 grift   i think they probably both use the same code
2020-02-14 22:43:58 clime   yes
2020-02-14 22:45:08 clime   e.g. this is why .subs_dist gets processed
https://github.com/SELinuxProject/selinux/blob/master/libselinux/src/label_file.c#L746
2020-02-14 22:45:39 clime   anyway, i will post the pach to the
selinux mailing list probly will need some tweaks but i may try
2020-02-14 22:46:52 grift   basically all stuff in
/etc/selinux/TYPE/contexts/files is used if it exists
2020-02-14 22:47:05 grift   but if you specific a custom spec then that is used
2020-02-14 22:48:00 clime   yes that spec together with all the other
files around with recognized extensions
2020-02-14 22:48:31 grift   i see
2020-02-14 22:53:28 grift   you could also add a practical example
because setfiles is usually used in specific scenarios
2020-02-14 22:55:27 grift   this is a typical scenario for why you
would use setfiles:
2020-02-14 22:55:32 grift    339     /usr/sbin/setfiles -F -r /mnt/example \
2020-02-14 22:55:32 grift    340
/etc/selinux/dssp2-standard/contexts/files/file_contexts \
2020-02-14 22:55:32 grift    341                        /mnt/example/
2020-02-14 22:56:42 grift   basically to label images, pretty niche
2020-02-14 22:57:01 grift   and stuff like fixfiles abstracts it probably
2020-02-14 23:09:53 clime   yes, this is basically what i am trying to
do with setfiles
2020-02-14 23:12:26 clime   except it works better for me if i do
chroot /mnt/example first. That way setfiles doesn't complain about
unknown labels. Didn't yet find out why exactly

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-05-06  5:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-06  5:40 improvement of setfiles man page clime

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.