zoukankan      html  css  js  c++  java
  • day14 用户权限管理

    一 用户提权

    1. su	使用普通用户登录,然后执行su命令切换到root用户     
            优点:简单   缺点:需要知道root密码
    
    2. sudo  使用普通用户管理,当需要使用root的权限的时候,进行提权   
             优点:安全、方便   缺点:复杂  
    
    
    #  shell的分类及执行的过程 
    交互式shell	#终端操作  输入一条指令,需要等待系统的处理及返回结果 
    非交互式shell	#脚本的执行方式就是  用户执行完指令 不需要跟系统进行交互 
    登录式shell	#通过用户名和密码的方式进行登录的
    非登录式shell	#不是通过用户名和密码的方式进行登录的    执行一个bash,就是一个非登录式shell
    [root@mpd~]# yum install  -y  psmisc # 安装查进程包
    

    二 用户的工作环境相关文件

    #个人配置文件
    /root/.bash_profile
    /root/.bashrc
    
    #全局配置文件
    /etc/bashrc 
    /etc/profile
    /etc/profile.d/*.sh
    
    profile		# 环境变量配置文件  系统登录前执行的一些命令或者脚本 
    bashrc		# 本地变量    别名 
    #在5个文件的第二行加入echo输出 
    
    [root@qls ~]# vim .bashrc 
    [root@qls ~]# vim .bash_profile 
    [root@qls ~]# vim /etc/bashrc 
    [root@qls ~]# 
    [root@qls ~]# vim  /etc/profile
    [root@qls ~]# vim /etc/profile.d/test.sh
    
    
    #登录式Shell执行顺序
    
    /etc/profile  ---》 /etc/profile.d/*.sh ---》 .bash_profile ---》 .bashrc ---》 /etc/bashrc
    #非登录式shell执行顺序 
    .bashrc ---》 /etc/bashrc ---》 /etc/profile.d/*.sh
    

    三 命令用户提权

    su  username		#非登录式shell 		
    su  -  username		#登录式shell
    区别就是加载的配置文件不一样 
    root用户切换到普通用户是不需要密码的,而普通用户切换到root用户是需要密码
    su  -  username  # 在切换用户的时候属于一种登录式shell 跟su命令直接切换的区别就是是否加载了/etc/profile文件,切换之后,工作环境也已经改变了,是在自己的家目录下面 
    

    四 用户提权

    1) 系统组wheel

    # whell 系统组 一般用于日志审计 
    
    # 给用户追加wheel组
    [root@qls ~]# grep  'wheel'  /etc/group
    wheel:x:10:
    [root@qls ~]# usermod  -aG  wheel  test10 
    
    [root@qls ~]# id test10
    uid=1007(test10) gid=1007(test10) groups=1007(test10),10(wheel)
    
    # 相当于把root的权限都给予给了test10用户
    sudo 命令 # 所有操作都可以执行
    

    2) visudo 权限限制

    
    #权限太大   怎么限制权限  
    
    visudo	#进行设置   默认只能root用户使用sudo命令 普通用户是使用不了的 需要root用户设置 
    
    # 只给开发人员只读权限 
    
    [root@qls ~]# visudo	# 简单   有语法检查功能
    ====
    [root@qls ~]# vi /etc/sudoers
    
    # 在100行左右添加此行
    test11  ALL=(ALL)       /usr/bin/cat,/usr/bin/tail
    用户     主机  角色       命令 
    
    	 ALL                       #所有命令				
    	/usr/bin/cat	           #单个命令			
    	/usr/bin/cat,/usr/bin/tail #多个用逗号分割			
    	/usr/bin/*		   #目录下的所有命令				
    	NOPASSWD:		   #免密执行  
    
    #限制某个文件操作
    test11  ALL=(ALL)       NOPASSWD: /usr/bin/tail /var/log/messages 	
    
    #检查语法
    [root@qls ~]# visudo -c
    /etc/sudoers: parsed OK
    
    #执行sodu命令的时候,不提示输入密码
    [root@qls ~]# visudo
    test11  ALL=(ALL)       NOPASSWD:/usr/bin/cat,/usr/bin/tail
    [root@qls ~]# visudo -c
    /etc/sudoers: parsed OK
    
    #  注意:设置命令权限的时候,多个可以使用逗号分割   也可以是/usr/bin/*   ALL
    #  不能授权针对一个目录
    

    五 sudo设置组

    两种方法:
    利用sudo的自己的组   只在sudo里面生效
    利用系统组           是一个真实存在的组
    
    #利用sudo的自己的组 
    [root@qls ~]# useradd  dev01
    [root@qls ~]# useradd  dev02
    [root@qls ~]# echo "1" | passwd  --stdin  dev01
    Changing password for user dev01.
    passwd: all authentication tokens updated successfully.
    [root@qls ~]# echo "1" | passwd  --stdin  dev02
    Changing password for user dev02.
    passwd: all authentication tokens updated successfully.
    
    #用户别名组
    User_Alias DEV = dev01,dev02
    
    #命令别名组
    Cmnd_Alias READ = /bin/cat,/bin/head,/bin/tail
    
    #调用
    DEV     ALL=(ALL)       NOPASSWD: READ
    [root@qls ~]# visudo -c
    /etc/sudoers: parsed OK
    
    # 系统的组  真实组
    [root@qls ~]# groupadd   dev_group
    [root@qls ~]# useradd  -g dev_group  dev11
    [root@qls ~]# useradd  -g dev_group  dev12
    [root@qls ~]# echo "1" | passwd  --stdin  dev11
    Changing password for user dev11.
    passwd: all authentication tokens updated successfully.
    [root@qls ~]# echo "1" | passwd  --stdin  dev12
    Changing password for user dev12.
    passwd: all authentication tokens updated successfully.
    
    [root@qls ~]# visudo
    %dev_group ALL=(ALL)   NOPASSWD: READ
    
    [root@qls ~]# visudo -c
    /etc/sudoers: parsed OK
    

    六 sud设置案例

    #  禁止root用户登录,使用普通用户登录,并且普通用户能够免密的切换到root用户 
    
    #禁止root登录
    [root@qls ~]# sed  -i  '/^#PermitRootLogin/s#.*#PermitRootLogin no#g'  /etc/ssh/sshd_config
    [root@qls ~]# systemctl  restart sshd
    [root@qls ~]# useradd   qiudao
    [root@qls ~]# echo "1"  | passwd  --stdin  qiudao
    Changing password for user qiudao.
    passwd: all authentication tokens updated successfully.
    
    [C:~]$ ssh  qiudao@10.0.0.100
    Connecting to 10.0.0.100:22...
    Connection established.
    To escape to local shell, press 'Ctrl+Alt+]'.
    Last login: Wed Jul 22 09:47:12 2020 from 10.0.0.1
    [root@qls ~]# visudo 
    qiudao  ALL=(ALL)       NOPASSWD: /bin/su
    
    [root@qls ~]# visudo -c
    /etc/sudoers: parsed OK
    
    
    
  • 相关阅读:
    php解析.csv文件
    sublime text3 输入中文的解决方法
    git 的使用
    yii2.0 框架邮件的发送
    yii2.0的分页和排序
    php上传图片文件常用的几个方法
    在yii框架中如何连接数据库mongodb
    yii框架中验证器声明一组内置验证器可以使用短名称引用
    yii中的cookie的发送和读取
    ExpressionToSQL
  • 原文地址:https://www.cnblogs.com/xiaolang666/p/13360656.html
Copyright © 2011-2022 走看看