Linux--文件权限与shell外壳的理解

目录

一.Linux的用户与用户切换,提权

二.对文件权限的理解

1.文件权限=角色的权限+文件属性

2.Linux中的三种角色

3.为什么会存在所属组这个角色

4.文件属性的意义

4.1.第一个字母的意义

4.2 第2——第10个字母的意义

4.3修改文件权限的方法

三.目录权限

四.权限的初始化与权限掩码umask

五.粘滞位

六.shell外壳


一.Linux的用户与用户切换,提权

Linux下由两种用户:超级用户(root),普通用户

超级用户:可以再 linux 系统下做任何事情,不受限制
普通用户:在 linux 下做有限的事情。
超级用户的命令提示符是 “#” ,普通用户的命令提示符是 “$

 命令:

su [用户名]

功能:切换用户

例如,要从 root 用户切换到普通用户 user ,则使用 su user 。 要从普通用户 user 切换到 root 用户则使用 su root( root 可以省略),此时系统会提示输入 root 用户的口令
命令:
su -

功能:切换到root

su[用户名]   与su -的区别:
su [用户名]:是单纯的用户切换,切换后路径不变
su - :让root账号重新登录,切换后到root的家目录

普通用户指令短暂提权至root

sudo 指令

注:使用sudo提权时,需要将当前普通用户添加到etc/sudoer中,sudo可以将后面的指令提权为root,在启动后第一次使用,需要输入当前用户的密码。接下来的几分钟再使用就不用再输密码。

为什么普通用户使用sudo提权,要输入当前用户密码,而非root密码?

我们知道,root用户可以无视一切权限,进行任意的操作。一旦root密码被非管理人员知道就可能造成一些未知的危险,因此为了让某些被信任的用户,可以执行一些需要root权限才可以做的事情,使用输入当前用户密码。同时这样也可以在遭受危险时,对人进行精准定责。

二.对文件权限的理解

1.文件权限=角色的权限+文件属性

对于Linux中的文件权限,有的角色对文件有读,写,执行的权限,而有的角色却什么都没有。这是人的权限。

注:对于可执行文件来说,只有他的具有可执行权限,并且文件内容为可执行内容。它才可以执行。


2.Linux中的三种角色

Linux中有三种角色:
owner          (拥有者)
grouper       (所属组)
other            (其他人)
文件权限限制的不是用户,而是这个用户对于文件所处的角色

3.为什么会存在所属组这个角色

这里举个例子:
一个公司想要开发一个软件,让A,B两个小组分别开发取其最好的。领导,A,B公用一台Linux云服务器。而对于A来说,它开发的东西,只想让A小组的人看到,不想B组的看到。因此把A组成员放在一个所属组中,将其它所属组的权限全部取消。这样其他组的成员就无权限访问A组文件,可以防止信息泄漏。

4.文件属性的意义

4.1.第一个字母的意义

第一个字母代表的时文件类型

在Windows系统中,区分文件类型是,通过文件名后缀,而Linux中,文件类型由文件属性的一个字母决定,与文件后缀无关。(Linux下为了方便我们快速区分文件类型,我们还是建议写上后缀。)

注:在使用一些工具时,文件必须加上对应的后缀。(如使用gcc编译文件时,文件必须以.c结尾)

d :文件夹
- :普通文件
l :软链接(类似 Windows 的快捷方式)
b :块设备文件(例如硬盘、光驱等)
p :管道文件
c :字符设备文件(键盘,显示器等串口设备)
s :socket套接口文件

4.2 第2——第10个字母的意义

他们三三为一组,共分为三组,分别代表着拥有者,所属组,其他用户的权限。r读权限,w写权限,x可执行权限,- 代表没有对应的权限

4.3修改文件权限的方法

chmod  角色 + / - 权限  文件名
功能:修改文件对应角色的权限
+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
角色:  
u :拥有者
g :拥有者同组用
o :其它用户
a :所有用户
实例:
chmod u-r test     //将test文件拥有者的读权限取消
chmod g+x test     //将test文件所属组加上可执行权限
chmod o+rwx       //将test文件其他用户加上读,写,可执行权限
chmod u+r,g-w,o+x //对多个角色权限操作的组合
chmod a+rwx        //对所有角色的权限进行读,写,可执行权限的取消  

chmod 三位八进制数  文件名

功能:修改文件所有角色的权限

使用三个八进制数的原因:

三个:一共三个角色。

八位:文件有读,写,可执行三个权限,我们可以用二进制1表示拥有该权限,0表示无该权限。每个角色所有权限最大位7.

chmod 000 test //将test文件所有角色的权限全部取消

只有文件的拥有者和root才可以对文件角色的权限进行修改

角色的修改

sudo chown wzy test  //将test的拥有者修改为wzy
sudo chgrp wzy test  //将test的所属组修改为wzy
sudo chown wzy:wzy test //将test的拥有者,所属组修改为wzy

拥有者,所属组更改之后,other(其他用户)也会改变,所以不用特意去该。

三.目录权限

目录r权限:能否查看目录中的文件
目录w权限:能否在目录中创建,删除文件。
目录x权限:能否进入,执行目录中的文件。

四.权限的初始化与权限掩码umask

Linux规定,目录的起始权限是777,普通文件的起始权限是666.
那为什么我们创建出来的文件与目录并不是这样的呢?
原因: 权限=起始权限&umask
umask是什么?
umask是权限掩码,一般默认是0002(第一位不用管),凡是在umask中出现的权限,必须在起始权限中去掉。
修改umask的值
 
umask 0888 //将umask的值修改位0888

五.粘滞位

在使用Linux时,我们可能需要多个用户共同操作或访问一个文件,但是一个用户的文件不能被其他用户访问(root除外),因此为了实现这个要求,在所有用户中创造了一个所有用户都共享的文件(tmp),一般文件的拥有者是root。在这个目录里,所有用户都可以删除,创建文件。为了防止用户创造的文件被其他用户删除引入了粘滞位

注:粘滞位是针对的other(其他用户)

添加粘滞位:

chmod + t  目录名
当一个目录被设置为" 粘滞位 "( chmod +t), 则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

六.shell外壳

Linux 严格意义上说的是一个操作系统,我们称之为 核心( kernel ,但我们一般用户,不能直接使用 kernel 。 而是通过kernel的 外壳 程序,也就是所谓的 shell ,来与 kernel 沟通。
从技术角度, Shell 的最简单定义:命令行解释器( command Interpreter )主要包含
将使用者的命令翻译给核心( kernel )处理。
同时,将核心的处理结果翻译给使用者。
理解:
对比 windows GUI ,我们操作 windows 不是直接操作 windows 内核,而是通过图形接口,点击,从而完成我们的
操作(比如进入 D 盘的操作,我们通常是双击 D 盘盘符 . 或者运行起来一个应用程序)。
shell 对于 Linux ,有相同的作用,主要是对我们的指令进行解析,解析指令给 Linux 内核。反馈结果在通过内核运 行出结果,通过shell 解析给用户。
对于用户指令,shell有如下操作:
1.拒绝用户非法请求,保护内核
当用户输入非法指令,shell不会询问内核,直接拒绝用户请求。
2.派生子进程执行用户指令
shell 使用户与操作系统沟通的唯一通道,一般shell不会直接执行指令,而是创造一个子进程,让这个子进程去执行指令。这样即使指令执行失败,shell让然不受影响。

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

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

相关文章

文本润色工具有哪些,高质量的文本润色软件

在当今信息过载的时代,文本的重要性愈发凸显。即便是最精心构思的文章,若未经过仔细的润色,也难以达到最佳的表达效果。本文将专心分享文本润色工具的种类。 文本润色工具的种类 文本润色工具根据其功能和应用范围可以分为多个种类&#xff…

js/jQuery常见操作 之 jQuery操作复选框的常见问题

js/jQuery常见操作 之 jQuery操作复选框的常见问题 1. js/jQuery的其他一些常见基础操作2. 全选/全不选问题2.1 效果2.2 实现代码2.2.1 简单js实现2.2.2 jQuery实现2.2.2.1 注意语法(区别jQuery版本)2.2.2.2 完整代码实现 3. jQuery实现点击 行tr 实现ch…

【Java 基础】21 多线程同步与锁

文章目录 1.存在的问题2.使用同步解决问题1) synchronized2) volatile3) 锁 总结 用多线程过程中,有可能出现 多个线程同时处理(获取或修改等)同一个数据,这个时候就 会发生数据不同步的问题, 因此出现了同步和锁来…

APP备案(Android) - 获取签名证书公钥、MD5

因为近期刚针对各应用平台对APP备案时间节点要求进行了统一整理,然后隔天就被要求提供一下app相关的的公钥和MD5,虽然很快就解决了这个事情,但忍不住又稍微衍生了一下,但行小步,莫问远方吧 关联Blog APP备案(Android)…

java多线程(二)线程池

目录 java线程池 线程池应用场景: 如何创建线程池: 有什么区别: 不同线程池对应的应用场景 案例 输出结果 java线程池 Java线程池是一种预先创建一定数量的线程,并将任务提交给这些线程执行的机制。线程池可以避免频繁创建…

ExecutorService、Callable、Future实现有返回结果的多线程原理解析

原创/朱季谦 在并发多线程场景下,存在需要获取各线程的异步执行结果,这时,就可以通过ExecutorService线程池结合Callable、Future来实现。 我们先来写一个简单的例子—— public class ExecutorTest {public static void main(String[] ar…

Vulnhub项目:EMPIRE: BREAKOUT

一、靶机地址 靶机地址:Empire: Breakout ~ VulnHub 靶机介绍: 该靶机被定义为简单,但是如果没有找到,那就难度成中等了! 二、渗透过程 老三样,发现目标,这里用 arp-scan 确定靶机 ip&#…

Java基础50题:14. 使用方法求最大值(2种方法)

概述 使用方法求最大值。 创建方法求两个数的最大值max2,随后再写一个求3个数的最大值函数max3。 要求: 在max3这个方法中,调用max2函数,来实现3个数的最大值计算。 方法一 【代码】 public class P14 {public static int max…

算法___

文章目录 算法两数之和 算法 两数之和 题目如下图: 我的答案如下图: 我采用的是最笨的思路,直接暴力的两次循环,第一次外循环是取数组的第一个元素,然后内循环会遍历数组后面除第一个的所有元素,然后和…

DDD架构思想专栏二《领域层的决策设计思想详解》

如果不了解DDD基本概念的读者可以去看这篇文章,传送门:DDD架构思想专栏一《初识领域驱动设计DDD落地》-CSDN博客 前言介绍 在上一章节介绍了领域驱动设计的基本概念以及按照领域驱动设计的思想进行代码分层,但是仅仅只是从一个简单的分层结…

【Flink系列三】数据流图和任务链计算方式

上文介绍了如何计算并行度和slot的数量,本文介绍Flink代码提交后,如何生成计算的DAG数据流图。 程序和数据流图 所有的Flink程序都是由三部分组成的:Source、Transformation和Sink。Source负责读取数据源,Transformation利用各种…

Remix IDE 快速开始Starknet

文章目录 一、Remix 项目二、基于Web的开发环境Remix 在线 IDE三、Starknet Remix 插件如何使用使用 Remix【重要】通过 Starknet by Example 学习一、Remix 项目 Remix 项目网站 在以太坊合约开发领域,Remix 项目享有很高的声誉,为各个级别的开发人员提供功能丰富的工具集…

JS中深拷贝与浅拷贝

定义 深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是在编程中常用的两种对象复制方式。 浅拷贝(Shallow Copy): 浅拷贝是创建一个新的对象,将原始对象的属性值复制到新对象中。如果属…

Smart Link和Monitor Link

Smart Link和Monitor Link简介 Smart Link,又叫做备份链路。一个Smart Link由两个接口组成,其中一个接口作为另一个的备份。Smart Link常用于双上行组网,提供可靠高效的备份和快速的切换机制。 Monitor Link是一种接口联动方案,它…

nodejs流

什么是流 stream 流是用于在 Node.js 中处理流数据的抽象接口。 node:stream 模块提供了用于实现流接口的 API。 什么是流数据 流数据是指一组顺序、大量、快速、连续到达的数据序列,一般情况下数据流可被视为一个随时间延续而无限增长的动态数据集合。流数据应用…

【keil备忘录】2. stm32 keil仿真时的时间测量功能

配置仿真器Trace内核时钟为单片机实际的内核时钟,需要勾选Enable设置,设置完成后Enable取消勾选也可以,经测试时钟频率配置仍然生效,此处设置为48MHZ: 时间测量时必须打开register窗口,否则可能不会计数 右下角有计…

第十四章 : Spring Boot 整合spring-session,使用redis共享

第十四章 : Spring Boot 整合spring-session,使用redis共享 前沿 本文重点讲述:spring boot工程中使用spring-session机制进行安全认证,并且通过redis存储session,满足集群部署、分布式系统的session共享。 基于SPringBoot 2.3.2…

[linux运维] 利用zabbix监控linux高危命令并发送告警(基于Zabbix 6)

之前写过一篇是基于zabbix 5.4的实现文章,但是不太详细,最近已经有两个小伙伴在zabbix 6上操作,发现触发器没有str函数,所以更新一下本文,基于zabbix 6 0x01 来看看效果 高危指令出发问题告警: 发出邮件告…

学好操作系统需要的前置知识

1. 态度:不要等一切都准备好了再前行 如果把一切你可能会说,没有这些基础知识,我每看一篇文章,知识就铺天盖地席卷过来,仿佛每一个知识点都准确地打在了自己的盲点上,这该怎么办呢? 我非常能理…

AI助力智慧农业,基于YOLOv8全系列模型【n/s/m/l/x】开发构建不同参数量级的识别系统

智慧农业随着数字化信息化浪潮的演变有了新的定义,在前面的系列博文中,我们从一些现实世界里面的所见所想所感进行了很多对应的实践,感兴趣的话可以自行移步阅读即可: 《自建数据集,基于YOLOv7开发构建农田场景下杂草…