用户基本概述:

Linux用户属于多用户操作系统,在windows中,可以创建多个用户,但不允许同一时间多个用户进行系统登陆,但是Linux可以同时支持多个用户同时登陆操作系统,登陆后互相之间并不影响。

用户和组存在的意义
.系统上的每一个进程(运行的程序)都需要特定的用户运行
.每一个文件都有特定的用户拥有
.访问一个文件或目录受到用户的限制
.进程能够以何种方式访问某一个文件或目录, 与进程所关联的用户有关

查看当前登录的用户信息:

[root@web03 ~]# id
uid=(root) gid=(root) groups=(root)
[root@web03 ~]# useradd oldboy
[root@web03 ~]# id oldboy
uid=(oldboy) gid=(oldboy) groups=(oldboy)
[root@web03 ~]# su - oldboy
[oldboy@web03 ~]$ id
uid=(oldboy) gid=(oldboy) groups=(oldboy)
[oldboy@web03 ~]$

用户分类:

       超级管理员(拥有最高权限)
-   系统用户,由系统分配给系统进程使用
- 系统用户,用来运行服务账户,不需要登陆系统(动态分配)
+ 常规普通用户
注意: 在CentOS7系统之前, UID1-499用于系统用户, 而UID +则用于普通用户。

用户相关配置文件:

用户的信息存放在/etc/passwd用户的密码都保存在/etc/shadow这两个文件是linux系统中最重要的文件之一。
如果没有这两个文件或者这两个文件出问题,会导致无法正常登录linux系统。

/etc/passwd 账户文件

[root@node1 ~]# head - /etc/passwd
root:x:::root:/root:/bin/bash
// /etc/passwd由 ':' 为分割符, 分为7个字段,每个字段的具体含义如下:
字段名称 注释说明
.用户名称 //用户的账号名称
.密码占位符 //存放账户的口令,暂用x表示,密码保存在/etc/shadow
.用户的UID //用户标识号
.用户基本组GID //组标识号
.用户注释 //用户详细信息
.用户家目录 //root家目录是/root普通用户家目录存在/home/username(可自定义)
.用户登录Shell //用户登录Linux使用的shell #cat /etc/shells

/etc/shadow 用户密码文件

[root@xuliangwei ~]# tail - /etc/shadow
bgx1:!!::::::: // /etc/shadow由 ':' 为分割符, 分为9个字段,每个字段的具体含义如下:
字段名称 注释说明
.用户登陆名 //用户的账号名称
.加密后的密码 //用户密码,这是加密过的口令(未设密码时为!!)
.最近一次密码更改时间 //从1970年到最近一次更改密码时间之间过了多少天
.密码最少使用几天 //密码最少使用几天才可以更改密码(0表示无限制)
.密码最长使用几天 //密码使用多少天需要修改密码(默认99999永不过期)
.密码到期前警告期限 //密码过期前多少天提醒用户更改密码(默认过期提前7天警告)
.密码到期后保持活动的天数 //在此期限内, 用户依然可以登陆系统并更改密码, 指定天数过后, 账户被锁定
.账户到期时间 //从1970年起,账户在这个日期前可使用,到期后失效。
.标志 //保留

使用chage更改用户密码密码使用情况

-d //设置最近一次更改密码时间, 0下次登陆系统强制修改密码
-m //设置用户两次改变密码之间使用"最小天数"
-M //设置用户两次改变密码之间使用"最大天数"
-W //设置密码更改警告时间 将过期警告天数设为“警告天数”
-I //设置密码过期天数后, 密码为失效状态
-E //设置用户过期时间, 账户失效后无法登陆
-l //显示用户信息 //修改时间为2014年08月31日,和图中时间匹配,方便后续验证
[root@xuliangwei ~]# date -s ''
Sun Aug :: CST
[root@xuliangwei ~]# date
Sun Aug :: CST
[root@xuliangwei ~]# useradd bgx1
[root@xuliangwei ~]# echo "" |passwd --stdin bgx1
[root@xuliangwei ~]# tail - /etc/shadow
bgx1:!!::::::: //设置最近一次修改密码时间
[root@xuliangwei ~]# chage -d "2014-09-01" bgx1
[root@xuliangwei ~]# tail -n1 /etc/shadow
bgx1:!!::::::: //设置最短使用密码时间
[root@xuliangwei ~]# chage -m bgx1
[root@xuliangwei ~]# tail -n1 /etc/shadow
bgx1:!!::::::: //设置密码最长使用时间
[root@xuliangwei ~]# chage -M bgx1
[root@xuliangwei ~]# tail -n1 /etc/shadow
bgx1:!!::::::: //设置密码警告时间
[root@xuliangwei ~]# chage -W bgx1
[root@xuliangwei ~]# tail -n1 /etc/shadow
bgx1:!!:::::::
[root@xuliangwei ~]# chage -W bgx1
[root@xuliangwei ~]# tail -n1 /etc/shadow
bgx1:!!::::::: //设置密码过期时间
[root@xuliangwei ~]# chage -I bgx1
[root@xuliangwei ~]# tail -n1 /etc/shadow
bgx1:!!::::::: //设置用户过期时间
[root@xuliangwei ~]# chage -E "20115-08-31" bgx1
[root@xuliangwei ~]# tail -n1 /etc/shadow
bgx1:!!::::::: [root@xuliangwei ~]# chage -l bgx1
Last password change : Sep , //最近一次更改密码时间
Password expires : Sep , //密码过期时间
Password inactive : Sep , //密码失效时间
Account expires : Aug , //用户失效时间
Minimum number of days between password change : //密码最短使用时间
Maximum number of days between password change : //密码最长使用时间
Number of days of warning before password expires : //密码过期前警告天数 //如何验证,只调整时间为如下进行验证: .验证普通用户是否能修改密码, 不需要调整时间。 .普通用户登陆系统后, 会提示警告密码还剩多少天过期
[root@xuliangwei ~]# date -s "2014-09-12" .普通用户登陆系统后, 强制要求修改密码
[root@xuliangwei ~]# date -s "2014-09-18" .普通用户登陆系统后, 提示账户已过期
[root@xuliangwei ~]# date -s "2014-09-23"

添加用户:

添加用户前需要确定

确定用户的默认组是否有特殊要求
确定用户是否允许登陆
确定用户的密码策略
确定用户的有效期
确定用户的uid是否有特殊要求

1.使用useradd命令新增用户, 注意: adduser命令软链接指向useradd命令

'-u' 指定用户的UID,不能和现有ID冲突
'-g' 指定用户用户默认基本组
'-G' 指定用户附加组,用逗号隔开添加多个附加组
'-d' 指定用户家目录
'-c' 指定用户注释信息
'-M' 不建立家目录
'-s' 指定用户默认shell
'-r' 创建系统账户, 没有家目录 //创建bgx用户,指定UID5001,基本组students 附加组sa,dba 注释信息:2018 new student, 登陆的shell:/bin/bash
[root@xuliangwei ~]# groupadd sa
[root@xuliangwei ~]# groupadd dba
[root@xuliangwei ~]# groupadd students
[root@xuliangwei ~]# useradd -u -g students -G sa,dba -c "2018new student" -d /home/bgx -s /bin/bash bgx
[root@xuliangwei ~]# tail - /etc/passwd
bgx:x::: new student:/home/bgx:/bin/bash //创建系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统
[root@node1 ~]# useradd mysql -M -s /sbin/nologin
[root@node1 ~]# useradd -r dba -s /sbin/nologin

2.使用usermod命令修改用户组

'-u'    修改用户的UID
'-g' 修改用户所属的基本组GID
'-G' 修改用户附加组, 使用逗号隔开多个附加组, 覆盖原有的附加组
'-a' 追加更多的附加组, 必须和-G使用: -aG 追加附加组
'-m' 家目录迁移, 必须和-d一起使用, 移动用户的家目录到新的位置
'-d' 指定用户的家目录新位置
'-c' 修改用户的注释信息
'-s' 更改用户使用的shell
'-l' 更改用户登录名
'-L' 锁定用户
'-U' 解锁用户 [root@xuliangwei ~]# grep "bgx" /etc/passwd
bgx:x::: new student:/home/bgx:/bin/bash //修改用户uid,gid, 附加组, 注释信息, 用户家目录, 登录shell, 登录名 //建立组,指定组gid
[root@xuliangwei ~]# groupadd -g network_sa
[root@xuliangwei ~]# groupadd -g devops //修改用户属性
[root@xuliangwei ~]# usermod -u -g5008 -a -G -c "2019 new student" -md /bgx -s /bin/sh -l bgx_xuliangwei bgx //检查是否修改成功
[root@xuliangwei ~]# grep "bgx" /etc/passwd
bgx_xuliangwei:x::: new student:/bgx:/bin/sh [root@xuliangwei ~]# id bgx_xuliangwei
uid=(bgx_xuliangwei) gid=(network_sa) groups=(network_sa),(sa),(dba),(devops) //验证家目录
[root@xuliangwei ~]# ll -d /bgx
drwx------. bgx_xuliangwei network_sa -- : /bgx 锁定用户
[root@xuliangwei ~]# echo "" |passwd --stdin bgx_xuliangwei
[root@xuliangwei ~]# usermod -L bgx_xuliangwei
//无法正常登录系统
➜ ~ ssh bgx_xuliangwei@192.168.56.11
bgx_xuliangwei@192.168.56.11's password:
Permission denied, please try again. 解锁用户
[root@xuliangwei ~]# usermod -U bgx_xuliangwei
//正常登录系统
➜ ~ ssh bgx_xuliangwei@192.168.56.11
bgx_xuliangwei@192.168.56.11's password:
Welcome to Aliyun Esc Linux
-sh-4.1$

3.检查用户登陆情况

[root@xuliangwei ~]# who
xuliangwei pts/ -- : (192.168.56.2)
bgx_xuliangwei pts/ -- : (192.168.56.2)
root pts/ -- : (192.168.56.2) [root@xuliangwei ~]# w
:: up day, :, users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
xuliangw pts/ 192.168.56.2 : ? .35s .18s sshd: xu
bgx_xuli pts/ 192.168.56.2 : : .03s .00s bash
root pts/ 192.168.56.2 : .00s .49s .08s w

4.使用userdel删除账户

语法 : userdel [-r] username //-r 同时删除家目录

[root@xuliangwei ~]# userdel user1
[root@xuliangwei ~]# ll /home/user1/ -d
drwx------. -- : /home/user1/ //连同家目录一起删除
[root@xuliangwei ~]# userdel -r user1

用户密码管理:

创建完账户后,默认是没有设置密码的,所以该账户是没有办法登陆操作系统。只有使用passwd设置好密码后方可登录系统。
使用passwd为用户创建密码时,为了安全起见,请尽量设置复杂一些。可以按照如下规则设置密码:

1.密码的长度最好大于10位字符
2.密码中包含大小写字母数字以及特殊字符 ! @ # $
3.不规则性(不要出现自己名字、公司名字、自己电话、等等简单的密码)

需要注意:

1.普通用户只能更改自己的密码(密码必须满足8位字符)
2.管理员用户能更改任何人的密码(密码长度无限制)

1.使用passwd命令修改用户密码

语法: passwd [username]

//'passwd'后面不加[username]则是修改当前登陆终端用户的密码。
//如果你登陆的是root管理员用户,后面可以指定要修改的用户。
//只有root管理员才可以修该其他用户的密码,普通账户只能修改自己的密码,并且普通用户没有修改其他用户密码的权限 //root管理员用户登陆,修改root用户密码
[root@localhost ~]# passwd
更改用户 root 的密码。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。 //root用户登陆,修改其他用户的密码
[root@localhost ~]# passwd xuliangwei
更改用户 xuliangwei 的密码
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。 //普通用户修改root管理员密码
[bgx_xuliangwei@xuliangwei ~]$ passwd root
passwd: Only root can specify a user name. //无需用户交互修改密码, 将前者的输出结果, 成为后者的输入
[root@xuliangwei ~]# echo "" | passwd --stdin xuliangwei
Changing password for user xuliangwei.
passwd: all authentication tokens updated successfully.

2.随机复杂密码生成的方式

mkpasswd密码生成工具, -l设定密码长度,-d数子,-c小写字母,-C大写字母,-s特殊字符
[root@xuliangwei ~]# yum install -y expect //需要安装扩展包
[root@xuliangwei ~]# mkpasswd -l -d -c -C -s
|K&13bR)i/

组的基本管理

组账户信息保存在/etc/group/etc/gshadow两个文件中。

/etc/group 组账户信息

[root@node1 ~]# head - /etc/group
root:x::
bin:x::bin,daemon // /etc/group由':' 分割, 分割为4个字段,每个字段的具体含义如下:
字段名称
.组的名称
.组的密码(存在/etc/gshadow)
.组GID信息
.仅显示附加成员,基本成员不显示

/etc/gshadow 组密码信息

[root@node1 ~]# head - /etc/gshadow
root:::
bin:::bin,daemon // /etc/gshadow由 ':' 分割, 分割为4个字段,每个字段的具体含义如下:
字段名称
.组名称
.组密码
.组管理员
.仅显示附加成员,基本成员不显示

1.使用groupadd命令新增组groupadd [-g GID] groupname

//创建基本组, 不指定gid
[root@node1 ~]# groupadd no_gid
[root@node1 ~]# tail -n1 /etc/group
no_gid:x:: //创建基本组, 指定gid为5555
[root@node1 ~]# groupadd -g yes_gid
[root@node1 ~]# tail -n1 /etc/group
yes_gid:x:: //创建系统组,gid从201-999
[root@xuliangwei ~]# groupadd -r sys_group
[root@xuliangwei ~]# tail -n1 /etc/group
sys_group:x::

2.使用groupdel删除组

该命令没有特殊选项,如果一个用户有基本组和附加组,只能删除附加组,不能删除基本组

#删除组
[root@xuliangwei ~]# groupdel active_group #删除用户附加组
[root@docker ~]# id xuliangwei
uid=(xuliangwei) gid=(xuliangwei) groups=(xuliangwei),(devops)
[root@docker ~]# groupdel devops
[root@docker ~]# id xuliangwei
uid=(xuliangwei) gid=(xuliangwei) groups=(xuliangwei) #无法删除用户基本组
[root@xuliangwei ~]# tail -n1 /etc/group
network_sa:x::
[root@xuliangwei ~]# groupdel network_sa
groupdel: cannot remove the primary group of user 'bgx_xuliangwei'
#只有删除用户或者用户变更基本后,方可删除该组

3.使用gpasswd设置组密码

[root@xuliangwei ~]# groupadd devops
[root@xuliangwei ~]# gpasswd devops
Changing the password for group devops
New Password:
Re-enter new password:

用户身份切换:

Linux系统中,有时候普通用户有些事情是没办法操作,除非是root管理员用户才能做到。这时就需要临时切换到root管理员身份来做事了。那么在学习如何切换用户之前,我们先来了解下用户工作环境。

1.Shell分类

交互式shell    //等待用户输入执行的命令(终端操作,需要不断提示)
非交互式shell //执行shell脚本, 脚本执行结束后shell自动退出 登陆shell //需要输入用户名和密码才能进入shell su - xuliangwei
非登陆shell //不需要输入用户和密码就能进入,比如执行sh, bash, su username //查看登陆shell
[root@xuliangwei ~]# pstree //临时设置,永久设置需要写配置文件
[root@xuliangwei ~]# export PS1='[\h@\u \t]#'
[xuliangwei@root ::]#

2.bash shell配置文件

Bash的配置文件保存用户的工作环境

个人配置文件: ~/.bash_profile ~/.bashrc
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc profile类文件, 设定环境变量, 登陆前运行的脚本和命令
bashrc 类文件, 设定本地变量, 定义命令别名 全局配置和个人配置设置冲突, 优先使用个人配置准

3.shell配置文件应用顺序

//登录式shell配置文件执行顺序
/etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc //非登陆式shell配置文件执行顺序
~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh #验证登陆shell和非登陆shell配置文件执行顺序, 在每个配置文件加入一段 “echo”即可。
#最后通过登陆shell和非登录shell方式登陆linux, 即可验证执行顺序。

4.如果全局配置和个人配置出现冲突, 那么如何验证呢?

编辑全局配置 /etc/profile     新增一行: PS1='[\h@\u \t]#'
[xuliangwei@root ::]# //当前终端shell环境 编辑个人配置 ~/.bash_profile 新增一行: PS1='[\u@\H]#' [xuliangwei@root ::]#su bgx_xuliangwei
[bgx_xuliangwei@xuliangwei root]$ [xuliangwei@root ::]# su - bgx_xuliangwei
[bgx_xuliangwei@xuliangwei.com]#

5.创建用户,并登录系统

[root@node1 ~]# useradd xuliangwei
[root@node1 ~]# echo ""|passwd --stdin xuliangwei //使用xuliangwei用户登录当前Linux系统
➜ ~ ssh xuliangwei@192.168.56.111
xuliangwei@192.168.56.111's password:
[xuliangwei@node1 ~]$ //可以使用whoami查看当前登录用户
[xuliangwei@node1 ~]$ whoami
xuliangwei

6.切换用户,使用命令su [-] username

su命令后面跟-代表进入登陆式shell 如果su命令后不加-代表进入非登陆式shell,他们之间的区别在于加载的环境变量不一样。

普通用户su -代表直接切换至root用户身份, 但需要输入root用户密码。
超级管理员root用户使用su - username切换普通用户不需要输入任何密码。

[xuliangwei@node1 ~]$ pwd
/home/xuliangwei //不加 '-' 切换到root账户下时,当前目录没有变化
[xuliangwei@node1 ~]$ su
密码:
[root@node1 xuliangwei]# pwd
/home/xuliangwei
[root@node1 xuliangwei]# exit
exit //加 '-'切换到root账户,当前目录为root账户的家目录。
[xuliangwei@node1 ~]$ su -
密码:
[root@node1 ~]# pwd
/root

7.以某个用户的身份执行某个服务,使用命令su -c username

[root@xuliangwei ~]# su - xuliangwei -c 'ifconfig'
[root@xuliangwei ~]# su - xuliangwei -c 'ls ~'

用户身份提权

su命令在切换用户身份时,如果每个普通用户都能拿到root用户的密码,当其中某个用户不小心泄漏了root的密码,那系统会变得非常不安全。
为了改进这个问题,从而产生了sudo这个命令。
sudo执行一个仅有root身份才能执行的命令是可以办到的,但是需要输入密码,这个密码并不是root的密码而是用户自己的密码。
默认只有root用户能使用sudo命令,普通用户想要使用sudo需要root预先设定,即使用 visudo命令去编辑相关的配置文件/etc/sudoers

Centos7提权

[root@node1 ~]# usermod bgx -G wheel
//日志审计
[root@node1 ~]$ sudo tail -f /var/log/secure

CentOS6提权

#.系统安装后就有sudo命令,如果没有sudo命令,可通过如下方式安装
[root@xuliangwei ~]# yum install -y sudo #.使用`visudo`命令编辑sudo配置文件, 相当于 vim /etc/sudoers`配置文件
[root@xuliangwei ~]# visudo #会对配置进行验证
xuliangwei ALL=(ALL) /bin/rm, /bin/cp #新增 #.配置选项详解
.用户名 .主机名 .角色名 .命令名
root ALL= (ALL) ALL
xuliangwei ALL 使用最高角色执行 /bin/rm, /bin/cp #允许使用sudo执行命令
xuliangwei ALL=(ALL) NOPASSWD:/bin/cp, /bin/rm //不需要密码使用rm、cp命令 #.使用visudo -c检查配置文件
[root@xuliangwei ~]# visudo -c
/etc/sudoers: parsed OK

sudo的使用方法:

命令: vim  /etc/sudoers  == visudo

步骤:

.添加用户并设置密码
[root@Test01 ~]# useradd stu01
[root@Test01 ~]# echo |passwd --stdin stu01 .使用root用户执行visudo命令并进行配置
[root@Test01 ~]# visudo
#在92行左右按照如下格式添加授予权限
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
stu01 ALL=(ALL) ALL .切换到stu01用户
[root@Test01 ~]# su stu01 .使用sudo ls可使用root的ls权限
[stu01@Test01 root]$ ls /root/
ls: cannot open directory /root/: Permission denied
[stu01@Test01 root]$ sudo ls /root/
anaconda-ks.cfg a.txt b.txt c.txt install.log install.log.syslog .使用sudo -l可查看添加的权限
[stu01@Test01 root]$ sudo -l
User stu01 may run the following commands on this host:
(ALL) ALL

sudo的不同使用方法:

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
stu01 ALL=(ALL) /bin/ls,/bin/cat #只允许stu01以root权限使用ls和cat命令
stu01 ALL=(ALL) /bin/ls /root #只允许stu01以root权限查看/root目录 其他目录无权限
stu01 ALL=(ALL) /bin/ls -l /root #只允许stu01以root权限使用ls命令的-l参数
stu01 ALL=(ALL) /bin/* #只允许stu01以root权限使用/bin下面的所有命令
stu01 ALL=(ALL) /bin/*,!/bin/ls #只允许stu01以root权限使用/bin下面除了ls的所有命令
stu01 ALL=(ALL) NOPASSWD:ALL #授予stu01用户所有权限并且不需要输入密码

sudo中间的ALL=(ALL)含义

第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明foobar可以在此主机上执行后面的命令。
第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。
例如,我们想让foobar用户在linux主机上以jimmy或rene的身份执行kill命令,这样编写配置文件:
foobar linux=(jimmy,rene) /bin/kill

当然配置文件/etc/sudoers包含了诸多配置项,可以使用命令man sudoers来获得帮助信息。

下面介绍一个很实用的案例,我们的需求是将Linux服务器设置成如下:
1.仅允许使用普通账户登陆Linux服务器,禁止root直接登录
2.可以让普通用户不输入密码就能sudo su -切换到root账户

//禁止root用户登陆
[root@xuliangwei ~]# sed -i 's@#PermitRootLogin yes@PermitRootLogin no@g' /etc/ssh/sshd_config
[root@xuliangwei ~]# systemctl restart sshd //配置sudo权限
[root@xuliangwei ~]# visudo
User_Alias USER_SU = bgx1,bgx2,xuliangwei
Cmnd_Alias SU = /bin/su
USER_SU ALL=(ALL) NOPASSWD:SU //使用root登陆服务器失败
➜ ~ ssh root@192.168.56.11
root@192.168.56.11's password:
Permission denied, please try again. //使用普通用户登陆服务器
➜ ~ ssh xuliangwei@192.168.56.11
xuliangwei@192.168.56.11's password:
Last login: Mon Oct :: from 192.168.56.2 //使用sudo提权至root用户
[xuliangwei@xuliangwei ~]$ sudo su -
[root@xuliangwei ~]#

用户行为审计方法

通过sudosyslog配合实现对所有用户进行权限的日志审计并将记录日志集中管理,实施后让所有运维和开发执行的sudo命令都有记录可查,杜绝了内部人员的操作安全隐患。
sudo日志审计,专门针对sudo命令的系统用户记录其执行的命令相关信息,所谓sudo命令日志审计,并不记录普通用户的操作,而是记录执行sudo命令的用户操作。

. 齐治 堡垒机
. gateone web跳板机
. python开发的开源跳板机产品
Jumserver跳板(Jumpserver.org中可以查看demo)
. shell跳板机

1.安装sudo、rysylog

[root@node1 ~]# yum install -y sudo rsyslog

//检测是否安装成功
[root@node1 ~]# rpm -qa sudo rsyslog
rsyslog-5.8.-.el6_6.x86_64
sudo-1.8.6p3-.el6.x86_64

2.配置/etc/sudoers记录日志路径

[root@node1 ~]# yum install -y sudo rsyslog

//检测是否安装成功
[root@node1 ~]# rpm -qa sudo rsyslog
rsyslog-5.8.-.el6_6.x86_64
sudo-1.8.6p3-.el6.x86_64

3.配置rsyslog日志服务

[root@node1 ~]# echo "local2.debug /var/log/sudo.log" >>/etc/rsyslog.conf 

//重启rsyslog服务
[root@node1 ~]# /etc/init.d/rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]

4.普通用户使用sudo权限验证日志记录

//使用普通执行sudo命令
[xuliangwei@node1 ~]$ rm -rf /root/test/
rm: 无法删除"/root/test": 权限不够
[xuliangwei@node1 ~]$ sudo rm -rf /root/test/ //检查用户在什么时间执行过什么操作
[xuliangwei@node1 ~]$ cat /var/log/sudo.log
Nov :: : xuliangwei : TTY=pts/ ; PWD=/home/xuliangwei ; USER=root ;
COMMAND=/bin/rm -rf /root/test/

linux用户权限 -> 系统用户管理的更多相关文章

  1. Linux基础知识第七讲,用户权限以及用户操作命令

    目录 Linux基础知识第七讲,用户权限以及用户操作命令 一丶简介linux用户,用户权限,组的概念. 1.1 基本概念 1.2 组 1.3 ls命令查看权限. 二丶用户权限修改命令 1.chmod ...

  2. Entrust - Laravel 用户权限系统解决方案

    Zizaco/Entrust 是 Laravel 下 用户权限系统 的解决方案, 配合 用户身份认证 扩展包 Zizaco/confide 使用, 可以快速搭建出一套具备高扩展性的用户系统. Conf ...

  3. Entrust - Laravel 用户权限系统解决方案 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 - Powered by PHPHub

    说明# Zizaco/Entrust 是 Laravel 下 用户权限系统 的解决方案, 配合 用户身份认证 扩展包 Zizaco/confide 使用, 可以快速搭建出一套具备高扩展性的用户系统. ...

  4. linux用户权限 -> 系统特殊权限

    set_uid 运行一个命令的时候,相当于这个命令的所有者,而不是执行者的身份. suid的授权方法 suid 权限字符s(S),用户位置上的x位上设置. 授权方法: passwd chmod u+s ...

  5. linux用户权限 -> 系统基本权限

    比如rwxr-xr-x linux中正是这9个权限位来控制文件属主(User).属组(Group).其他用户(Other)基础权限. 用户对资源来说, 有三种角色 User(u): 属主用户(文件所有 ...

  6. linux文件权限,用户和组

    文件权限 默认权限分配 umask umask是通过八进制的数值来定义用户创建文件或目录的默认权限的 安全权限的临界点是,文件默认权限是644,目录默认权限是755 [root@Poppy joker ...

  7. 一文带你学习DWS数据库用户权限设计与管理

    前言 本文将介绍DWS基于RBAC(Role-Based Access Control,基于角色的访问控制)的数据库用户权限管理.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成 ...

  8. 有手就行2——持续集成环境—Jenkins安装、插件、用户权限及凭证管理

    有手就行2--持续集成环境-Jenkins安装.插件.权限及凭证管理 持续集成环境(1)-Jenkins安装 持续集成环境(2)-Jenkins插件管理 持续集成环境(3)-Jenkins用户权限管理 ...

  9. Liferay 6.2 改造系列之二十:修改默认添加用户权限及用户是否拥有个人站点的配置

    1.修改默认添加用户权限为User,而非Powers User: 在/portal-master/portal-impl/src/portal.properties文件中有如下配置: # # Inpu ...

随机推荐

  1. 【比赛】NOIP2017 宝藏

    这道题考试的时候就骗了部分分.其实一眼看过去,n范围12,就知道是状压,但是不知道怎么状压,想了5分钟想不出来就枪毙了状压,与AC再见了. 现在写的是状压搜索,其实算是哈希搜索,感觉状压DP理解不了啊 ...

  2. python之冒泡排序

    重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.def Bubble_Sort(lists): ...

  3. View 的setTag() 和 getTag()

    View 的setTag() 和 getTag()ImageView.setTag(""); 就是当多个ImageView用到一个监听器时,能触发不同的情况,是View的方法 Ad ...

  4. MySQL基本了解与使用

    MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格 ...

  5. Dubbo、Zookeeper集群搭建及Rose使用心得(二)

    上篇讲了一下配置,这次主要写一下这个框架开发的大概流程.这里以实现 登陆 功能为例. 一.准备工作 1.访问拦截器 用户在进行网站访问的时候,有可能访问到不存在的网页,所以,我们需要把这些链接重新定向 ...

  6. unity生成Android apk

    前提:本文默认你安装了unity5.6版本,不是这个版本的没有Gradle(new)选项,也默认你安装了Android Studio并配置好了环境变量. Gradle(new):打包Android S ...

  7. PythonCodingRule简略

  8. Ansible10:Playbook的角色及包含

    目录 说明 一.Playbook的包含 1.tasks包含 2.handlers包含 3.混合包含 二.角色(roles) 1.创建role 2.引用roles 3.pre_tasks和post_ta ...

  9. 转:UINavigationBar返回上一级出现nested pop animation can result in corrupted navigation bar

    [self.navigationController popViewControllerAnimated:NO]; 出现上面的错误是因为pop的时候要确保先让本页面加载完成,即如果在viewDidLo ...

  10. git爬坑不完全指北(二):failed to push some refs to ‘XXX’的解决方案

    报错分析        从字面理解,这个报错的意思就是说远程仓库里有一个改动是本地仓库里没有的,所以在push前要先把远程仓库上的改动pull或者fetch到本地仓库.然后再执行push的操作,把本地 ...