Re: logrotate, syslog, and chsh

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



On 11/03/07, Jeff Potter <jpotter-centos@xxxxxxxxxxxxx> wrote:

I'm noticing that logrotate's default configuration for rotating /var/
log/secure and /var/log/messages partially fails if root's shell is
set to /bin/tcsh (via chsh).  (Running on CentOS 4.4;
logrotate-3.7.1-5.RHEL4).

What seems to be happening is that the logrotate.d/syslog postrotate
command runs:
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null
|| true

Under bash, this redirects stderr to /dev/null. Under tcsh, this
produces the error:
        cat: 2: No such file or directory

What happens in this scenario is that the log gets rotated, but
syslogd does not receive the SIGHUP, so nothing gets logged, at all.
(i.e. secure and messages are 0 bytes until syslog is kicked).

I'm just going to set the default shell for root back to bash, but I
wanted to ask the list if there is any general "rule of thumb" that
root's shell should be bash?

Across most Unixes I think it's a given that root's shell is just
'sh', either /bin/sh or /sbin/sh. On Solaris a commonly warned against
mistake was to either change root's shell to a dynamically linked
shell which wouldn't work properly in single-user because of linked
libraries residing on unmounted partition (only / was mounted in
single user mode IIRC) or because it was /usr/local/bin/bash, again
with /usr/ not residing in a directory under / .

You can set SHELL=/bin/bash in crontabs to override a user's default
shell. See "man 5 crontab" for details.

Your error is being caused by limitations in csh's handling of
standard file descriptors, explained here:

http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/

http://www.google.co.uk/search?hl=en&q=csh+stderr&btnG=Google+Search&meta=

Will.
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos

[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux