跨行学Linux运维 权限体系

注意

目录最高权限755
文件最高权限644

sudo 提权

①可以让普通的用户执行命令拥有root的权限 类似皇帝赏赐尚方宝剑
②和 su 不同 sudo是和权限相关 su是切换用户使用

su - oldboy    #切换到 oldboy 用户

在root切换到其他用户 不需要密码
普通用户切换到root用户需要root密码
普通用户切换到普通用户需要普通用户的密码
③禁止root登录系统 普通用户无法执行root的命令
④运维拥有root的密码,禁止root后可以使用,su切换到root身份管理服务器
⑤开发人员没有root密码 使用自己普通用户登录系统
只能查看 没有删除的权限

第一步
准备两个窗口
第一个窗口为root登录 需要配置sudo权限
第二个窗口为普通用户登录 测试sudo的权限

su - oldboy   

第二步
oldboy用户查看系统日志 查看日志没有权限

[oldboy1@heng ~]$ cat /var/log/messages
cat: /var/log/messages: Permission denied

第三步
oldboy用户必须拥有可以查看messages的权限
查看文件的权限 600权限 所有普通用户都无法查看

[oldboy1@heng ~]$ ll /var/log/messages
-rw------- 1 root root 134679 Feb  1 16:01 /var/log/messages

[root@heng ~]# chmod o+r /var/log/messages
[root@heng ~]# ll /var/log/messages
-rw----r-- 1 root root 134742 Feb  1 16:10 /var/log/messages

如何针对单个用户设置权限查看,其他用户不授权?
进行sudo授权—>相当于皇帝授予尚方宝剑
sudo授权 只能让你使用cat命令

查看当前授权的命令–>查看我是否拥有尚方宝剑

sudo -l      #查看授权的命令   默认没有

[oldboy1@heng ~]$ sudo -l

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for oldboy1: 
Sorry, user oldboy1 may not run sudo on heng.

第四步
root开始对oldboy用户进行授权 —>下发大宝剑

①直接编辑配置文件
vim /etc/sudoers

②使用visudo方式 有语法错误的提示
使用visudo 实际编辑的 /etc/sudoers配置文件

快速切换至100行 增加一行

授权单条
授权给哪个用户   允许的主机=成为谁   授权的命令
oldboy           ALL=(ALL)		     /usr/bin/cat    # 授权单条命令

授权多条
oldboy           ALL=(ALL)		     /usr/bin/cat,/usr/bin/less    # 授权多条命令

第五步
授权运维人员授权所有命令

授权全部命令
oldboy           ALL=(ALL)		     ALL    # 授权所有
命令

第六步
可以空all不允许使用哪些命令 命令取反使用

授权 对几个命令取反
oldboy           ALL=(ALL)		     ALL,!/usr/bin/cat    # 授权单条命令

使用sudo不需要输入用户的密码

oldboy  ALL=(ALL)       NOPASSWD:ALL,!/usr/bin/sed,!/usr/bin/vim

授权格式:

授权给那个用户允许的主机=提升为哪个用户授权命令
oldboyALL=(ALL)/user/bin/cat
oldboyALL=(ALL)/user/bin/cat,/usr/bin/less
oldboyALL=(ALL)ALL
oldboyALL=(ALL)ALL,!/usr/bin/cat

普通用户使用:
sudo -l # 查看当前授权的命令
sudo -k # 清空缓存密码
sudo cat # 执行sudo命令

如果给开发和测试其他部分授权
1》最小化授权
2》不授权ALL
3》危险的命令不授权
4》如果要授权 必须让开发发邮件申请 领导审批才能通过

大部分公司使用堡垒机 跳板机 日志审计
例如:jumpserver shell跳板机

权限体系

rwx的具体作用,以及隐藏权限等

Linux系统如何知道我对某个文件和某个目录有什么权限?
①我是谁 当前你以什么身份登录的系统
②当前的身份和某个文件对应对的权限位
③根据对用的关系 找到对应的权限

-rw-r–r--1rootroot10Feb 12.txt

数字表示权限位
r=4
w
=2
x===1

三位为一组权限位 三位进行相加得到文件的权限
rw-r–r-- ====> 相加结果 644

修改属主属组使用 chown oldboy.oldboy

修改权限位
第一种当时:字母授权
使用 u g o 的方式

字母英文含义
uuser属主====前三位
ggroup属组====中三位
oother其他用户====后三位

语法格式:
chmod 权限位+权限 file
chmod u+x file
chmod u-x file

案例1: 给属主授予执行权限

[root@heng ~]# chmod u+x 1.txt 
[root@heng ~]# ll 1.txt 
-rwxr--r--. 1 root root 36 Jan 31 18:49 1.txt

案例2:给属主取消执行权限

[root@heng ~]# chmod u-x 1.txt 
[root@heng ~]# ll 1.txt 
-rw-r-xr-x. 1 root root 36 Jan 31 18:49 1.txt

案例3:同时修改属主和属组权限位 同时授予执行权限

[root@heng ~]# chmod ug+x 1.txt 
[root@heng ~]# ll 1.txt 
-rwxr-xr--. 1 root root 36 Jan 31 18:49 1.txt

案例4:所有权限位都授予执行权限

[root@heng ~]# chmod +x 1.txt 
[root@heng ~]# ll 1.txt 
-rwxr-xr-x. 1 root root 36 Jan 31 18:49 1.txt

案例5:用a表示所有权限位

[root@heng ~]# chmod a+x 1.txt 
[root@heng ~]# ll 1.txt 
-rwxr-xr-x. 1 root root 36 Jan 31 18:49 1.txt

案例6:不加任何东西表示所有权限位

[root@heng ~]# chmod +x 1.txt 
[root@heng ~]# ll 1.txt 
-rwxr-xr-x. 1 root root 36 Jan 31 18:49 1.txt

第二种方式:数字授权
语法格式:
chmod 655 file

案例1:授权 某个文件 为 rw-r-xr-x

[root@heng ~]# chmod 655 1.txt 
[root@heng ~]# ll 1.txt 
-rw-r-xr-x. 1 root root 36 Jan 31 18:49 1.txt

案例2:授权 某个文件 为 rw-------

[root@heng ~]# chmod 600 1.txt 
[root@heng ~]# ll 1.txt 
-rw-------. 1 root root 36 Jan 31 18:49 1.txt

rwx对于文件的具体作用

r read 读取文件
vim less cat more sed awk 查看文件

w write 写入内容
vim sed echo 等

x execute 可执行
如果文件中是可执行命令 使用x执行权限

授权 某个文件 r权限

普通用户端进行r权限测试
针对r权限 研究发现一下结果:
①可以查看文件 使用 top grep awk sed less等命令
②不允许修改文件 但是可以强制保存
③不能执行文件 PS:可以使用解释器直接运行 bash test.sh
④如果能正常查看文件必须上级目录拥有r-x 权限5
Linux中默认目录权限是755权限 大部分文件 对于普通用户来

授权 某个文件 w权限

普通用户端进行w权限测试
针对w权限 研究发现一下结果:
①不允许读取文件
②不允许修改文件 但是可以追加内容
③可以强制写入 但是会清空原来的内容
④不能执行文件
文件只有w权限 跟 没有权限差不多
如果想写入内容 必须和r一起配置

授权 某个文件 x权限

普通用户端进行x权限测试
针对x权限 研究发现一下结果:
①不能读取文件
②不能修改文件
③不能执行文件
文件只有x权限 如果想要执行文件必须和r一起配置使用

rwx对于目录的具体作用

环境准备

两个窗口
一个root 一个是oldboy

授权 某个目录 r权限
root端

普通端进行r权限测试
针对r权限 研究结果如下:
①不能cd到目录下
②只能看到目录下的文件名称 无法查看到详细信息
③不能写入
④不能执行
⑤不能追加
目录只有w权限和什么权限都没有
w和r配合没有任何权限
w和x配合 能删除 能创建 但是无法查看
w权限意义 控制着目录下是否增删改查 必须和rx配合

授权 某个目录 x权限

普通端进行x权限测试
①可以进入到目录
②不能删除
③可以写入 但是不能查看
目录只有x权限 作用可以cd进入到目录
如果x权限正常cd和查看文件 必须和r配置使用 r-x

Linux系统中
目录默认的权限为755
7为root管理员用户 拥有最高权限
7为r-x权限 所有普通用户可以正常读取系统中的配置文件 但是无法编辑 删除 改名等操作

文件的默认权限为644
6为root管理员用户 可读写权限
4为r–权限 所有普通用户可以读取文件 但是无法编辑文件 必须有上级目录权限

重点
在Linux系统中如果运行程序必须使用一个虚拟用户运行
如果用户通过这个程序往磁盘中写入数据 必须以当前运行程序的虚拟用户的身份写入到磁盘中
所以我们能不能处理permission denied的问题?
当前的nginx服务以虚拟用户www来运行
用户连接nginx服务写入磁盘的时候 比如写入/data目录
data目录对于www用户来说拥有什么权限才可以写入
默认 /data


解决办法
wx 可以往里写内容 无法查看
正常往目录下增删改查 必须有rwx的权限7
给其他位rwx权限
以上的方法 不只是www可以写入内容 其他任何普通用户都可以往/data中写 工作中禁止给其他用户授权twx权限

属主属组修改为www即可

UMASK 控制默认文件和目录权限的值

作用:控制我们默认创建的目录和文件属性
目录默认 755 最高777
文件默认 644
工作中不修改UMASK值

①查看UMASK值

umask

②目录和文件的默认属性是由目录和文件的最大权限减去UMASK值得到了
对于一个目录来说最大的权限是什么?可以做任何操作 增删改查
目录:777权限
对于一个普通文件来说最大的权限是什么?可以读写操作 系统默认创建的就是普通文件
文件:666权限

目录:777
-022
=755 rwxr-xr-x

文件:666
-022
=755 rw-r–r--

③修改UMASK值 临时修改


PS:UMASK特殊情况 如果umask值有奇数位 则在文件相减后需要在奇数位加1

案例:创建一个文件权限是000的 目录权限为111 umask值设置为多少?


隐藏权限 -i -a

常用的隐藏权限
a append 追加
i immutabled 无敌 没有任何权限

①查看隐藏权限 lsattr

[root@heng ~]# lsattr /etc/passwd
---------------- /etc/passwd

②配置隐藏权限 chattr +a passwd

[root@heng ~]# chattr +a /etc/passwd
[root@heng ~]# lsattr /etc/passwd
-----a---------- /etc/passwd

③测试文件权限
root对加a的文件 只能追加新的内容 没有其他任何权限 但是会生成写带波浪线的文件

[root@heng ~]# ll /etc/|grep 'pass'
-rw-r--r--   1 root root   1196 Feb  1 10:00 passwd
-rw-r--r--.  1 root root   1151 Feb  1 10:00 passwd-

④取消隐藏权限

[root@heng ~]# chattr -a /etc/passwd
[root@heng ~]# lsattr /etc/passwd
---------------- /etc/passwd

⑤配置隐藏权限 i 权限

[root@heng ~]# chattr +i /etc/passwd
[root@heng ~]# lsattr /etc/passwd
----i----------- /etc/passwd

⑥测试 i 权限
root对加i的文件 没有任何权限

文件的特殊权限位

①suid 属主有一个特殊权限 4
②sgid 属组有一个特殊权限 2
③other 其他权限位 有一个特殊权限 1

[root@heng ~]# ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27856 Apr  1  2020 /usr/bin/passwd
[root@heng ~]# stat   /usr/bin/passwd
  File: ‘/usr/bin/passwd’
  Size: 27856     	Blocks: 56         IO Block: 4096   regular file
Device: 803h/2051d	Inode: 50512504    Links: 1
Access: (4755/-rwsr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-02-01 10:00:01.458702727 +0800
Modify: 2020-04-01 11:57:19.000000000 +0800
Change: 2020-12-29 16:22:45.025030393 +0800
 Birth: -

s权限位 是属于 属主特殊权限位
特点:隐藏属主的x权限 属主的x权限位显示位s
作用:如果给命令s权限 则执行这个命令的时候相当于有这个命令的属主权限

如果我们给命令设置了s权限,则所有用户使用这个命令的时候都相当于root

授权方式
chmod u+s 授权
chmod 4755 授权
chmod 0755 授权

[root@heng ~]# chmod u+s /usr/bin/rm
[root@heng ~]# ll /usr/bin/rm
-rwsr-xr-x. 1 root root 62872 Nov 17 06:24 /usr/bin/rm

sgid 运行命令的时候相当于属于这个命令所在的组的权限
如果给目录加sgid 其他用户在当前目录下创建的所有文件属组都变成当前用户身份


其他位特殊权限t 粘滞位
作用:控制用户在当前的目录只能管理自己的文件 不能删除其他用户文件

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值