很多情况下我们需要记录用户执行过的命令,不管是root还是其他普通用户,我们可以通过以下方式来记录。
创新互联10余年专注成都高端网站建设按需求定制开发服务,为客户提供专业的成都网站制作,成都网页设计,成都网站设计服务;创新互联服务内容包含成都网站建设,小程序设计,软件开发,网络营销推广,网络运营服务及企业形象设计;创新互联拥有众多专业的高端网站制作开发团队,资深的高端网页设计团队及经验丰富的架构师高端网站策划团队;我们始终坚持从客户的角度出发,为客户量身订造网络营销方案,解决网络营销疑问。
PROMPT_COMMAND会在命令执行前执行。
$(who am i |awk '{print \$2,\$5}') 会输出登录用户用的tty和登录服务器的远程电脑IP或者主机名。
$PWD 是内建变量,显示当前执行命令的工作目录。
history 1 | { read x cmd; echo ${cmd}; 会输出最后一条历史命令中的执行信息。
为了不让用户修改变量,使用 declare -rx 命令定义了只读环境变量。这里要注意使用 readonly 命令也可以定义只读变量,但是用户用env命令看不到,只有用 export PROMPT_COMMAND 命令将变量设置为环境变量后才能看到。
变量加到 /etc/bashrc 是因为用户登录后会加载这里的配置,包括 sudo sudo su sudo su - su root su - root 。如果加到其他文件里则部分命令后就不会加载变量,自行尝试。
修改rsyslog是可以自定义日志输出的文件路径和名字,用 logger -p 这个命令配合使用。
新增logrotate配置则是需要切割日志,防止单个日志文件太大,以及做好切割备份,方便查询。
【一】
在 /etc/profile 最后添加如下行,则日志会直接输出到 messages 日志里。
这种方式:不定义日志格式,直接将日志写到messages日志文件里,和其他日志放一起,但是可以指定日志标签,方便检索。
缺点是(1)会导致日志增大,并且用户提权后因-t标签的存在,导致不会记录提权前的用户。(2)不能自定义日志路径。
【二】
缺点:用户可以删除日志文件。
因为普通用户和root都要往日志文件里写,所以需要给普通用户加一个附加组;并且如果日志文件不存在,普通用户登录后也需要新建,所以普通用户必须有日志文件父目录的写权限。为了能让所有普通用户都可以写,就给Command目录加了SGID权限以及修改目录属组为audit。这样普通用户在这个目录下创建的日志文件的属组会自动继承Command目录的属组,也就是audit。 (umask 002 touch $HISTORY_FILE) 命令则是因为root用户生成的日志文件权限是644,属组没有写权限。所以这里用 启动子shell并修改umask的方式生成日志文件。这样就不会修改root默认的 0022 的umask。
其他审计软件:
免费2个月
1."linux查看历史命令,为您提供linux查看历史命令图文信息,打开linux客户端。
2.点击连接linux按钮。
3.输入用户名,主机ip地址。
4.输入密码。
5.显示连接成功,就可以进行操作。
6.输入history命令,即可返回命令的历史记录。
分类: 电脑/网络 操作系统/系统故障
解析:
增加用户帐号后
新建用户的命令十分简单,在命令行下使用 useradd 命令:
useradd david
该命令做了下面几件事:1)在 /etc/passwd 文件中增添了一个入口;2)在 /home 目录下创建新用户的主目录,并将 /etc/skel 目录中的文件拷贝到该目录中去;3)。但是使用了该命令后,新建的用户依然不能登录,因为还没有设置口令,需要再用 passwd 命令为其设置口令后,才能登录。用户的 UID 和 GID 是 useradd 自动选取的,它是将 /etc/passwd 文件中的 UID 加 1,将 etc/group 文件中的 GID 加 1。
useradd 命令中还有许多选项,它们的功能如下表:
选项
说明
-u
手工设置
UID
-g
手工设置
GID
-d
设置新用户的主目录
-G
使用户成为其他组的成员
3.2 理解 /etc/passwd 文件
/etc/passwd 文件是系统的主要文件之一。该文件中包含了所有用户登录名清单;为所有用户指定了主目录;在登录时使用的 shell 程序名称等。该文件还保存了用户口令;给每个用户提供系统识别号。
/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式:
name:password:uid:gid:ment:home:shell
它们的含义如下:
域
说明
name
用户登录名
password
用户口令。此域中的口令是加密的。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。
uid
指定用户的
UID。用户登录进系统后,系统通过该值,而不是用户名来识别用户。
gid
GID。如果系统要对相同的一群人赋予相同的权利,则使用该值。
ment
用来保存用户的真实姓名和个人细节。
home
指定用户的主目录的绝对路径。
shell
如果用户登录成功,则要执行的命令的绝对路径放在这一区域中。它可以是任何命令。
3.3 建立新组
与建立新用户帐号十分类似,建立新组的命令是 groupadd:
useradd group-name
可以使用 -g 选项设定新组的 GID。0 到 499 之间的值留给 root、bin、mail 这样的系统帐号,因此最好指定该值大于 499。如果新组名或者 GID 已经存在,则返回错误信息。
3.4 理解 /etc/group 文件
/etc/group 文件文件的格式和 /etc/passwd 文件格式类似,它也是一个纯文本文件,定义了每个组中的用户。每行的格式是:
group_name:passwd:GID:user_list
它们的含义如下:
域
说明
group_name
组名
password
组口令。此域中的口令是加密的。如果此域为空,表明该组不需要口令。
gid
指定
GID。
user_list
该组的所有用户,用户名之间用逗号隔开。
3.5 用户管理
添加新用户后,如果对新用户的种种设置不满意,则可以通过 usermod 命令进行修改。
usermod 命令的一般格式为:
usermod -选项 相关内容 用户名
请参看下表:
命令
说明
usermod –s newshell path username
改变用户登录时使用的
shell。该 shell 应该是列入 /etc/shells 中的 shell。如果指定的 shell 或者程序名没有列入 /etc/shells,该用户将不能登录。注意,普通用户也能使用该命令。
usermod –d new home dic username
改变用户的主目录
usermod –u UID username
修改用户的
UID
usermod –g GID username
修改用户的默认组
usermod –e MM/DD/YY
修改用户帐号的有效期
除了 usermod 命令以外,还有一些修改用户信息的命令,比如修改口令的 passwd,修改个人信息的 chfn 等。
对于组的修改要相对简单一些,类似的使用 groupmod 命令,比如:
groupmod -n new-group current-group:改变组名;
groupmod -g new-GID groupname:改变 GID。
删除一个用户,使用类似的命令:userdel,其格式是:
userdel username
解决方法
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。
2、在linux命令行下输入shell指令:history。
3、最后,按下回车键执行shell指令,此时会看到所有使用过的命令都被逆序打印了出来。
注意事项:
语法:"命令 文件zd" ,这是将文件作为命令输入。"命令 文件" ,这是将文件作为命令输出。比如说:mail -s "test" linux@163.com aa ,就是将文件aa作为信件的内容主题为test给收信人发去。
Linux它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正回式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
方法步骤如下:
1、首先打开linux客户端。
2、使用鼠标点击连接linux按钮。
3、在弹出的界面内输入用户名,主机ip地址。
4、再在弹出的界面内输入密码。
5、最后在界面内输入history命令,即可成功显示全部的linux的history指令历史记录。