LinuxZone

LinuxZone.net
Linux系统网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

(Linux基础知识)shell+history方式设置远程执行命令

2023年9月18日 333点热度

注:本文基于CentOS6.5编撰

1、关于PROMPT_COMMAND环境变量

Bash在显示PS1之前先执行PROMPT_COMMAND定义的内容,而PS1也就是linux的命令提示符,关于PS1详尽设置可参考:Linux提示符旁边显示全路径。

我们可以先体会一下PROMPT_COMMAND的功能疗效,假如要显示命令执行的时间,可以如下操作。

linux 和 su 的使用 环境变量详解_su命令详解_nginx变量详解

[root@CentOS-6-5 /]# export PROMPT_COMMAND="echo -n [$(date +%k:%m:%S)]"
[23:12:10][root@CentOS-6-5 /]# pwd
/
[23:12:10][root@CentOS-6-5 /]#

借助这一特点linux 和 su 的使用 环境变量详解,我们可以把用户执行的命令记录出来,甚至通过rsyslog记录到对应文件中。

2、记录历史命令

虽然这个功能可以总结为shell+history形式,使用脚本和history命令实现。操作步骤如下:

su命令详解_linux 和 su 的使用 环境变量详解_nginx变量详解

A、添加PROMPT_COMMAND设置到/etc/bashrc

export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]+[ ]*//" ) [$RETRN_VAL]"'
readonly PROMPT_COMMAND

由于日志使用rsyslog来输出,因而使用logger命令来输出日志,其中,-p命令指定syslog的日志等级,旁边会提到syslog的配置。日志的格式也在logger手指定,这儿记录了命令执行的用户linux 和 su 的使用 环境变量详解linux移植,进程号,具体命令,以及命令返回值。

将PROMPT_COMMAND设置为readonly的缘由是由于,有些用户可以通过重设PROMPT_COMMAND的值来改变我们记录操作的行为,设置为只读后就难以更改。除非删掉/etc/bashrc里的设置,并重新开一个工作窗口。

B、添加syslog配置

前面说到logger指定了日志级别linux deepin,因而我们要在对应的rsyslog配置中添加这一等级,并执行日志储存位置。

在/etc/rsyslog.conf配置文件中添加以下配置,指定用户操作日志储存位置。

local6.*    /var/log/commands.log

添加后重启rsyslog服务,

service rsyslog restart

其实,为避免日志过大,还须要添加对应的logrotate配置。

3、记录疗效

执行命令后观察日志记录疗效如下:

Dec 18 00:10:04 CentOS-6-5 root: root [11304]: cd /home/ [0]
Dec 18 00:10:06 CentOS-6-5 root: root [11304]: pwd [0]
Dec 18 00:10:27 CentOS-6-5 root: root [11304]: df -h [0]
Dec 18 00:10:35 CentOS-6-5 root: root [11304]: nihao [127]

不过有个问题是,通过这些方法没办法记录ssh远程执行命令的情况。

其实也有可能我没有配置好,有晓得的希望可以告知一下。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 命令 操作 效果 日志 记录
最后更新:2023年9月18日

Linux系统网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux系统网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
Linux内核中的系统调用的标准表示可移植操作系统接口 分区和目录中创建的文件数量有限制 网络攻防干货:显示文件的前10行知识点详解 :Access访问时间函数讲解文件:#include定义函数 嵌入式Linux系统组成部分部分64移植过程 Linux中的文件时间属性可以使用stat命令命令查看 linux 命令 操作系统版本 中标麒麟-内核Linux银河麒麟内核 linux内核移植的主要模块(或组件) Ubuntu下终端默认字体,看起来很舒畅,蛮漂亮的 Linux设备树编译:内核中的dtc工具 服务器配置进行域名解析及域名的解析与解析 安装完linuxredhat5.4,打开浏览器发现显示中文全部成了乱码 linux下mysql英文乱码解决方式(2008-08-22) ubuntu字体安装方法,超实用!!(附详细教程) Linux下USB转串口DB9(RS232)和转换线 Linux上部署Web应用程序时非常常见的做法虚拟主机 (Linux基础知识)Linux用户权限管理 关于Linux发行版本的详细信息和架构信息的说明书 Linux操作系统安装Linux系统的镜像文件导入进去的应用 基于Linux的驱动开发:远见品质Linux内核与品质
Linux上部署Web应用程序时非常常见的做法虚拟主机Linux下USB转串口DB9(RS232)和转换线ubuntu字体安装方法,超实用!!(附详细教程)linux下mysql英文乱码解决方式(2008-08-22)安装完linuxredhat5.4,打开浏览器发现显示中文全部成了乱码服务器配置进行域名解析及域名的解析与解析Linux设备树编译:内核中的dtc工具Ubuntu下终端默认字体,看起来很舒畅,蛮漂亮的linux内核移植的主要模块(或组件)linux 命令 操作系统版本 中标麒麟-内核Linux银河麒麟内核Linux中的文件时间属性可以使用stat命令命令查看嵌入式Linux系统组成部分部分64移植过程:Access访问时间函数讲解文件:#include定义函数网络攻防干货:显示文件的前10行知识点详解分区和目录中创建的文件数量有限制Linux内核中的系统调用的标准表示可移植操作系统接口SHELL编程中使用变量的实验原理和使用技巧和技巧Linux服务器出现CPU负载达到100%居高不下的情况Java代码运行步骤及文档说明--Java代码动态规划软链接使用指令ln-s指令创建软连接文件操作系统
0x02日志分析端口异常,0初始化日志 linux系统是装在固态还是机械上?推荐将linuxdebian硬盘安装? 进行代码管理撰写博客基本功能统计文件的质量分析 RedHatLinux中自动运行程序中的应用 locatelocate让使用者很快速的搜寻档案系统内是否有指定的档案 linux内核移植的主要模块(或组件) Linux内核定时器打开内核代码树中的头文件 Linux基础知识:Linux的特点及应用 Ubuntu18.10系统下安装HP网络打印机的方法及方法 Linux路由表设置1.1route命令的基本用法 我个人的Python编程经历,这些也许会对你未来的工作有所帮助 第一种情况:你的php中没有引入其他PHP文件没有 CentOS虚拟机实现ping通并上传文件 Linux黑话-rf在做什么?命令不能删除 clangd.nvim+clangd+高亮+语法静态解析+源码体验 简单的Linux系统安装WiFi驱动程序 使用VMware虚拟机进行U盘安装系统时的注意事项 windows本地IP安全策略设置一些危险端口的阻止! (Linux基础知识)Linux用户权限管理 有用+1已投票,双系统解决软件兼容性问题特点
标签聚合
应用 linux服务器 操作 软件 命令 目录 文件目录 linux系统 内核 文件
书籍
课程
技术群
技术干货大合集↓
  • 2023年12月 / 28篇
  • 2023年11月 / 89篇
  • 2023年10月 / 94篇
  • 2023年9月 / 90篇
  • 2023年8月 / 92篇
  • 2023年7月 / 96篇
  • 2023年6月 / 91篇
  • 2023年5月 / 93篇
  • 2023年4月 / 91篇
  • 2023年3月 / 69篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源 | Linux系统

COPYRIGHT © 2024 LinuxZone.net ALL RIGHTS RESERVED.