比较Unix和linux的历史命令记录
创新互联建站主营谢通门网站建设的网络公司,主营网站建设方案,重庆APP开发,谢通门h5重庆小程序开发搭建,谢通门网站营销推广欢迎谢通门等地区企业咨询这里使用的unix版本是sun的solaris9,linux版本是centos5.5,比较二者历史命令记录的一些异同点来。
Solaris有个极为有用的记账功能,通过设置日志文件对每个用户的每一条命令进行记录,这一功能默认是不开启的,为了打开它,需要执行/usr/lib/acct/目录下的accton文件,格式如下:/usr/lib/acct/accton /var/adm/pact。在sun手册上,只有这一种用法,但这样的缺点是明显的,大多数有经验的***者一定不会放过/var/adm和/var/log这两个目录,发现pacct文件,会获取root用户的命令历史记录,同时又可以删除自己的记录。这种情况其实有个很好的解决办法,执行/usr/lib/acct/accton,后面跟一个别的目录和文件即可。如下面:/usr/lib/acct/accton /home/log/commandlog。管理员想查看记录时,只要把commandlog这个文件拷贝到/var/adm下,改为pacct,使用命令lastcomm命令就可以查看记录了。如果想关闭,输入/usr/lib/acct/accton.即可。
Linux下也有命令历史记录,默认下用户输入的命令会被记录在~/.bash_history(以默认bash为例),可以用命令history来查看,每个用户的命令历史记录都记录在各自的文件里。
现在来说说说二者的不同,solaris里面是用syslogd来实现的记账功能,记录的每个用户的每个命令,所有记录都在同一个文件里,用lastcomm查看时,能看到执行命令的用户和时间,但没有记录命令的参数。
Linux中的命令历史记录是由bash(以bash为默认shell)来完成的,记录是各自用户的每个命令,并且记录了命令的参数,但默认是没有显示执行命令的时间的,可以通过设置,让history命令显示命令执行的时间。如下面的设置:
# vi /etc/bashrc
添加下面三行
#让系统记录每条历史命令的执行时间。注意最后的"号前面要放个空格
export HISTTIMEFORMAT=""%Y-%m-%d_%H:%M:%S "
#设置保存历史命令的文件大小
export HISTFILESIZE=1000000
#保存历史命令条数
export HISTSIZE=2000
保存退出
执行命令 source /etc/bashrc使配置立即生效。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。