-
2018-02-06 14:13:47使用history命令,查看自己的操作记录,但如果你是root用户,如何查看其它用户的操作记录呢?
其实history命令只是把当前用户目录下的~/.bash_History文件内容列出来而已。
一般而言,history展示的操作记录是没有时间的,可以在/etc/bashrc文件中加入下列代码:
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H:%M:%S: "
export HISTTIMEFORMAT
保存后退出,关闭当前shell,并重新登录
这个时候,在~/.bash_History文件中,就有记录命令执行的时间了更多相关内容 -
linux用户及权限操作
2018-08-01 11:28:04说明:在Linux中只有超级管理员权限才能对用户和用户组进行设置,其他的用户一律没有权限设置: 用户管理 语法:#useradd 用户名 添加一个新用户 注:所有的用户添加之后都会存储在一个文件中,会存储在passwd...用户和用户组
说明:在Linux中只有超级管理员权限才能对用户和用户组进行设置,其他的用户一律没有权限设置:
- 用户管理
语法:#useradd 用户名 添加一个新用户
注:所有的用户添加之后都会存储在一个文件中,会存储在passwd文件中,位置位于/etc/passwd
通过打开/etc/passwd文件可以查看到新增的用户;
语法:#passwd 需要设置密码的用户名 修改用户密码
语法:#usermod 参数 需要修改的用户名 修改用户名或组
注: 在Linux中,经常会用到的用户修改的参数有2个。
-l:表示给后面传递的用户修改用户名,语法格式:usermod -l 新的用户名 需要修改的用户名
-g:表示给后面传递的用户名修改用户组,语法格式:usermod –g 用户组id 需要修改的用户名
语法:#userdel 用户名 删除用户
- 用户组管理
语法:#groupadd 用户组名 添加用户组
注:用户组添加完成之后也不会有任何的提示,此时我们可以查看用户组的管理文件,文件名叫做group,位置位于/etc/group
语法格式:#groupmod -n 新的用户组名 旧的用户组名 更改用户组名
语法:#groupdel 需要删除的用户组名 删除用户组,删除前确认该组是否存在其他用户
权限设置
- 各字段代表权限:
、
第1个字符:表示文档的类型,d表示是目录,-表示是文件;
第2~4个字符:表示文件所有者的权限情况(u表示,user);
第5~7个字符:表示所有者同组的组内成员的权限情况(g表示,group);
第8~10个字符:表示除上述两类人员的其他用户的权限情况(o表示,other);
- 语法:#chmod 权限组成信息 需要操作的对象(文件夹/文件)
需要注意,如果操作的对象是文件夹,则需要加上-r参数,表示递归赋予权限。
第一个情况:针对单个对象(u,g,o)的拆分
eg:给某个组成部分添加读权限:#chmod u+r,g+r,o+r 需要操作的文件/文件夹
eg:给某个组成部分删减读权限:#chmod u-r,g-r,o-r 需要操作的文件/文件夹
eg:给某个组成部分的权限设置成一个目标值:例如将50.txt文件的权限全部的组成部分设置成rwx,则命令可以写成:#chmod u=rwx,g=rwx,o=rwx 文件名/文件夹名
第二个情况:设置全部的组成部分:
可以使用下面的这个语法:
#chmod a+r 文件 (表示给全部的组成部分添加读权限)
#chmod a-r 文件 (表示给全部的组成部分删减读权限)
#chmod a=rwx 文件 (表示给全部的组成部分权限设置成刻度可行可执行)
其中a表示全部(ugo组合)
- 通过数字的形式来设置权限
在Linux权限体系中支持使用数字的形式来表示权限的信息,比如说777表示全部的权限。
4表示读权限,2表示写权限,1表示执行权限
-
在linux用户下查看当前用户或者历史用户的操作记录
2016-09-25 11:06:52一、查看及管理当前登录用户 1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括: ...一、查看及管理当前登录用户
1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:
- 用户名称
- 用户的机器名称或tty号
- 远程主机地址
- 用户登录系统的时间
- 空闲时间(作用不大)
- 附加到tty(终端)的进程所用的时间(JCPU时间)
- 当前进程所用时间(PCPU时间)
- 用户当前正在使用的命令
$ w 23:04:27 up 29 days, 7:51, 3 users, load average: 0.04, 0.06, 0.02 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ramesh pts/0 10.1.80.56 22:57 8.00s 0.05s 0.01s sshd: ramesh [priv] jason pts/1 10.20.48 23:01 2:53 0.01s 0.01s -bash john pts/2 10.1.80.7 23:04 0.00s 0.00s 0.00s w
此外,可以使用who am i查看使用该命令的用户及进程,使用who查看所有登录用户进程信息,这些查看命令大同小异;
2、使用pkill强制退出登录的用户
使用pkill可以结束当前登录用户的进程,从而强制退出用户登录,具体使用可以结合w命令;
首先:使用w查看当前登录的用户,注意TTY所示登录进程终端号
其次:使用pkill –9 -t pts/1 结束pts/1进程所对应用户登录(可根据FROM的IP地址或主机号来判断)
二、查看所有登录用户的操作历史
在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了(因为history只针对登录用户下执行有效,即使root用户也无法得到其它用户histotry历史)。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。
通过在/etc/profile里面加入以下代码就可以实现:
PS1="`whoami`@`hostname`:"'[$PWD]'
history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/${LOGNAME} ]
then
mkdir /tmp/dbasky/${LOGNAME}
chmod 300 /tmp/dbasky/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky.$DT"
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null
source /etc/profile 使用脚本生效
退出用户,重新登录
上面脚本在系统的/tmp新建个dbasky目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个方法来监测系统的安全性。
root@zsc6:[/tmp/dbasky/root]ls
10.1.80.47 dbasky.2013-10-24_12:53:08
root@zsc6:[/tmp/dbasky/root]cat 10.1.80.47 dbasky.2013-10-24_12:53:08
查看在12:53:08从10.1.80.47登录的root用户操作命令历史
-
Linux 记录所有用户登录和操作的详细日志
2016-11-22 13:47:20每次用户登录到退出都会产生以用户名、登录ip地址、操作时间为文件名的文件,文件里面包含本次用户的所有操作记录。1、起因
最近Linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录。
一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行,当然你也可以vim /etc/profile将1000修改成1000000行,但是这只是比较笼统的做法,看不到详细的用户来源已经操作记录,比如来源ip地址、操作时间、操作用户等。
所以我们不得不自己写代码来实现这样的功能。
2、自动记录脚本
编写脚本如下:
history
USER=`whoami`
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]; then
USER_IP=`hostname`
fi
if [ ! -d /var/log/history ]; then
mkdir /var/log/history
chmod 777 /var/log/history
fi
if [ ! -d /var/log/history/${LOGNAME} ]; then
mkdir /var/log/history/${LOGNAME}
chmod 300 /var/log/history/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +"%Y%m%d_%H:%M:%S"`
export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null
这个脚本需要放在/etc/profile文件的末尾。这里默认写了记录日志文件的根目录是:/var/log/history,这个目录需要初始化建立,然后通过“exportHISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
”可以看到记录日志的路径是/var/log/history/${LOGNAME},所以这个目录也需要事先建立,有多少个用户,就要建立多少个目录,而且要把目录的使用权限赋予相对应的用户。
而每次用户登录到退出都会产生以用户名、登录ip地址、操作时间为文件名的文件,文件里面包含本次用户的所有操作记录。
3、建立初始化目录
先去/home查看有多少个用户
[root@azure_test_static1_11_35 history]# ll
total 28
drwxr-xr-x 2 adminuser adminuser 4096 Nov 17 21:53 adminuser
drwxr-xr-x 2 fastdfs fastdfs 4096 Nov 17 21:53 fastdfs
drwxr-xr-x 2 loguser loguser 4096 Nov 17 19:43 loguser
drwxr-xr-x 2 nginx nginx 4096 Nov 17 20:54 nginx
d-wx------ 2 root root 4096 Nov 17 21:53 root
drwxr-xr-x 2 tomcat tomcat 4096 Nov 17 19:42 tomcat
drwxr-xr-x 2 zabbix zabbix 4096 Nov 17 19:42 zabbix
[root@azure_test_static1_11_35 history]#
然后开始建立初始化目录
[root@azure_test_static1_11_35 log]# mkdir /var/log/history/fastdfs
[root@azure_test_static1_11_35 history]# chown fastdfs:fastdfs fastdfs -R
[root@azure_test_static1_11_35 log]# mkdir /var/log/history/tomcat
[root@azure_test_static1_11_35 log]# chown -R tomcat:tomcat /var/log/history/tomcat
[root@azure_test_static1_11_35 log]# mkdir /var/log/history/zabbix
[root@azure_test_static1_11_35 log]# chown -R zabbix:zabbix /var/log/history/zabbix
[root@azure_test_static1_11_35 log]# mkdir /var/log/history/loguser
[root@azure_test_static1_11_35 log]# chown -R loguser:loguser /var/log/history/loguser
[root@azure_test_static1_11_35 log]# mkdir /var/log/history/adminuser
[root@azure_test_static1_11_35 log]# chown -R adminuser:adminuser /var/log/history/adminuser
4、用户登录验证
用其中一个用户fastdfs登录进程操作
[adminuser@azure_test_static1_11_35 ~]$ sudo -i
[sudo] password for adminuser:
[root@azure_test_static1_11_35 ~]# su - fastdfs
[fastdfs@azure_test_static1_11_35 ~]$ cp test1.log test3.log
[fastdfs@azure_test_static1_11_35 ~]$ echo "test 1"> test3.log
[fastdfs@azure_test_static1_11_35 ~]$ echo "1" >> test3.log
[fastdfs@azure_test_static1_11_35 ~]$ echo "2" >> test3.log
[fastdfs@azure_test_static1_11_35 ~]$ echo "3" >> test3.log
[fastdfs@azure_test_static1_11_35 ~]$ more test3.log
test 1
1
2
3
[fastdfs@azure_test_static1_11_35 ~]$
然后退出用户,重新登录进去日志目录/var/log/history/fastdfs/查看有最新的记录,一次用户登录到退出就会保存成一个日志文件记录:
# 进入日志目录
[root@azure_test_static1_11_35 fastdfs]# cd /var/log/history/fastdfs/
# 查看有2个操作日志记录
[root@azure_test_static1_11_35 fastdfs]# ll
total 8
-rw------- 1 fastdfs fastdfs 83 Nov 17 21:53 fastdfs@192.168.120.103_20161117_21:53:16
-rw------- 1 fastdfs fastdfs 139 Nov 17 21:59 fastdfs@192.168.120.103_20161117_21:56:47
# 打开当前的操作记录日志
[root@azure_test_static1_11_35 fastdfs]# more fastdfs@192.168.120.103_20161117_21:56:47
cp test1.log test3.log
echo "test 1"> test3.log
echo "1" >> test3.log
echo "2" >> test3.log
echo "3" >> test3.log
more test3.log
exit
[root@azure_test_static1_11_35 fastdfs]#
PS:可以看到记录的日志和我们的实际操作保持一致。证明我们要的功能实现了。
参考文章:http://www.heminjie.com/system/linux/412.html
-
Linux记录操作日志
2019-03-15 21:46:37记录每个用户登录一直到退出操作的命令,保存在/var/log/history目录下: 在/etc/profile文件下追加以下内容: 第一个脚本:(带时间戳) USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/... -
Linux操作系统基础
2018-05-27 12:16:53Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机 Linux介绍 Linux出现于1991年,是... -
linux查看所有登录用户的操作历史
2020-08-03 20:48:59在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史... -
linux操作系统之超级用户(root)及sudo命令概念及用途详解 简单易懂
2021-07-14 08:53:421.linux操作系统中,有一个概念叫做超级用户(root):拥有操作系统的资源的所有访问权限,用于对系统的维修和管理(添加或删除用户或组,安装软件等对系统进行管理的操作)。 2.在Linux操作系统,日常使用中不建议... -
如何设置linux操作系统以root用户登录?
2021-05-14 02:04:00对于一些新版的linux操作系统一般都不允许用户以root用户登录,很多的权限没有(比如新建文件夹)这使得我们对linux的开发工作无法进行。下面我将自己对这个问题的解决方法总结如下:(1)首先登录linux(当然是普通用户)... -
Linux root用户 对文件操作没有权限
2019-10-30 16:17:21chattr -i 文件名 -
Linux-用户操作
2018-04-07 23:47:191、用户切换 普通用户->超级用户:su - root 超级用户->普通用户:su 用户名 2、修改密码 超级用户:passwd + 用户名 普通用户:passwd 3、用户新增 新增用户:... -
Linux中用户和用户组的操作命令详解及样例
2017-07-25 16:34:34用户:使用操作系统的人 用户组:具有相同权限的一组用户 /etc/group :存储当前系统中所有用户组的信息 --Group : x : 123 : abc,def,xyz --组名称:组密码占位符:组编号:组中用户名列表 /etc/... -
linux如何查看用户所有的历史操作记录
2021-05-10 06:39:13linux如何查看用户所有的历史操作记录以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示... -
Linux 给用户 赋某个文件夹操作的权限(实现三权分立)
2022-02-15 17:32:28Linux 给用户 赋某个文件夹操作的权限 一、配置网站管理员 linux文件或目录的权限分为,读、写、可执行三种权限。文件访问的用户类别分为,文件创建者、与文件创建者同组的用户、其他用户三类。 添加用户 useradd -... -
Linux用户管理
2018-09-05 10:52:30一、用户管理的配置文件 1、配置文件 ...在linux里面,任何一个进程操作都要有一个用户身份,这就需要调用伪用户。 二、与程序服务相关:比如apache,启动之后也要对应一个伪用户。 伪用户的最大... -
Linux是多用户操作系统
2019-09-09 23:44:35操作系统按用户数量可以分为单用户系统和多用户系统。比如Windows就是典型的单用户系统,Linux就是典型的多用户系统。 有人可能会问,我的windows下有两个用户,怎么是单用户系统?Windows系统可以存在多个用户,... -
Linux操作系统
2021-09-02 20:40:55Linux操作系统(GNU/Linux)是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。 Liunx的目录结构 root 管理员的home在目录root中; 其他用户的home目录的... -
linux服务器操作系统
2021-02-02 17:00:41Linux操作系统异常流行和广泛,虽然某些Linux发行版适合高级用户,但另一些Linux发行版却更简单,而且便于从Windows系统切换。基本上Linux发行版经常受益于其强大的社区资源。 虽然Linux操作系统提供了优秀的桌面... -
linux用户权限设置
2020-07-27 20:53:30在Linux中,有时为了让普通用户获得root的执行权限,除了之前讲过的su -永久提权方法,还有一种常用的方法,就是sudo。 因为普通用户每次使用su -方法,都需要输入root的密码,不是非常方便,而sudo的好处是可以通过... -
linux属于什么操作系统
2021-05-15 19:08:36Linux是一种自由和开放源码的类Unix操作系统,其不同于windows的不可更改性,可以对源码进行修改,并且可以免费进行使用,其基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作。linux系统与windows系统的... -
Linux操作系统安装过程
2022-02-01 16:14:04本章节讲解如何在虚拟机上进行linux系统的安装。 目前安装操作系统方式有2 种:真机安装、虚拟机安装。 真机安装:使用真实的电脑进行安装,像安装windows 操作系统一样,真机安装的结果就是替换掉当前的windows ... -
Linux命令_用户,权限管理
2021-05-08 22:07:57可通过cat /etc/passwd查看系统用户信息,由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份2... -
Linux用户和组的基本命令
2020-11-15 19:39:11Linux用户和组的基本命令 1.用户的基本操作命令 创建用户----------useradd 用户名 创建密码----------passwd 用户名 删除用户----------userdel 用户名 删除用户和用户目录---------- userdel -r 用户名 . 指定用户... -
在Linux中将用户添加到特定组的四种方法
2021-05-08 21:55:23在Linux中将用户添加到特定组的四种方法Linux组是用于管理Linux中用户帐户的组织单位。对于Linux系统中的每个用户和组,它都有唯一的数字标识号。它称为用户ID(UID)和组ID(GID)。组的主要目的是为组的成员定义一组... -
Linux 十四 修改文件操作权限 用户文件权限详解
2019-06-01 22:54:22文章目录Linux 权限ls -l 中显示的内容如下:0-9位说明rwx权限详解 Linux 权限 ls -l 中显示的内容如下: -rwxrw-r-- 1 root police 1213 Feb 2 09:39 abc.txt 0-9位说明 Linux 权限 ls -l 中显示的内容... -
Linux给用户赋予对某个文件夹的操作权限
2021-05-27 19:28:521、切换到root用户 su - root 2、更改文件夹的用户为user1 chown -R user1:user1 /local 3、修改user1对文件夹的权限 chmod 777 /local -
Linux操作基础-用户界面与shell命令
2018-02-01 10:45:41二、实验内容和实验步骤图形化用户界面(GNOME或KDE)下用户操作非常简单而直观,但到目前为止图形化用户还不能完成所有的操作任务;字符界面占用资源少,启动迅速,对于有经验的管理员而言,字符界面下使用Shell... -
linux系统切换用户
2020-12-13 17:58:02由于 root 用户权限比较大,Linux 系统一般不推荐直接以 root 用户登录,但在某些情况下我们需要使用 root 用户时,注销系统再登录的办法就比较浪费我们的时间了。 不过我们还可以通过切换用户的方法来解决这个问题... -
Linux新建用户及添加用户权限
2020-12-12 16:26:21新建用户主要用到useradd命令,首先登录已有的Linux账户,我是登录后直接操作的(即在已登录账户的根目录下) 1.新建用户 sudo adduser yzhao 出现下图所示:首先需要输入已登录账户的密码并回车,然后设置新账户的... -
头歌嵌入式操作系统Linux系统操作
2021-05-20 10:46:36Linux系统操作 ** 第1关 Linux初体验 #!/bin/bash #在以下部分写出完成任务的命令 #begin# cd / ls -a #********* end # 第2关 Linux常用命令 #!/bin/bash #在以下部分写出完成任务的命令 #begin# touch newfile ...