Linux权限问题

文章目录

  • 前言
  • 一、shell 命令
    • 1、什么是 shell?
    • 2、什么是 shell 脚本?
    • 3、shell环境
    • 4、总结
  • 二、Linux权限
    • 1、su命令
    • 2、Linux文件类型
    • 3、Linux文件权限
    • 4、文件访问权限的相关设置
      • 4.1 chmod指令
      • 4.2 chown指令
      • 4.3 chgrp指令
      • 4.4 总结


前言


一、shell 命令

1、什么是 shell?

(1). Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。
(2). Shell 既是一种命令语言,又是一种程序设计语言。
(3). Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问 Linux 内核的服务。

2、什么是 shell 脚本?

(1). Shell 脚本(shell script),是一种为 shell 编写的脚本程序,一般文件后缀为 .sh。
(2). 业界所说的 shell 通常都是指 shell 脚本,但 shell 和 shell script 是两个不同的概念。

3、shell环境

Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
Shell 的解释器种类众多,常见的有:
(1). sh - 即 Bourne Shell。sh 是 Unix 标准默认的 shell。
(2). bash - 即 Bourne Again Shell。bash 是 Linux 标准默认的 shell。
(3). fish - 智能和用户友好的命令行 shell。
(4). xiki - 使 shell 控制台更友好,更强大。
(5). zsh - 功能强大的 shell 与脚本语言。

4、总结

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。因为如果用户直接使用kernel的话,首先用户需要对操作系统非常熟悉才可以正确的使用操作系统,而且用户可能会烦一些错误,所以在操作系统kernel与用户之间就多了一层操作系统提供的shell外壳程序,外壳程序是用户和操作系统交互中间软件层,可以在一定程度上,起到保护操作系统的作用。
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
将使用者的命令翻译给核心(kernel)处理。
同时,将核心的处理结果翻译给使用者。

对于windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果再通过内核运行出结果,通过shell解析给用户。而Linux标准默认的 shell就是bash。
在这里插入图片描述

二、Linux权限

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

1、su命令

语法:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的密码。
需要注意的是如果从root用户直接su到user用户,此时不需要输入用户的密码,而且切换到user用户后此时所在目录还是刚刚root所在的目录。
在这里插入图片描述
如果从user用户直接su到root用户,则需要输入root用户的密码,而且切换到root用户后此时所在目录还是刚刚user所在的目录。如果使用su - 切换root目录,则切换后的root用户会在/root 目录下。
在这里插入图片描述
如果从一个user1用户直接su另一个user2用户,则需要输入user2用户的密码,而且切换到user2用户后此时所在的目录还是刚刚user1所在的目录。
在这里插入图片描述

ctrl+d通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思,但是也可以退出账户登录。
在这里插入图片描述

2、Linux文件类型

当我们使用 ls - l 指令显示出当前目录下文件的详细信息时。我们可以看到每个文件的详细信息,那么这些信息都分别表示文件的什么信息呢?
在这里插入图片描述
我们可以从每个文件信息的第一列信息开始看,下图中红色方框内的每一个文件的第一个信息其实代表了该文件为什么类型。Linux下不以文件后缀来区分文件类型。
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
在这里插入图片描述

3、Linux文件权限

在Linux系统中,一个文件的访问者可以分为下面的三类用户。
文件和文件目录的所有者(拥有者):u — User。
文件和文件目录的所有者所在的组的用户(和文件所有者同组的用户):g — Group。
其它用户(和该文件和文件目录所有者没有关系的普通用户):o — Others。
下面为文件信息中文件所有者和所在组的信息。
在这里插入图片描述
在Linux中,每个文件都具有以下三种权限。
读权限: r — 读,Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
写权限: w — 写,Write对文件而言,具有修改文件内容的权限;对目录来说,具有删除、创建、移动目录内文件的权限。
执行权限:x — 执行,Execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
下面我们再分析每个文件的这些权限在文件信息的哪些位置。
字符表示法
在文件信息中,表示文件类型的字母后面的九个字母三三为一组,第一组表示该文件所有者对该文件的权限,第二组表示文件所有者所在组的其它用户对该文件的权限,第三组表示other(其他人)对该文件的权限。
例如下面第一个文件aa.pdf文件的信息表示,拥有者具有读写权限,没有执行权限;所属组具有读权限,没有写和执行权限;other(其他人)具有读权限,没有写和执行权限。这九个字母中三三一组,顺序永远为rwx,并且结果只有两种,有或者没有,其中 - 就代表没有。
在这里插入图片描述
其实除了使用字符rwx表示文件的权限外,还有一种八进制数值表示法,即将九个字母分成三组后,每一组对应一个八进制数字。具体转换如下图所示。即如果该文件有读权限,就将二进制的第一位置为1。如果有写权限就将二进制的第二位置为1,如果有执行权限就将二进制的第三位置为1,如果没有这些权限就将对应的二进制位置为0。然后将该二进制转为八进制。
在这里插入图片描述

4、文件访问权限的相关设置

4.1 chmod指令

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项
(1). R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式: 用户表示符 + - = 权限字符
用户符号
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
权限操作符
+:向权限范围增加权限代号所表示的权限。
-:向权限范围取消权限代号所表示的权限。
=:向权限范围赋予权限代号所表示的权限。

举例
使用字符表示法修改权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

root用户的权限是最大的,就算没有对文件的读写执行权限,也可以对文件进行读写执行。
在这里插入图片描述

所谓的权限是限制普通用户,root一直有权限,root不受权限约束。root还可以更改文件的拥有者、所属组、other访问者的权限
在这里插入图片描述

使用八进制表示法修改权限
在这里插入图片描述

4.2 chown指令

上面我们使用了chmod指令来修改拥有者、所属组、other(其他人)对文件的一些权限,而chown指令是修改文件的拥有者的,即将该文件的拥有者改为另一个用户。
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
常用选项:-R 递归修改文件或目录的所属组

举例
如果一个普通用户user1将他拥有的myfile.txt文件给另一个普通用户user2时,这个过程是无法完成的,此时需要切换到root用户下,然后才有权限将myfile.txt文件的拥有者从user1改为user2。
在这里插入图片描述

4.3 chgrp指令

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组

举例
普通用户user1虽然不能将文件的拥有者修改,但是如果该文件的拥有者为user1,但是所属组为user2,则此时user1可以将该文件的所属组改为user1。但是如果该文件的所属组为user1后,user1就没有权限再将该文件的所属组改为user2了。
在这里插入图片描述

4.4 总结

权限只会认定一次,哪怕一个用户即是拥有者,又是所属组,但是判断了拥有者的权限后,不会再判断所属组的权限。
在这里插入图片描述
进入一个目录,需要该目录的执行权限 – x
查看目录下的文件列表需要该目录的读权限 – r
在目录下创建、删除或者移动文件需要该目录的写权限 – w
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Maven学习记录

一、Maven是什么 简单来说Maven是一个标准化的java管理和构建工具,它提供了一系列规范,包括项目结构,构建流程(编译,测试,打包,发布……),依赖管理等。 标准化就是定下…

探究SpringWeb对于请求的处理过程

探究目的 在路径归一化被提出后,越来越多的未授权漏洞被爆出,而这些未授权多半跟spring自身对路由分发的处理机制有关。今天就来探究一下到底spring处理了什么导致了才导致鉴权被绕过这样严重的问题。 DispatcherServlet介绍 首先在分析spring对请求处…

43、Flink之Hive 读写及详细验证示例

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

React 开发一个移动端项目(1)

技术栈: 项目搭建:React 官方脚手架 create-react-appreact hooks状态管理:redux 、 redux-thunkUI 组件库:antd-mobileajax请求库:axios路由:react-router-dom 以及 historyCSS 预编译器:sass…

计算机竞赛 基于深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的视频多目标跟踪实现 …

机器学习笔记之最优化理论与方法(四) 凸函数:定义与基本性质

机器学习笔记之最优化理论与方法——再回首:凸函数定义与基本性质 引言凸函数的定义严格凸函数凸函数的推论:凹函数 常见凸函数凸函数的基本性质几种保持函数凸性的运算凸集与凸函数之间的关联关系 引言 本节将介绍凸函数定义及其基本性质。 本文是关于…

【Unity-Cinemachine相机】相机跟随之Transposer属性

相机跟随和瞄准行为 Transposer:虚拟相机将在某个固定的偏移或距离上跟随目标移动 上面的偏移量就是Follow Offset Binding Mode决定Follow Offset是目标本地坐标系下的身后十米还是世界坐标系下的身后十米 Lock To Target On Assign:锁定自己和目标本地…

第64步 深度学习图像识别:多分类建模误判病例分析(Pytorch)

基于WIN10的64位系统演示 一、写在前面 上期我们基于TensorFlow环境介绍了多分类建模的误判病例分析。 本期以健康组、肺结核组、COVID-19组、细菌性(病毒性)肺炎组为数据集,基于Pytorch环境,构建SqueezeNet多分类模型&#xf…

【漏洞复现】EnjoySCM存在文件上传漏洞

漏洞描述 EnjoySCM是一款适应于零售企业的供应链管理软件,主要为零售企业的供应商提供服务。EnjoySCM的目的是通过信息技术,实现供应商和零售企业的快速、高效、准确的信息沟通、管理信息交流。。 该系统存在任意文件上传漏洞,攻击者通过漏洞可以获取服务器的敏感信息。 …

【监控系统】Promethus整合Alertmanager监控告警邮件通知

【监控系统】Promethus整合Alertmanager监控告警邮件通知 Alertmanager是一种开源软件,用于管理和报警监视警报。它与Prometheus紧密集成,后者是一种流行的开源监视和警报系统。Alertmanager从多个源接收警报和通知,并根据一组配置规则来决定…

【Python】环境的搭建

前言 要想能够进行 Python 开发, 就需要搭建好 Python 的环境. 需要安装的环境主要是两个部分: 运行环境: Python开发环境: PyCharm 一、安装 Python 1.找到官方网站 官网:Welcome to Python.org 2.找到下载页面 点击download中的Windows 3.选择稳定版中的Win…

2023年MySQL实战核心技术第一篇

目录 四 . 基础架构:一条SQl查询语句是如何执行的? 4.1 MySQL逻辑架构图: 4.2 MySQL的Server层和存储引擎层 4.2.1 连接器 4.2.1.1 解释 4.2.1.2 MySQL 异常重启 解决方案: 4.2.1.2.1. 定期断开长连接: 4.2.1.2.2. 初始…

滑动谜题 -- BFS

滑动谜题 输入:board [[4,1,2],[5,0,3]] 输出:5 解释: 最少完成谜板的最少移动次数是 5 , 一种移动路径: 尚未移动: [[4,1,2],[5,0,3]] 移动 1 次: [[4,1,2],[0,5,3]] 移动 2 次: [[0,1,2],[4,5,3]] 移动 3 次: [[1,0,2],[4,5,3]…

计算机网络的故事——了解Web及网络基础

了解Web及网络基础 文章目录 了解Web及网络基础一、使用 HTTP 协议访问 Web二、HTTP 的诞生三、网络基础 TCP/IP四、与 HTTP 关系密切的协议 : IP、TCP 和 DNS 一、使用 HTTP 协议访问 Web 根据Web浏览器指定的URL,从对应的服务器中获取文件资源,从而显…

Java发送(QQ)邮箱、验证码发送

前言 使用Java应用程序发送 E-mail 十分简单,但是首先需要在项目中导入 JavaMail API 和Java Activation Framework (JAF) 的jar包。 菜鸟教程提供的下载链接: JavaMail mail.jar 1.4.5JAF(版本 1.1.1) activation.jar 1、准备…

Mojo-SDK详细安装教程

Mojo-SDK安装 运行环境:windows11wsl2(ubuntu1804) 截至20230909,windows,mac系统暂时不支持 step1: Install VS Code, the WSL extension, and the Mojo extension. step2: Install Ubuntu 22.04 for WSL and open it. step…

openpnp - 底部相机高级矫正后,底部相机看不清吸嘴的解决方法

文章目录 openpnp - 底部相机高级矫正后,底部相机看不清吸嘴的解决方法概述解决思路备注补充 - 新问题 - N1吸嘴到底部相机十字中心的位置差了很多END openpnp - 底部相机高级矫正后,底部相机看不清吸嘴的解决方法 概述 自从用openpnp后, 无论版本(dev/test), 都发现一个大概…

C++多态案例-设计计算器类

1.前置知识点 多态是面向对象的三大特性之一 多态分为两类 静态多态:函数重载和运算符重载都属于静态多态,复用函数名动态多态:派生类和虚函数实现运行时多态 静态多态和动态多态的区别 静态多态的函数地址早绑定-----编译阶段确定函数地…

【JVM】垃圾收集算法

文章目录 分代收集理论标记-清除算法标记-复制算法标记-整理算法 分代收集理论 当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(Generational Collection)[1]的理论进 行设计,分代收集名为理论,实质是一套符…

学会用命令行创建uni-app项目并用vscode开放项目

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 创建 uni-app 项目 命令行创建 uni-app 项目 编译和运行 uni-app 项目: 用 VS Code 开发 uni…