用户权限的管理与提权

用户权限的管理:

提示:权力越大,责任越大


环境变量的设置:

提示:这里可以添加要学的内容
例如:

1、 bash shell 配置文件

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

profile类文件, 设定环境变量, 登陆前运行的脚本和命令。
bashrc 类文件, 设定本地变量, 定义命令别名

PS: 如果全局配置和个人配置产生冲突,以个人配置为准。

2、登陆系统后,环境变量配置文件的应用顺序

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

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

PS: 验证使用echo在每行添加一个输出即可

3、登录式和非登录式的区别体现

su - username 属于登陆式shell,
su username 属于非登陆式shell,(可能出现问题)
区别在于加载的环境变量不一样。

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

关闭root远程直接连接的方法:
vim 打开/etc/ssh/sshd_config文件
#PermitRootLogin yes (去掉注释#,并改yes为no)
systemctl restart sshd (重启设置)

sudo 提权的方式:

一、利用系统内自定义的设置

注意:该分组不是系统真实存在的组.

[root@bgx ~]# visudo  #也可以使用vim  /etc/sudoers来配置
# 1、使用sudo自定义的分组,这个是系统group不存在的组
User_Alias OPS = oldboy,alex
User_Alias DEV = bgx,py

# 2、定义可执行的命令组,便于后续调用
Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start
Cmnd_Alias STORAGE = /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

# 3、使用sudo开始分配权限
OPS  ALL=(ALL) NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCESSES
DEV  ALL=(ALL) SOFTWARE,PROCESSES

#4、登陆对应的用户使用 sudo -l 验证权限

二、自己设置一个分组(真实组)

注意:在系统中设置两个真实存在的组

#1、添加两个真实的系统组, group_dev group_op
[root@www ~]# groupadd group_dev
[root@www ~]# groupadd group_op

#2、添加两个用户(给两个组增加用户),记得给用户设置密码。
group_dev(user_a  user_b)   group_op(user_c  user_d)
[root@www ~]# useradd user_a -G group_dev
[root@www ~]# useradd user_b -G group_dev
[root@www ~]# useradd user_c -G group_op
[root@www ~]# useradd user_d -G group_op

#3、在visudo 中配置相应的规则,可以用系统自带的。
[root@www ~]# visudo
    Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
    Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
    Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start
    Cmnd_Alias STORAGE = /bin/mount, /bin/umount
    Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp
    Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
# 分配权限,尽量把设置的权限都用上,否则有时候会有warning。
    %group_dev ALL=(ALL) SOFTWARE
    %group_op ALL=(ALL) SOFTWARE,PROCESSES

#4、检查sudo是否配置有错
[root@www ~]# visudo -c
/etc/sudoers: parsed OK

#5、检查user_a 和 user_d的sudo权限
[user_a@www.oldboyedu.com ~]$ sudo -l
User user_a may run the following commands on www:
    (ALL) /bin/rpm, /usr/bin/yum

[user_d@www.oldboyedu.com ~]$ sudo -l
User user_d may run the following commands on www:
    (ALL) /bin/rpm, /usr/bin/yum, /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
注意:查看自己的权限用sudo -l

权限的分类与更改:

1、权限的查看、分类

注意:在Linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。

当我们使用ls -l查看一个文件的详细属性时,能看到每个文件都有一个9位基本权限位。
在这里插入图片描述
用户对文件资源,有三种角色ugo,当一个用户访问文件流程如下:

  1. 判断用户是否为文件所有者,如果是则按所有者的权限进行访问
  2. 判断用户是否为文件所有组成员,如果是则按组的权限进行访问
  3. 如果不是所有者,也不是该文件所属组,则按匿名权限(即其他)进行访问
    在这里插入图片描述
特殊:root有绝对的权限,不受影响。

2、更改权限的方式:chmod

注意:root用户可以变更所有文件的权限,而普通用户仅能变更属于自己的文件。

chmod的用法: 
chmod [-cfvR] [--help] [--version] mode file...
参数说明
mode : 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
其中:
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本

eg :  chmod -R 755 dir/ #修改目录及子目录权限
不同权限的影响范围:(对于文件)

在这里插入图片描述
1、读取权限(r)具有读取\阅读文件内容权限

1)只能使用查看类命令cat、head、tail、less、more

2、写入权限(w)具有新增、修改文件内容的权限

1)使用vim编辑会提示权限拒绝,但可强制保存,会覆盖文件的所有内容
2)使用echo命令重定向的方式可以往文件内写入数据,>> 可以进行追加
3)不能删除文件,因为删除文件看的不是文件的属性,需要看上级目录是否有w的权限

3、执行权限(x)具有执行文件的权限

1)执行权限什么用都没有
2)如果普通用户需要执行文件,需要配合r权限

不同权限的影响范围:(对于目录)

1、读取权限(r),如果目录只有r权限: 具有浏览目录及子目录权限

1)可以使用ls命令浏览目录及子目录, 但同时也会提示权限拒绝
2)使用ls -l命令浏览目录及子目录,文件属性会带问号,并且只能看到文件名
总结: 目录只有r权限,仅仅只能浏览内的文件名,无其他操作权限

2、写入权限(w), 如果目录只有w权限: 具有增加、删除或修改目录内文件名权限(需要x权限配合)

PS: 如果目录有w权限, 可以在目录内创建文件, 删除文件(跟文件本身权限无关)
不能进入目录、不能复制目录、不能删除目录、不能移动目录

3、执行权限(x),如果目录只有x权限

1)只能进入目录
2)不能浏览、复制、移动、删除

Linux 权限总结与注意事项
PS:   *** 文件能否删除,需要查看上级目录是否有 w 权限 ***
       *** 文件的 x权限小心给予,目录的 w权限小心给予 ***
       *** 文件通常设定的权限是644 ***
       *** 目录设定的权限是755 ***
       *** 控制目录权限755,如果有普通用户需要操作目录里面的文件,再来看文件的权限 ***
修改目录的属主及属组: chown -R 属主.属组 目录
#示例: 递归修改目录及目录下的所有文件属主和属组
[root@bgx ~]# chown -R root.root dir/
#示例: 只递归修改目录及目录下的所有文件的属组
[root@bgx ~]# chown -R  .root dir/
参考文献

https://www.xuliangwei.com/oldxu/1401.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值