我已经安装了 rootsh,它在 CentOS 6 中运行良好。但它的日志同时写入/var/log/messages
和/var/log/rootsh/
。
我希望日志仅写入/var/log/rootsh/
,而不是/var/log/messages
。当我从 root 运行命令时,我可以禁用 syslog:
rootsh --no-syslog
我也希望能够使用普通用户禁用 syslog。我以普通用户身份登录并编辑.bashrc
以添加以下行
rootsh --no-syslog
它正在创建 225 个进程:
[root@testing ~]# ps aux | grep rootsh | wc -l
225
[root@testing ~]# ps aux | grep rootsh | less
code 16521 0.0 0.0 8256 832 pts/1 S+ 14:43 0:00 /usr/bin/rootsh --no-syslog
code 16535 0.0 0.0 8256 816 pts/3 S+ 14:43 0:00 /usr/bin/rootsh --no-syslog
code 16549 0.0 0.0 8256 820 pts/5 S+ 14:43 0:00 /usr/bin/rootsh --no-syslog
code 16563 0.0 0.0 8256 816 pts/6 S+ 14:43 0:00 /usr/bin/rootsh --no-syslog
code 16577 0.0 0.0 8256 820 pts/7 S+ 14:43 0:00 /usr/bin/rootsh --no-syslog
code 16591 0.0 0.0 8256 820 pts/8 S+ 14:43 0:00 /usr/bin/rootsh --no-syslog
code 16605 0.0 0.0 8256 820 pts/9 S+ 14:43 0:00 /usr/bin/rootsh --no-syslog
code 16619 0.0 0.0 8256 824 pts/10 S+ 14:43 0:00 /usr/bin/rootsh --no-syslog
code 16633 0.0 0.0 8256 820 pts/11 S+ 14:43 0:00 /usr/bin/rootsh --no-syslog
code 16647 0.0 0.0 8256 820 pts/12 S+ 14:43 0:00 /usr/bin/rootsh --no-sysl
答案1
这里发生的事情是你陷入了一个循环 - 看看 pstree 的输出
sshd───bash───rootsh───bash───rootsh───bash───rootsh...
每次运行 bash 时,它都会运行 .bashrc,而 .bashrc 又运行 rootsh,它是 bash 的包装器,因此它运行 bash,而 bash 又运行 .basrc ...
您可以将调用放在 .bash_profile 中,这样它只会在登录 shell 中运行
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
pstree 的输出如下
sshd───bash───rootsh───bash───pstree
但是不要rootsh -i
在你的.bash_profile 中使用。