From Fedora Project Wiki

< User:Cicku‎ | Drafts

Revision as of 09:30, 9 December 2013 by Cicku (talk | contribs) (Created page with "= Preamble = /etc/shells is a text file which controls system login shell of users. It contains a set of valid shells which can be used in the system. See: SHELLS(5) = How ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Preamble

/etc/shells is a text file which controls system login shell of users. It contains a set of valid shells which can be used in the system.

See: SHELLS(5)

How to handle new shells in Fedora packages

As this file can be edited by any people as default, we need to first determine if relevant lines are already existed. If existed already, then just echo relevant binary path to the file.

Example of package : %post if [ ! -f %{_sysconfdir}/shells ] ; then

   echo "%{_bindir}/foo" > %{_sysconfdir}/shells

else

   grep -q "^%{_bindir}/foo$" %{_sysconfdir}/shells || echo "%{_bindir}/foo" >> %{_sysconfdir}/shells

fi

%postun if [ $1 -eq 0 ] && [ -f %{_sysconfdir}/shells ]; then

   sed -i '\!^%{_bindir}/foo$!d' %{_sysconfdir}/shells

fi