5.组命令管理**
组账户信息保存在/etc/group和/etc/gshadow两个文件中

/etc/group 组账户信息

[root@localhost ~]# head -2 /etc/group
root:x:0:
bin:x:1:

// /etc/group由“:”分割成4个字段,每个字段具体含义如下
字段名称             注释说明
1.组账户名称      //组的名称
2.密码占位符      //组的密码(存在/etc/gshadow)
3.组GID              //组GID的信息
4.组成员             //这里仅显示附加成员,基本成员不显示

/etc/gshadow 组密码信息
[root@localhost ~]# head -2 /etc/gshadow
root:::
bin:::

// /etc/gshadow由“:”分割成4个字段,每个字段具体含义如下
字段名称             注释说明
1.组账户名称       //组的名称
2.密码占位符       //组密码
3.组GID               //组管理员
4.组成员              //这里仅显示附加成员,基本成员不显示

使用groupadd命令新增组
语法:groupadd [-g GID] groupname
//不指定gid默认从1000开始
[root@localhost ~]# groupadd gtest
[root@localhost ~]# tail -1 /etc/group
gtest:x:5004:

//'-g'指定gid
[root@localhost ~]# groupadd -g 5555 gtest2
[root@localhost ~]# tail -1 /etc/group
gtest2:x:5555:

//'-r'创建系统组,gid从201-999
[root@localhost ~]# groupadd -r test_test
[root@localhost ~]# tail -1 /etc/group
test_test:x:995:

使用groupmod命令修改组信息
//-g 修改组gid
[root@localhost ~]# groupmod -g 5600 gtest2
[root@localhost ~]# tail -5 /etc/group
gtest2:x:5600:

//-n 修改组名称
[root@localhost ~]# groupmod -n gtestx gtest2
[root@localhost ~]# tail -1 /etc/group
gtestx:x:5600:

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

//删除组
[root@localhost ~]# groupdel gtestx

//删除用户附加组
[root@localhost ~]# tail /etc/group
dba:x:1004:oldgirl
students:x:1005:oldgirl
[root@localhost ~]# groupdel students

//无法删除用户基本组
[root@localhost ~]# tail /etc/group
oldboy1:x:1001:
[root@localhost ~]# groupdel oldboy1
groupdel: cannot remove the primary group of user 'oldboy1'
//只有删除用户或者用户变更基本后,方可删除该组

使用gpasswd设置组密码
[root@localhost ~]# gpasswd gtest
Changing the password for group gtest
New Password:
Re-enter new password:

使用newgrp命令切换基本组身份
//检查账户信息
[root@localhost ~]# id dba
uid=998(dba) gid=1004(dba) groups=1004(dba)

//切换普通用户
[root@localhost ~]# su - oldgirl

//创建新文件,并验证权限
[root@localhost ~]# touch group_test
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1577 Oct 18 18:46 anaconda-ks.cfg
-rw-r--r-- 1 root root 0 Oct 29 21:03 group_test

//切换组信息
[xiao@localhost ~]$ newgrp gtest
Password:
[xiao@localhost ~]$ id
uid=1002(xiao) gid=5004(gtest) groups=5004(gtest),1002(xiao)

//建立文件,检查权限
[xiao@localhost ~]$ touch group_new
[xiao@localhost ~]$ ll
total 0
-rw-rw-r-- 1 xiao xiao 0 Oct 29 21:15 group_new

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

shell分类
交互式shell 等待用户输入执行提交的命令(终端操作),exit退出
非交互式shell 执行shell脚本,脚本执行结束shell自动退出
1.把交互命令换成同等功能非交互命令
2.提前做好应答文件

登陆shell 需要输入用户名和密码才能进入shell,su - oldboy
非登陆shell 不需要输入用户和密码就能进入,比如执行,sh,bash

//查看登陆shell
yum install -y psmisc
[root@localhost ~]# pstree

//临时设置,永久设置需要写配置文件
[root@localhost ~]# export PS1='[\h@\u \t]#'
[localhost@root 21:36:33]#
bash配置文件
Bash的配置文件保存用户的工作环境

个人配置文件:~/.bash_profile ~/.bashrc
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc

profile类文件,设定环境变量,登陆前运行的脚本和命令
bashrc类文件,设定本地变量,定义命令别名
字符串环境变量文件:/etc/locale.conf(centOS7)

全局配置和个人配置设置冲突,以个人设置为准
shell配置文件顺序
//登录式shell配置文件执行顺序
/etc/profile-->/etc/profile.d/*.sh-->.bash_profile-->~/.bashrc-->/etc/bashrc

//非登陆式shell配置文件执行顺序
~/.bashrc-->/etc/bashrc-->/etc/profile.d/*d.sh

//如何验证登录shell和非登陆shell,配置文件执行顺序,只需要在每个配置文件加入一段'echo'即可
注意:添加的echo字段必须放置在第二行
//最后通过登录shell和非登陆shell方式登录linux,即可验证执行顺序。
如果全局配置和个人配置出现冲突,那么如何验证呢

编辑全局变量 /etc/profile 新增一行:PS1='[\h@\u \t]#'
[localhost@root 22:10:43]# //当前shell终端环境

编辑个人配置/home/xiao/.bash_profile 新增一行:PS1='\u@\H#'

[localhost@root 22:19:37]#su xiao
[xiao@localhost root]$

[localhost@root 22:20:28]#su - xiao
[xiao@localhost.localdomain]#

创建用户,并登录系统
[localhost@root 22:23:10]#useradd xiao1
[localhost@root 22:23:23]#echo '123'|passwd --stdin xiao1
Changing password for user xiao1.
passwd: all authentication tokens updated successfully.

//使用xiao1用户登录linux
ssh xiao1@10.0.1.31
[localhost@xiao1 20:27:43]#

//使用使用whoami查看当前登录用户
[xiao1@localhost ~]$ whoami
xiao1

切换用户,使用命令su [-] username
su命令后面-代表进入登陆式shell 否则代表进入非登陆式shell 只不过他们所执行的环境配置文件不一样。
普通用户su- 不加username时可以切换root用户,但需要输入密码。
超级管理员root用户使用su -切换普通用户不需要密码。
[xiao1@localhost ~]$ pwd
/home/xiao1

//不加'-'切换到root账户下时,当前目录没有变化
[xiao1@localhost ~]$ su
Password:
[root@localhost xiao1]# pwd
/home/xiao1

以某个用户的身份执行某个服务,使用命令su -c username
[root@localhost ~]# su - xiao -c 'ifconfig'
[root@localhost ~]# su - xiao -c 'ls ~'
hello profile
hello .bash_profile
group_new

7.sudo提升权限*****

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

//CentOS7提权方法,授权用户具有管理员所有的权限
[root@localhost ~]# usermod -G wheel xiao

//日志审计
[root@localhost tmp]# sudo tail -f /var/log/secure
系统安装后就有sudo命令,如果没有sudo命令,可通过如下方式安装
[root@localhost tmp]# yum install -y sudo
使用visudo命令编辑/etc/sudoers配置文件
//执行visudo,等于使用vi编辑sudoers配置文件
[root@localhost tmp]# visudo

//默认
root ALL=(ALL) ALL

//新增
oldboy ALL=(ALL) /bin/rm,/bin/cp
//root默认就拥有sudo最高权限,我们在改行下新增oldboy用户,让此用户拥有sudo权限

案例需求:
要求xiao用户能够添加删除修改所有用户属性(包括密码),但不包括root
visudo
xiao ALL=(ALL) /usr/sbin/user*,/usr/bin/passwd,!/usr/sbin/usermod * root,!/usr/bin/passwd * root,
!/usr/bin/passwd root
别名:
100 User_Alias USER=oldboy,xiao,%dba
101 Cmnd_Alias SU = /usr/sbin/user*,/usr/bin/passwd,!/usr/sbin/usermod * root,!/usr/bin/passwd * root,
!/usr/bin/passwd root
103 USER ALL=(ALL) SU

//使用visudo -c检查配置文件
[root@localhost tmp]# visudo -c
/etc/sudoers: parsed OK

sudo配置选项详解
//下面解释如上每行代表含义
用户名 主机名 角色名 命令名
root ALL= (ALL) ALL
oldboy ALL 使用最高角色执行 /bin/rm,/bin/cp
oldboy ALL=(ALL) NOPASSWD:/bin/rm,/bin/cp

普通用户验证sudo权限
//切换普通用户
[root@localhost ~]# su - xiao

//检查普通用户sudo权限明细
[xiao@localhost ~]$ sudo -l
....省略部分
User xiao may run the following commands on localhost:
(ALL) /usr/sbin/user*, /usr/bin/passwd, !/usr/sbin/usermod * root, !/usr/bin/passwd * root,
!/usr/bin/passwd root

//普通用户删除opt目录,删除失败
[xiao@localhost ~]$ rm -rf /opt/
rm: cannot remove ‘/opt/’: Permission denied

//使用sudo提权,验证用户权限是否可用,需要输入普通用户的密码
[xiao@localhost ~]$ sudo rm -rf /var/opt

sudo免密码配置选项
//普通用户执行sudo不需要输入密码配置
//修改前
oldboy ALL=(ALL) /bin/rm,/bin/cp
//修改后
oldboy ALL=(ALL) NOPASSWD:/bin/rm,/bin/cp

//默认普通用户无法删除
[xiao@localhost ~]$ rm -f /root/002
rm: cannot remove ‘/root/002’: Permission denied

//验证sudo免密码执行权限
[xiao@localhost ~]$ sudo rm -f /root/002
sudo配置组
//如果每增加一个用户需要配置一行sudo,这样设置太麻烦了,所以可以进行如下设置
//新增组
%oldboy ALL=(ALL) bin/rm,bin/cp
/group1这个组的所有用户都拥有sudo的权利,接下来只需要将用户加入该组即可

//创建用户加入该组
[root@localhost ~]# groupadd oldboy
[root@localhost ~]# useradd oldboy -g oldboy
[root@localhost ~]# useradd oldgirl -g oldboy

//root用户建立目录
[root@localhost ~]# mkdir /root/oldboy_sudo

//切换用户并删除测试
[root@localhost ~]# su - oldboy -c 'rm -rf /root/oldboy_sudo'
rm: cannot remove ‘/root/oldboy_sudo’: Permission denied

//使用sudo
[oldboy@localhost ~]$ sudo rm -rf /root/oldboy_sudo
当然配置文件/etc/sudoers包含了诸多配置项,可以使用命令man sudoers 来获得帮助信息

下面介绍一个很实用的案例,我们的需求是把linux服务器设置成这个样子,只允许使用普通账户登录Linux服务器,但可以让普通用户不输入密码就能
sudo su -切换到root账户。

//禁止root用户登录
[root@localhost ~]# sed -i 's@#PermitRootLogin yes@PermitRootLogin no@g' /etc/ssh/sshd_config
[root@localhost ~]# systemctl restart sshd

//配置sudo权限
[root@localhost ~]# visudo
User_Alias USER=oldboy,xiao,%dba
Cmnd_Alias SU = /usr/sbin/user*
USER ALL=(ALL) SU

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

/var/log/message 公共日志
时间 地点(主机名) 人物(进程) 信息
/var/log/secure 安全日志

安装sudo、rsyslog
yum install -y sudo rsyslog

linux系统用户管理(二)的更多相关文章

  1. linux系统用户管理(一)

    Linux系统用户管理1.用户管理*****2.Linux用户命令****3.用户创建的原理***4.密码管理***5.组命令管理**6.身份切换*****7.sudo提升权限***** 我们现在所使 ...

  2. 实验三:Linux系统用户管理及VIM配置

    项目 内容 这个作业属于哪个课程 班级课程的主页链接 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043133-木腾飞 学习目标 1.学习Linux系统用户管理2.学习vim使用及配置 实 ...

  3. 实验三 Linux系统用户管理及VIM配置

    项目 内容 这个作业属于哪个课程 班级课程的主页链接 这个作业的要求在哪里 作业要求链接接地址 学号-姓名 17041428-朱槐健 作业学习目标  1.学习Linux系统用户管理 2.学习vim使用 ...

  4. Linux系统用户管理

    一.Linux账户 广义上讲,Linux的账户包括用户账户和组账户两种. Linux系统下的用户账户有两种,普通用户和超级用户.普通用户在系统中的任务就是普通工作,管理员在系统上的任务就是对普通用户和 ...

  5. linux 下用户管理

    linux 下用户管理 一.用户的分类 1.超级用户:root UID=0 2.系统用户:不需要登录系统,对应用程序服务,主要维护系统的正常运行:UID = 1 ~ 499(RHEL7 = 1 ~ 9 ...

  6. linux系统--用户和用户组

    一.用户和用户组的概念 用户:使用操作系统的人 用户组:具有相同系统权限的一组用户.在linux系统中可以存在多个用户组 1.1 /etc/group 这里存储当前系统中所有用户组的信息 每一行对应一 ...

  7. centos linux系统日常管理复习 CPU物理数逻辑核数,iftop ,iotop ,sar ,ps,netstat ,一网卡多IP,mii-tool 连接,ethtool速率,一个网卡配置多个IP,mii-tool 连接,ethtool速率 ,crontab备份, 第十八节课

    centos linux系统日常管理复习 物理CPU和每颗CPU的逻辑核数,uptime ,w,vmstat,iftop ,iotop ,sar ,ps,netstat ,一个网卡配置多个IP,mii ...

  8. centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课

    centos linux系统日常管理3  服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...

  9. centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课

    centos  Linux系统日常管理2  tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课 ...

随机推荐

  1. POJ - 1127 Jack Straws(几何)

    题意:桌子上放着n根木棍,已知木棍两端的坐标.给定几对木棍,判断每对木棍是否相连.当两根木棍之间有公共点或可以通过相连的木棍间接的连在一起,则认为是相连的. 分析: 1.若线段i与j平行,且有部分重合 ...

  2. 51nod 1284:2 3 5 7的倍数 容斥原理

    1284 2 3 5 7的倍数 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数. 例如N ...

  3. SEO教程:快速增加360搜索引擎收录,360自动推送批量推送版

    上次改编了一下百度的JS推送代码,实现了批量推送 传送门>>>百度链接提交-js代码推送批量推送版 这次我们来研究360js自动推送代码. <script> (funct ...

  4. php中const和define的区别

    define部分:宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段.(宏的功能很强大,但也容易出错,所以其利弊大小颇有争议.)宏的语法为:#define 宏名称 宏值作为一种建议和一种广大 ...

  5. rabbitmq设置队列消息存活时间

    public static final int ALIVETIME = 600000; public static final String QUEUE = "hnyz_gs_queue&q ...

  6. MySQL-TPS,QPS到底是什么

    计算TPS,QPS的方式 qps,tps是衡量数据库性能的关键指标,网上普遍有两种计算方式 TPS,QPS相关概念 QPS:Queries Per Second         查询量/秒,是一台服务 ...

  7. Restful设计相关

    1.get,从服务器获取资源. 2.post 新增资源. 3.put 更新完整资源. 4.patch 更新部分资源. 5. delete 删除资源.

  8. Ubuntu apt install 下载软件很慢的解决办法

    1.打开/etc/apt/sources.list 将内容替换为以下内容(注意把sources.list文件备份一下) deb http://mirrors.aliyun.com/ubuntu/ xe ...

  9. EditText制作简单的登录界面

    EditText与之前的TextView和Button的用法大体相同,用法案例如下: activity_edit_text.xml: <?xml version="1.0" ...

  10. Est数据库

    Est--编码序列,gene 片段且具有标签 其中,est数据库中是类似测序1.测序2.测序3这样的序列.实验室测得的序列是cDNA,通过上图方法拼接,电脑克隆(dbest).如果有overlap则认 ...