• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

用户组的管理及用户的授权和提权【显哥出品,必为精品】

运维基础 lixian 5年前 (2019-12-17) 1075次浏览 1个评论 扫描二维码
文章目录[隐藏]

用户组的管理

跟组相关的文件 /etc/group、/etc/gshadow

/etc/group 存放用户组的信息

[root@lixian ~]# head -1  /etc/group	#以:为分割符,分为4列 
root:x:0:

第一列: 组的名称
第二列: 组的密码的占位符
第三列: 组的ID ,GID
第四列: 哪个用户使用这个组作为附加组,这个地方存放的是用户的名称,多个逗号分隔

/etc/gshadow 存放用户组的密码信息

[root@qls ~]# head -1  /etc/gshadow		#组的密码的信息  
root:::
ntp:!::
mail:::postfix

第一列: 组的名称
第二列: 组的密码,空或者!表示没有密码
第三列: 组的管理者
第四列: 哪个用户使用这个组作为附加组,这个地方存放的是用户的名称,多个逗号分隔

用户组的命令

groupadd #创建用户组

-g #指定的组的ID,GID
-r #创建系统组

[root@lixian ~]# groupadd   user01                   #创建一个组
[root@lixian ~]# grep  'user01' /etc/group
user01:x:2016:
[root@lixian ~]# groupadd   -g  2018 user02     #创建组并且指定组的ID
[root@lixian ~]# grep  'user02' /etc/group
user02:x:2018:
[root@lixian ~]# groupadd   -r  user04              #创建一个系统组
[root@lixian ~]# grep  'user04' /etc/group
user04:x:663:

groupmod #修改组的信息

-g #修改组的ID
-n #修改组的名称

[root@lixian ~]# groupmod   -g 2019  user01      #修改组的ID
[root@lixian ~]# grep  'user01' /etc/group
user01:x:2019:
[root@lixian ~]# groupmod   -n  user10  user01  #修改组的名称
[root@lixian ~]# grep  'user01' /etc/group
[root@lixian ~]# grep  'user10' /etc/group
user10:x:2019:

groupdel #删除组

可以删除没有用户作为主组的组,如果只是附加组,删除不会提示

[root@lixian ~]# groupdel   user10              #删除一个组
[root@lixian ~]# grep  'user10' /etc/group
[root@lixian ~]# grep  'web' /etc/group        
oldboy1:x:2002:web
web:x:2015:
[root@lixian ~]# groupdel   web                #删除一个有用户作主组的组
groupdel: cannot remove the primary group of user 'web'
[root@lixian ~]# usermod   -g user03  web            
[root@lixian ~]# groupdel   web

用户的授权

su #需要输入root的秘密才可以登录
sudo #权限控制,给指定的权限,但配置比较复杂

shell的类型

交互式shell #命令行的操作,交互式的操作shell
非交互式shell #脚本的执行方式,一键操作
登录式shell #根据用户名和密码的方式登录,单独的会话窗口
非登录式shell #在当前shell窗口执行,不需要用户名和密码,bash登录
个人的环境变量或别名配置文件
用户家目录下的.bashrc
用户家目录下的.bash_profile
全局的环境变量
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
profile类: 定义系统环境变量和系统登录所要执行的命令或者脚本
bashrc类: 设置本地的变量及别名,系统登录所要执行的命令或者脚本

登录式shell配置文件的执行顺序

1、/etc/profile
2、/etc/profile.d/*.sh
3、~/.bash_profile
4、~/.bashrc
5、/etc/bashrc

非登录式shell配置文件的执行顺序

1、~/.bashrc
2、/etc/bashrc
3、/etc/profile.d/*.sh

su username #切换的时候,加载的环境变量的配置文件不一样 ,只切换的用户的身份,没有切换环境
su – username #切换用户的身份的同时,也切换了环境/etc/profile

[root@lixian /etc]# su lx                   #使用 su 切换用户普通用户,不需要输入密码
[lx@lixian etc]$ cd /home/
[lx@lixian home]$ su root                #普通用户切换到其他用户是需要密码的
Password: 
[root@lixian /home]# su - lx             #使用 su - 切换用户
Last login: Mon Dec 16 15:04:44 CST 2019 on pts/1
[lx@lixian ~]$ 

以其他用户的身份执行命令

[root@lixian ~]# su - test -c "pwd"		#以其他用户的身份执行命令 
/home/test

sudo提权

sudo #针对某一个命令的权限,让一个普通用户拥有高权限

root用户才能配置

visudo #配置sudo权限,编辑/etc/suduers
和root用户有个相同的组——wheel组,系统日志管理

[root@lixian ~]# useradd lx -G wheel                    #给lx用户添加到wheel组
[root@lixian ~]# id lx
uid=1000(lx) gid=1000(lx) groups=1000(lx),10(wheel)
[root@lixian ~]# echo '1' |passwd --stdin lx           #设置密码
[root@lixian ~]# su - lx
[lx@lixian ~]$ rm -rf /opt/                                       #直接删除是删不掉的
rm: cannot remove ‘/opt/’: Permission denied
[lx@lixian ~]$ sudo mkdir /opt                               #需要用sudo,然后删除

具体给某个用户设置权限

[root@lixian ~]# useradd   dev01
[root@lixian ~]# echo '1'  |passwd  --stdin  dev01
[root@lixian ~]# visudo                                #设置具体权限
dev01   ALL=(ALL)       /bin/cat
[root@lixian ~]# su -  dev01
[dev01@lixian ~]$ sudo  -l                           #查看设置的权限
User dev01 may run the following commands on qls:
    (ALL) /bin/cat
[dev01@lixian ~]$ cat  /var/log/secure
cat: /var/log/secure: Permission denied
[dev01@lixian ~]$ sudo cat  /var/log/secure #使用sudo来使用权限
Dec 16 18:38:48 qls sudo: pam_unix(sudo:session): session opened for user root by root(uid=0)

visudo设置语法:

dev01 ALL=(ALL) /bin/cat,/bin/yum,/bin/*
用户 主机=角色 命令 多个命令使用逗号分隔
/bin/* 表示/bin目录下的所有目录
无密码执行命令,在命令之前加 NOPASSWD:
配置完之后,可以使用visudo -c 检查语法 。

sudo的设置方法

①:visudo认可的组,不是真实系统组

Cmnd_Alias READ = /bin/cat #命令的别名
DEV ALL=(ALL) NOPASSWD: READ #授权
给用户设置权限READ相当于设置权限 /bin/cat

②:真实的组

[root@lixian ~]# groupadd dev
[root@lixian ~]# usermod -g dev dev01
[root@lixian ~]# usermod -g dev dev02
#visudo设置
%dev ALL=(ALL) NOPASSWD: READ,SOFTWARE

案例:禁止root用户远程登录

禁止root用户远程登录,使用普通用户进行远程登录,免密的切换到root。

#进行配置root禁止远程登录
[root@lixian ~]# vim  /etc/ssh/sshd_config
38 PermitRootLogin no

#重启对应的服务
[root@lixian ~]# systemctl   restart  sshd

#创建普通用户
[root@lixian ~]# useradd  yunwei
[root@lixian ~]# echo  '1' | passwd  --stdin  yunwei

#visuod设置
yunwei  ALL=(ALL)     NOPASSWD: /bin/su

#使用普通用户登录
[C:\~]$ ssh  yunwei@10.0.0.100

本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:用户组的管理及用户的授权和提权【显哥出品,必为精品】
喜欢 (33)

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽
  1. 1234
    匿名2019-12-19 14:32