# linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十三)--权限设置注意事项和属主属组设置sudo操作

news2024/11/20 13:35:20

linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十三)–权限设置注意事项和属主属组设置sudo操作

一、linux 权限设置 特殊注意事项

1、使用root用户创建一个文件夹(/oo),权限默认,权限如下:

[root@temphost /]# pwd
/
[root@temphost /]# mkdir oo
[root@temphost /]# ll
drwxr-xr-x 2 root root 4096 10月 14 16:24 oo

在这里插入图片描述

2、需要在oo目录下创建文件(oo/xx.txt),需要给777权限:

[root@temphost /]# touch oo/xx.txt
[root@temphost /]# ls -l oo/
总用量 0
-rw-r–r-- 1 root root 0 10月 14 16:28 xx.txt
[root@temphost /]# chmod 777 oo/xx.txt
[root@temphost /]# ll oo/
总用量 0
-rwxrwxrwx 1 root root 0 10月 14 16:28 xx.txt

在这里插入图片描述

3、切换到djh用户(不是文档所有者,也不是同组用户,属于other部分):

4、问题1:djh用户是否可以打开oo/xx.txt文件?【能打开】

5、问题2:djh用户是否可以编辑oo/xx.txt文件?【可以】

6、问题3:djh用户是否可以删除oo/xx.txt文件?【不可以,同样还不允许创建文件/文件夹、移动文件、重命名文件】

[root@temphost /]# su djh
[djh@temphost /]$ pwd
/
[djh@temphost /]$ vim oo/xx.txt
[djh@temphost /]$ rm -f oo/xx.txt
rm: 无法删除"oo/xx.txt": 权限不够
[djh@temphost /]$ cat oo/xx.txt
djh用户修改了此文件(/oo/xx.txt)

[djh@temphost /]$ touch oo/aa.txt
touch: 无法创建"oo/aa.txt": 权限不够
[djh@temphost /]$ mv oo/xx.txt /
mv: 无法将"oo/xx.txt" 移动至"/xx.txt": 权限不够

在这里插入图片描述

7、在Linux中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除。

[djh@temphost /]$ su root
密码:
[root@temphost /]# pwd
/
[root@temphost /]# ll oo/
总用量 4
-rwxrwxrwx 1 root root 45 10月 14 16:41 xx.txt
[root@temphost /]# chmod -R 777 oo/
[root@temphost /]# ll
总用量 106
drwxrwxrwx 2 root root 4096 10月 14 16:28 oo
[root@temphost /]# su djh
[djh@temphost /]$ pwd
/
[djh@temphost /]$ touch oo/aa.txt
[djh@temphost /]$ rm -f oo/xx.txt
[djh@temphost /]$ ll oo/
总用量 0
-rw-r–r-- 1 djh root 0 10月 14 17:00 aa.txt

在这里插入图片描述

二、linux属主与属组设置

属主:所属的用户(文件的主人)
属组:所属的用户组

在这里插入图片描述

前面的那个root就是属主
后面的那个root就是属组

这两项信息在文档创建的时候会使用创建者的信息(用户名、用户所属的主组名称)。

如果有时候去删除某个用户,则该用户对应的文档的属主和属组信息就需要去修改。

1、chown(重点)

1)作用:更改文档的所属用户

2)语法:#chown -R username 文档路径

3)案例:将刚才root用户创建的oo目录,所有者更改为djh
#chown djh oo/

[djh@temphost /]$ pwd
/
[djh@temphost /]$ chown djh oo/
chown: 正在更改"oo/" 的所有者: 不允许的操作
[djh@temphost /]$ su
密码:
[root@temphost /]# pwd
/
[root@temphost /]# chown djh oo/
[root@temphost /]# ll
drwxrwxrwx 2 djh root 4096 10月 14 17:00 oo

在这里插入图片描述

2、chgrp(了解)

1)作用:更改文档的所属用户组

2)语法:#chgrp -R groupname 文档的路径

3)案例:将刚才root用户创建的oo目录,所有者更改为djh,并且将所属用户组也改为djh
#chgrp djh oo/

[root@temphost /]# chgrp djh oo/
[root@temphost /]# ll
drwxrwxrwx 2 djh djh 4096 10月 14 17:00 oo

在这里插入图片描述

4)思考,如何通过一个命令实现既可以更改所属的用户,也可以修改所属的用户组呢?
答:可以实现的,通过chown命令
语法:#chown -R username:groupname 文档路径

5)案例:要求只使用chown指令,将oo目录的所属用户和用户组改回成root,并且包含其子目录

[root@temphost /]# ls -l /oo
总用量 0
-rw-r–r-- 1 djh root 0 10月 14 17:00 aa.txt
[root@temphost /]# pwd
/
[root@temphost /]# chown root:root oo/
[root@temphost /]# ll /oo
总用量 0
-rw-r–r-- 1 djh root 0 10月 14 17:00 aa.txt
[root@temphost /]# ll
drwxrwxrwx 2 root root 4096 10月 14 17:00 oo

在这里插入图片描述

三、linux扩展(1)

1、问题:

reboot、shutdown、init、halt、user管理,在普通用户身份上都是操作不了,但是有些特殊的情况下又需要有执行权限。又不可能让root用户把自己的密码告诉普通用户,这个问题该怎么解决?

2、该问题是可以被解决的,可以使用sudo(switch user do)命令来进行权限设置。Sudo可以让管理员(root)事先定义某些特殊命令谁可以执行。

1)默认sudo中是没有除root之外用户的规则,要想使用则先配置sudo。

2)Sudo配置文件:/etc/sudoers

在这里插入图片描述

a. 配置sudo文件请使用“#visudo”,打开之后其使用方法和vim一致

b. 配置普通用户的权限

在这里插入图片描述

3)Root表示用户名,如果是用户组,则可以写成“%组名”

ALL:表示允许登录的主机(地址白名单)
(ALL):表示以谁的身份执行,ALL表示root身份
ALL:表示当前用户可以执行的命令,多个命令可以使用“,”分割

3、案例:

本身djh用户不能添加用户,要求使用sudo配置,将其设置为可以添加用户,并且可以修改密码(但是不能修改root用户密码)。
#visudo

1)注意:在写sudo规则的时候不建议写直接形式的命令,而是写命令的完整路径。
路径,可以使用which命令来查看

2)语法:#which 指令名称
如:which useradd

3)如果在 visudo 中正编辑文件时,需要使用 which 指令,要么打开另一终端使用 which 指令,要么 利用 vim 自动切换命令方式,如::!which useradd 和 :!which passwd
查询完指令完整路径后,可以复制指令完整路径,然后按回车键返回 vim 编辑模式。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4)在添加好对应的规则之后就可以切换用户,切换到普通用户djh,再去执行:

5)此时要想使用刚才的规则,则以以下命令进行:
#sudo 需要执行的指令

[root@temphost /]# su djh
[djh@temphost /]$ useradd zhangsan
bash: /usr/sbin/useradd: 权限不够
[djh@temphost /]$ sudo useradd zhangsan
[sudo] password for djh:
[djh@temphost /]$ tail -3 /etc/passwd
tcpdump❌72:72:😕:/sbin/nologin
djh❌500:500:djh:/home/djh:/bin/bash
zhangsan❌501:501::/home/zhangsan:/bin/bash

在这里插入图片描述

6)在输入sudo指令之后需要输入当前的用户密码进行确认的操作(不是root用户密码),输入之后在接下来5分钟内再次执行sudo指令不需要密码。

7)特别注意:此处按照案例要求,不能让djh用户修改root密码,因此规则还需要调整,不然其可以修改root密码的:

[djh@temphost /]$ sudo usermod -g 503 zhangsan
[sudo] password for djh:
对不起,用户 djh 无权以 root 的身份在 temphost 上执行 /usr/sbin/usermod -g 503 zhangsan。
[djh@temphost /]$ passwd zhangsan
passwd: 只有根用户才能指定用户名称。
[djh@temphost /]$ sudo passwd zhangsan
[sudo] password for djh:
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 过于简单化/系统化
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[djh@temphost /]$ sudo passwd root
更改用户 root 的密码 。
新的 密码:
无效的密码: 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

在这里插入图片描述

8)禁止修改root密码的配置(先允许全部,再拒绝root密码设置):
/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root

在这里插入图片描述

在这里插入图片描述

4、补充:在普通用户下怎么查看自己具有哪些特殊权限呢?

#sudo -l

在这里插入图片描述

5、温馨提示:sudo不是任何Linux分支都有的命令,常见centos与ubuntu都存在sudo命令。

6、实践练习:给普通用户设置一个关机命令执行权限。

login as: root
root@192.168.56.1’s password:
Last login: Mon Oct 14 14:13:36 2024 from 10.0.2.2
[root@temphost ~]# pwd
/root
[root@temphost ~]# su djh
[djh@temphost root]$ su root
密码:
[root@temphost ~]# visudo

#要求djh用户可以在任何主机上以root身份进行添加用户和设置密码(但是不能修改root用户密码)
102 djh ALL=(ALL) /usr/sbin/useradd,/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root, /sbin/reboot

[root@temphost ~]# su djh
[djh@temphost root]$ reboot

在这里插入图片描述

上一节关联链接请点击:

linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十二)–权限查看与设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2213955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端知识点总和

目录 一、canvas: (1)创建canvas标签: (2)使用JS获得这个canvas标签的DOM对象: (3)决定是画二维还是三维的画: (4)API&#xff1…

企业防止信息泄露的措施有哪些?10个防止信息泄露小技巧分享给你

在数字化时代,企业面临的安全挑战日益严峻,尤其是信息泄露问题。一旦企业内部或外部的敏感信息遭到泄露,不仅会造成巨大的经济损失,还可能影响企业声誉、客户信任,甚至可能引发法律纠纷。为了有效防止信息泄露&#xf…

使用 SQLmap 自动化检测 SQL 注入

使用 SQLmap 自动化检测 SQL 注入是一种常见的渗透测试技术。SQLmap 是一个强大的开源工具,可以自动检测和利用 SQL 注入漏洞,提取数据库信息,并接管目标数据库服务器。下面是如何使用 SQLmap 进行自动化检测 SQL 注入的基本步骤。 准备环境…

RabbitMQ 入门(七)SpringAMQP五种消息类型

一、Topic Exchange(消息模式) TopicExchange 与DirectExchange类似,区别在于routingKey可以是多个单词的列表,并且以.分割。 Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过…

Spring WebFlux 核心原理(2-1)

1、Spring 响应式编程 1.1、早期响应式解决方案 响应式编程是构建响应式系统的主要候选方案。Spring 4.x 引入了 ListenableFuture 类,它扩展了 Java Future,并且可以基于 HTTP 请求实现异步执行操作。但是只有少数 Spring 4.x 组件支持新的 Java 8 Com…

Nginx(Linux):服务器版本升级和新增模块

目录 1、概述2、使用Nginx服务信号完成Nginx升级2.1 备份当前版本的Nginx2.2 向服务器导入新的Nginx2.3 向服务器导入新的Nginx2.4 停止老版本Nginx 3、使用Nginx安装目录的make命令完成升级3.1 备份当前版本的Nginx3.2 向服务器导入新的Nginx3.3 执行更新命令 1、概述 如果想…

24最新ComfyUI插件与Lora的下载及使用指南!

前言 本节我们介绍ComfyUI插件和Lora的下载及使用方式。 1. 安装 1.1 Checkpoint安装 将从前面介绍的模型下载平台下载后,放在ComfyUI/models/checkpoints文件夹下。 所有的AI设计工具,安装包、模型和插件,都已经整理好了,&am…

【vue自定义指令】骨架屏指令

场景 预加载的过程中,数据还未请求到,dom已经渲染出来了? 展示效果 实现 封装指令(代码块1) app引入(代码块2)使用(代码块3) 代码 封装 ​ import { reactive, wa…

Spark全网最全总结

Spark 产生之前,已经有 MapReduce 这类非常成熟的计算系统存在了,并提供 了高层次的 API(map/reduce),把计算运行在集群中并提供容错能力,从而实现 分布式计算。 虽然 MapReduce 提供了对数据访问和计算的抽象&#xff0c…

一个月学会Java 第13天 抽象类与接口

Day13 抽象类与接口 通过了前面的学习,我们已经掌握了面向对象的基础 继承 封装 多态 第一章 抽象类 接下来,我们要对面向对象学习高级的部分,我们先要学到的就是抽象类,听名字也能想到,肯定很抽象,那我们先…

电力电子技术(二)

三相可控整流电路:(主要包括三相半波和三相桥式) (一)三相半波: (1.1电阻性负载) 右侧第三个图代表VT1晶闸管的流经电流波形,一个周期仅导通一次:晶闸管导…

Netty讲解与案例

1.Netty简介: 官网:https://netty.io/ Netty 是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和精简了 TCP 和 UDP 套接字服务器等网络编程。 “快速简便”并不意味着最终的应用程序会存在…

Halcon 使用二维像素分类对图像进行分割

文章目录 算子histo_2dim 计算双通道灰度值图像的直方图class_2dim_sup 使用二维像素分类对图像进行分割 示例 算子 histo_2dim 计算双通道灰度值图像的直方图 histo_2dim(Regions, ImageCol, ImageRow : Histo2Dim : : )Regions (输入对象):在此区域内计算直方图…

腾讯云视立方开通各项云服务相关

云直播 如何开通云直播服务? 进入 云直播管理控制台,进入腾讯云直播服务开通页,查看相关协议并勾选同意,单击申请开通即可开通云直播服务。 。 如何开启流防盗链 KEY? 推流防盗链 KEY 是为了确保只有您的 App 用户…

dockerfile 用法全解析

FROM 构建基于alpine的镜像,单条执行就是复制了一个apline镜像(除了FROM其他都是非必须的) WORKDIR 是之指定接下来的shell语句是运行在哪个路径下,没有就会创建目录 COPY 将宿主机指定目录的文件拷贝到镜像指定目录 (ADD 源地址还可以url…

[LeetCode] 662. 二叉树最大宽度

题目描述: 给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结…

【C语言刷力扣】2206.将数组划分成相等数对

题目: 解题思路: 题目中要求元素成数对出现,即每个元素出现偶数次。用哈希表存放每个数出现的次数,再循环查看每个数的次数是否位偶数。 typedef struct {int key;int count;UT_hash_handle hh; } hashEntry;bool divideArray(int…

IDEA下载安装

文章目录 1、下载安装包2、安装IDEA3、全局配置4、安装插件 1、下载安装包 IDEA官网下载最新IDEA。 上面的ULtimate是旗舰版,试用30天,之后是需要收费的,下面黑色区域的Community是社区版,功能不如旗舰版丰富,但是好在…

文件的二维码怎么做成?简单的3步生成二维码技巧

数字化时代的到来,用来将内容分享给其他人展示的方式也越来越多。其中二维码就是现在很流行的一种方式,将内容存入二维码后,其他人就可以扫描分享二维码来查看内容,那么文件生成二维码该怎么操作呢? 通过使用文件二维…