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

news2024/11/27 21:02:24

目录

一.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.coloradmin.cn/o/1291511.html

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

相关文章

记录 | linux手动清理 buff/cache

linux下手动清理 buff/cache 切换到 root 权限 # 这个drop_caches文件可以设置的值分别为1、2、3 echo 1 > /proc/sys/vm/drop_caches # 表示清除pagecache echo 2 > /proc/sys/vm/drop_caches # 表示清除回收slab分配器中的对象(包括目录项缓存和inode缓…

idea报错——Access denied for user ‘root‘@‘localhost‘ (using password: YES)

项目场景: 使用idea启动SpringBoot项目报错,可以根据提示看到是数据库的原因,显示使用了密码,具体报错信息如下: 解决方案: 第一步:先去配置文件里面查看连接MySQL的url是否正确,如果…

代码随想录算法训练营第四十二天 _ 动态规划_01背包问题、416.分割等和子集。

学习目标: 动态规划五部曲: ① 确定dp[i]的含义 ② 求递推公式 ③ dp数组如何初始化 ④ 确定遍历顺序 ⑤ 打印递归数组 ---- 调试 引用自代码随想录! 60天训练营打卡计划! 学习内容: 二维数组处理01背包问题 听起来…

Node.js快速搭建简单的HTTP服务器并发布公网远程访问

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

基于ssm校园美食交流系统论文

目 录 摘 要 1 前 言 3 第1章 概述 4 1.1 研究背景 4 1.2 研究目的 4 1.3 研究内容 4 第二章 开发技术介绍 5 2.1Java技术 6 2.2 Mysql数据库 6 2.3 B/S结构 7 2.4 SSM框架 8 第三章 系统分析 9 3.1 可行性分析 9 3.1.1 技术可行性 9 3.1.2 经济可行性 10 3.1.3 操作可行性 10…

CentOS 7.9 安装 k8s(详细教程)

文章目录 安装步骤安装前准备事项安装docker准备环境安装kubelet、kubeadm、kubectl初始化master节点安装网络插件calicowork 加入集群 k8s集群测试 安装步骤 安装前准备事项 一台或多台机器,操作系统 CentOS7.x-86_x64硬件配置:2GB或更多RAM&#xff0…

order排序方式研究

请直接看原文: 链接:https://juejin.cn/post/7258182427306197051 --------------------------------------------------------------------------------------------------------------------------------- 一.前言 在MySQL世界中,排序是一个常见而重…

了解linux网络时间服务器

本章主要介绍网络时间服务器。 使用chrony配置时间服务器 配置chrony客户端向服务器同步时间 20.1 时间同步的必要性 些服务对时间要求非常严格,例如,图20-1所示的由三台服务器搭建的ceph集群。 这三台服务器的时间必须保持一致,如果不一致…

10 单词接龙

题目描述 单词接龙的规则是: 可用于接龙的单词首字母必须要前一个单词的尾字母相同; 当存在多个首字母相同的单词时,取长度最长的单词,如果长度也相等,则取字典序最小的单词;已经参与接龙的单词不能重复使用。 现给定一组全部由小写字母组成…

【开发技能】-解决visio交叉线(跨线)交叉点弯曲问题

问题 平时工作中使用visio作图时,经常会遇到交叉线在相交时会形成一个弯曲弓形,这十分影响视图效果。可以采用下面的方法消除弓形。 方法 第一步:菜单栏--设计---连接线 第二步:选中这条交叉线---点击显示跨线 最终问题得到解决…

C#图像处理OpenCV开发指南(CVStar,09)——边缘识别之Scharr算法的实例代码

1 边缘识别之Scharr算法 算法文章很多,不再论述。 1.1 函数原型 void Cv2.Scharr(src,dst,ddepth,dx,dy,scale,delta,borderType) 1.2 参数说明 src 代表原始图像。dst 代表目标图像。ddepth 代表输出图像的深度。CV_16Sdx 代表x方向上的求导阶数…

23款奔驰E350eL升级小柏林音响 13个扬声器 590w

小柏林之声音响是13个喇叭1个功放,功率是590W,对应普通音响来说,已经是上等了。像著名的哈曼卡顿音响,还是丹拿音响,或者是BOSE音响,论地位,论音质柏林之声也是名列前茅。 升级小柏林音响&#…

java多人聊天

服务端 package 多人聊天;import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList;…

qt 5.15.2 主窗体菜单工具栏树控件功能

qt 5.15.2 主窗体菜单工具栏树控件功能 显示主窗体效果&#xff1a; mainwindow.h文件内容&#xff1a; #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QFileDialog> #include <QString> #include <QMessageBox>#inc…

深入理解Sentinel系列-2.Sentinel原理及核心源码分析

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理&#x1f525;如果感觉博主的文章还不错的话&#xff…

CAP理论详解

引言 随着分布式系统在现代应用中的广泛应用&#xff0c;工程师们不得不面对诸如数据一致性、可用性和分区容错性等问题。CAP定理作为分布式系统设计的基石之一&#xff0c;为我们提供了在这些问题之间做出权衡的理论依据。本文将深入探讨CAP定理的技术细节、先进性&#xff0…

深度学习记录--广播(Broadcasting)

什么是广播&#xff1f; 广播(Broadcasting)&#xff0c;在python中是一种矩阵初等运算的手段&#xff0c;用于将一个常数扩展成一个矩阵&#xff0c;使得运算可行 广播的作用 比如&#xff1a; 一个1*n的矩阵要和常数b相加&#xff0c;广播使得常数b扩展成一个1*n的矩阵 …

mysql的几种索引

mysql索引的介绍可以mysql官网的词汇表中搜索&#xff1a; https://dev.mysql.com/doc/refman/8.0/en/glossary.html mysql可以在表的一列、或者多列上创建索引&#xff0c;索引的类型可以选择&#xff0c;如下&#xff1a; 普通索引&#xff08;KEY&#xff09; 普通索引可…

SQLserver截取字符串

当我们存的数据是json的时候可以全部取出在模糊查询但是有多个重复数据的时候就没办法准确的模糊出来这个时候我们就需要用的字符串截取 --创建函数create FUNCTION [dbo].[Fmax] (str varchar(50),start VARCHAR(50),length VARCHAR(50)) RETURNS varchar(max) AS BEGINDEC…

McBSP接口概念和使用

copy McBSP包括一个数据通道和一个控制通道&#xff0c;通过7个引脚与外部设备连接。数据发送引脚DX负责数据的发送&#xff0c;数据接收引脚DR负责数据的接收&#xff0c;发送时钟引脚CLKX&#xff0c;接收时钟引脚CLKR&#xff0c;发送帧同步引脚FSX和接收帧同步引脚FSR提供…