课堂练习:环境体验——3、Linux 权限管理

任务描述

本关任务:根据所学知识,完成文件权限的修改。

相关知识

为了完成本关任务,你需要掌握:

  1. 如何创建和删除用户以及用户的权限管理;
  2. 如何设置文件的访问权限。

Linux的权限管理主要分为两类:用户和文件。接下来我们会对这两类进行详细介绍。

用户管理

从广义上讲,Linux系统账户包括用户账号和组账号两类。

用户账号又分为普通用户账号和超级用户账号(root)。root 用户在系统内是属于独一无二的超级管理员,(相当于 Windows 中的 System 最高权限)。

而普通用户在相关的操作中需要 ROOT 的许可。而 root 用户可以拥有所有系统权限。用户可以被允许使用 sudo 命令,临时赋予 root 权限。

创建用户

Linux中使用 useradd 命令来创建一个新用户。

命令格式格式:useradd [命令参数] 参数

常见命令参数:

  1. -d<登入目录>:指定用户登入时的启始目录;
  2. -D:查看或变更预设值;
  3. -g<群组>:指定用户所属的群组;
  4. -m:自动建立用户的登入目录;
  5. -M:不要自动建立用户的登入目录;
  6. -s:指定用户登入后所使用的shell。

useradd必须以 root 权限才能执行,如果是普通用户想创建一个新用户时,需要在命令前加sudo命令来提升权限为 root 权限。

我们通过下面的几个案例来掌握如何创建用户。

创建一个名为 edu 的用户:

Linux用户信息是保存在/etc/passwd文件中,我们可以使用命令tail /etc/passwd查看/etc/passwd文件最后几行中是否存在刚刚新创建的edu用户信息。

用户密码管理

我们创建完一个新用户后,往往还需要为该用户设置一个登录密码,我们使用 passwd 命令修改用户密码

命令格式:passwd 参数 用户名

常见命令参数:

  1. -d 删除密码;
  2. -l 停止账号使用;
  3. -S 显示密码信息。

passwd必须以 root 权限才能执行,如果是普通用户想执行passwd时,需要在命令前加sudo命令来提升权限为 root 权限。

为 edu 用户设置密码:123123

使用passwd命令为 edu 用户设置密码时,可以看到需要输入两次密码,目的是为了确保两次输入的密码一致。

Linux中用户的登录密码是存放在/etc/shadow文件中,/etc/shadow文件中存放的是加密过后的密码,所以在/etc/shadow文件中看到的密码是加密过后的密文。

我们同样可以使用passwd命令来清除用户的密码。

使用passwd命令清除用户 test 的登录密码,使用tail -n 1 /etc/shadow命令查看/etc/shadow文件的最后一行可以看出 test 用户密码部分为空,此时 test 用户是没有密码的。

用户登录

当我们在Linux中添加用户后,我们可以使用该用户登录系统。

su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号的密码。 当使用su命令切换用户后,使用exit命令退出当前身份,返回原有登录用户身份。 注:如果当前用户身份是 root,则使用 su 命令切换到其他用户的时候不需要相应用户的密码。 命令格式:su 参数 用户名

参数为登录的用户名,如果没有参数,则默认切换为 root 用户。 常见命令参数

  1. -c\<指令\> 或 --command=\<指令\>:执行完指定的指令后,即恢复原来的身份;
  2. -l 或 --login:改变身份时,也同时变更工作目录,以及 HOME,SHELL,USER,logname。此外,也会变更 PATH 变量;
  3. -m,-p 或 --preserve-environment:变更身份时,不要变更环境变量;
  4. -s\<shell\> 或 --shell=\<shell\>:指定要执行的 shell。

su命令所有使用者都可以执行。

使用exit命令退出当前用户:

删除用户

Linux中使用userdel命令来删除一个已经存在的用户。

命令格式:userdel 参数 用户名

常见命令参数:

  1. -f:强制删除用户,即使用户当前已登录;
  2. -r:删除用户的同时,删除与用户相关的所有文件。

userdel必须以 root 权限才能执行,如果是普通用户想使用该命令时,需要在命令前加sudo命令来提升权限为 root 权限。

使用userdel命令删除一个已经存在的用户 edu,并且自动删除其家目录文件。

文件管理

Linux系统中的每个文件都有访问许可权限,文件的访问权限分为只读,只写和可执行三种。

只读权限表示只允许读其内容,而禁止对其做任何的更改操作。

只写权限表示允许修改文件的内容。

可执行权限表示允许将该文件作为一个程序执行。

每一文件的访问权限都有三组,每组用三位表示,分别为文件所属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。 linux文件有不同的颜色,不同的颜色可以用于区分文件的类型,但是需要为文件配置相应的权限,否则可执行文件会出现无法执行的情况。 蓝色代表目录,绿色代表可执行文件,红色表示压缩文件,浅蓝色表示链接文件,灰色表示其他文件,红色闪烁表示链接的文件有问题了,黄色表示设备文件。

当用ls -lll命令显示文件的详细信息时,最左边的一列为文件的访问权限。例如显示 test 文件详细信息:

修改文件权限

Linux中使用chmod命令来修改文件权限。

文字设定法具体命令如下:

chmod [who] [ + 或 - 或 = ] [mode] 文件名

who 参数如下:

  1. u 表示“用户(user)”,即文件或目录的所有者;
  2. g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户;
  3. o 表示“其他(others)用户”;
  4. a 表示“所有(all)用户”,它是系统默认值。

操作符如下:

  1. +:添加某个权限;
  2. -:取消某个权限;
  3. =:赋予给定权限并取消其他所有权限。

mode 参数如下:

  1. r 可读;
  2. w 可写;
  3. x 可执行。

数字设定法具体命令如下:

chmod [mode] 文件名

mode 为具体的数字。

首先了解用数字表示的属性的含义:0 表示没有权限,1 表示可执行权限,2 表示可写权限,4 表示可读权限,然后将其相加。所以数字属性的格式应为 3 个从 0 到 7 的八进制数,其顺序是 u、g 和 o。

我们通过几个案例来为大家详细展示该命令的使用:

  1. 创建一个名为 testFile 的文件,将该文件的所有用户权限设置为仅读权限,可以使用如下命令:

  1. 将文件 testFile 的所有用户权限设置为可读可写,同组用户权限设置为只读,可以使用如下命令:

  1. 将文件 testFile 的权限设置为所有用户可读可写可执行,同组用户设置为可读可执行,其他用户设置为可读,可以使用如下命令:

以上的权限我们是针对所有用户的,我们也可以针对用户、同组用户、其他用户,只用将上面命令的 a 替换成相应的参数即可。

到了这里,针对文件的权限就讲解完成了,Linux奉行一切皆文件,所以目录的权限修改也是如此。

编程要求

打开右侧图形化界面的命令行,在命令行中完成如下功能:

  • 在 /root 目录下创建 oldFile1、oldFile2、oldFile3、oldFile4 四个文件;
  • 给 oldFile1 增加所有者可执行权限;
  • 将 oldFile2 的同组用户权限删除可读权限;
  • 为系统已存在文件 oldFile3 的其他组用户权限添加可执行权限;
  • 将系统已存在文件 oldFile4 的权限设置所有者权限为可读,同组用户权限为可写,其他用户权限为可执行。

测试说明

平台会对您的执行结果进行检测,如果测试结果与预期输出一致,则算通关。


开始你的任务吧,祝你成功!

实验答案

cd /root
touch oldFile1
touch oldFile2
touch oldFile3
touch oldFile4
chmod u+x oldFile1
chmod g-r oldFile2
chmod o+x oldFile3
chmod 421 oldFile4

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Openmmalb InternLm2.0笔记

Openmmalb InternLm2.0浦语大模型全链路开源体系 文章目录 Openmmalb InternLm2.0浦语大模型全链路开源体系

机器学习——聚类算法-层次聚类算法

机器学习——聚类算法-层次聚类算法 在机器学习中&#xff0c;聚类是一种将数据集划分为具有相似特征的组或簇的无监督学习方法。聚类算法有许多种&#xff0c;其中一种常用的算法是层次聚类算法。本文将介绍聚类问题、层次聚类算法的原理、算法流程以及用Python实现层次聚类算…

Matplotlib数据可视化实战-2绘制折线图(2)

2.11营业额可视化 已知某学校附近一个烧烤店2022年每个月的营业额如下图所示。编写程序绘制折线图对该烧烤店全年营业额进行可视化&#xff0c;使用红色点画线连接每个月的数据&#xff0c;并在每个月的数据处使用三角形进行标记。 烧烤店营业额 月份123456789101112营业额/万…

Claude 3被玩出自我意识了?AI社区轰动,我们买会员来了次实测

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了人工智能中文站 每天给大家更新可用的国内可用chatGPT资源​ 更多资源欢迎关注 ​ Anthropic 发布了新一代大模型系列 Claude 3&#xff0c;遥遥领先快一年之久的 GPT-4 终于迎来了强劲的对手。 ​ Claude 3 …

yolov8 pose keypoint解读

yolov8进行关键点检测的代码如下&#xff1a; from ultralytics import YOLO# Load a model model YOLO(yolov8n.pt) # pretrained YOLOv8n model# Run batched inference on a list of images results model([im1.jpg, im2.jpg]) # return a list of Results objects# Pr…

UE4_官方动画内容示例1.2_动画蓝图——使用蓝图告知Actor播放动画

展示了两个示例&#xff1a;在其中一个示例中&#xff0c;使用蓝图告知Actor播放动画&#xff0c;在另外一个示例中&#xff0c;展示了告知Actor播放动画的动画蓝图&#xff08;例如&#xff0c;此示例展示了如何将变量从蓝图传递给动画蓝图&#xff0c;并演示了如何将现有姿势…

Wireshark使用相关

1.wireshark如何查看RST包 tcp.flags.reset1 RST表示复位&#xff0c;用来异常的关闭连接&#xff0c;在TCP的设计中它是不可或缺的。发送RST包关闭连接时&#xff0c;不必等缓冲区的包都发出去&#xff08;不像上面的FIN包&#xff09;&#xff0c;直接就丢弃缓存区的包发送R…

PostgreSQL FDW(外部表) 简介

1、FDW: 外部表 背景 提供外部数据源的透明访问机制。PostgreSQL fdw(Foreign Data Wrapper)是一种外部访问接口,可以在PG数据库中创建外部表,用户访问的时候与访问本地表的方法一样,支持增删改查。 而数据则是存储在外部,外部可以是一个远程的pg数据库或者其他数据库(…

Excel 十字交叉聚光灯查询,再也不用担心看串行与列

当Excel表格行列较多时&#xff0c;要想跟条件找到目标数据可以用查找引用函数自动调取&#xff0c;如果又想让找出来的结果突出显示&#xff0c;有什么好办法呢&#xff1f; 先来看一个做好的案例效果&#xff0c;用户选择查询条件后&#xff0c;结果突出显示。 当查询条件变…

蓝桥题目集

1.关于你的欢迎语 这个题目要求修改bug 在未修改时是运行显示的是它的案例。 这里的想法采用模板字符串&#xff0c;将我们获取到的输入内容放入模板中进行替换。 首先就要通过id获取相关内容 再通过获取输出栏的id将我们用模板字符串拼接好的内容进行输出。 首先&#xff…

llama模型c语言推理@FreeBSD

llama中文名羊驼&#xff0c;Meta AI推出的一款大型语言模型&#xff0c;其性能在多个自然语言处理任务上表现优异是一个非常棒的自然语言生成模型。 llama.cpp是一个使用c语言推理llama的软件包&#xff0c;它支持FreeBSD、Linux等多种平台。 GitHub - ggerganov/llama.cpp:…

Web漏洞--WAF绕过+堆叠查询

Stacked injections(堆叠注入)从名词的含义就可以看到应该是一堆 sql语句(多条)一起执行。而在真实的运用中也是这样的&#xff0c;我们知道在mysql 中&#xff0c;主要是命令行中&#xff0c;每一条语句结尾加;表示语句结束。这样我们就想到了是不是可以多句一起使用。这个叫做…