初识Linux:第五篇

news2024/10/7 6:48:47

初识Linux:第五篇

  • 初识Linux:第五篇
    • 1.Linux下的用户
    • 2.Linux权限管理
      • 2.1文件权限管理
      • 2.2文件权限的更改
      • 2.21改变文件访问权限属性
      • 2.22改变文件的身份
    • 3.三个问题
  • 总结

初识Linux:第五篇

😁本篇主要介绍Linux权限的相关知识👇

在这里插入图片描述

1.Linux下的用户

🤔在了解权限之前,先来了解一下Linux有哪些用户呢?

Linux下的用户有两种,超级用户(root用户),普通用户(也就是你adduser的用户);
windows:
在windows下的用户是管理员用户(超级用户)和普通用户,与Linux下的差不多,但是Linux的权限要比windows高;


🤔那么超级用户和普通用户有什么区别呢?

  • 权限不同对于超级用户而言基本不受权限约束(注意并不是说root拥有所有权限,有些特殊的权限root也是不行的),对于普通用户而言是受权限的限制的;
  • 命令提示符不同,超级用户(root)的是’#‘,而普通用户的是’$ ‘;

在这里插入图片描述
在这里插入图片描述


🤔那么怎么在两种用户之间切换呢?

指令:su 或者 su -或者sudo(受限制的su)
su和su -的区别

  • 对于su而言,直接切换用户,无需重新登陆,所以路径不改变(原来的切换前的路径);
  • 对于su -而言,以重新登陆的方式进入,所以路径会改变登陆后的路径(新用户的家目录);
  • 退出当前用户都是exit/^+d;

sudo暂时先不说,sudo可以对指令进行提权等,需要配置文件(因为系统默认不信任你),需要用到vim(暂时还不知道)😭;


su和su -指令的用户切换

1.root->普通用户:su+用户名/su - 用户名,无需输密码;
在这里插入图片描述
在这里插入图片描述

2.普通用户->root:su/su -,需要输入root密码;

在这里插入图片描述
在这里插入图片描述
3.普通用户->普通用户,su 用户名/su - 用户名,需要输入指定的用户名密码;
在这里插入图片描述
在这里插入图片描述

从这里可以看出,root的权限还是很大的(完全不需要输密码,随意切换);


2.Linux权限管理

🤔🤔说了这么多那么什么是权限?

举个简单的例子:
在这里插入图片描述
我们发现我们不充vip看不了这个电影,这个就是权限;

所以简而言之,权限就是一件事情是否允许被你做,Linux下权限=人+事物属性

🤔我们前面所说的root或者普通用户是什么?

注意:root或普通用户是人,我们知道每个人都有自己的身份(文件中主要有三种身份:拥有者,所属组,其他人),所以权限认证的逻辑就是人和身份是否匹配;

2.1文件权限管理

权限=人+事物属性
在这里插入图片描述

😁谈到文件,就不得不说说文件的类型和属性了👇

  1. 文件类型(第一个字符)

d:文件夹
-:普通文件(文本,可执行程序,库等)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件(用来进行通信的)
c:字符设备文件(例如键盘或显示器文件)
s:套接口文件

举几个例子
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux系统中,文件名后缀没有直接意义(不代表不用),我们主要看文件类型;

🤔🤔怎样理解上面的这句话?

在这里插入图片描述
我写了一个C语言代码并编译:
在这里插入图片描述
在这里插入图片描述
如何理解不代表不用?
在这里插入图片描述
这里阐明一下,Linux操作系统对文件名后缀没有直接意义,但是Linux中的软件(比如gcc),会使用文件名后缀;


  1. 文件属性(后面的9个字符)

在这里插入图片描述

🤔🤔不难看出,这里有四种字符,那么这四种字符到底是什么意思呢?

先细说普通文件的文件属性,r,w,x,-的意思,后面再学习目录文件的文件属性r,w,x,-的意思;

普通文件
r:可读;
w:可写;
x:可执行;
-:不具有该项权限;

🤔那么为什么会有这么多?

这些权限对应的是身份,Linux中文件权限的身份主要有以下三种:拥有者(u:owner),所属组(g:group),其他人(o:others);
每三个字符对应一个身份:

在这里插入图片描述

所以我们进行权限认证时,就是拿你的用户名和身份匹配(相当于if…else if…else…逻辑);


2.2文件权限的更改

🤔那么文件的权限可以改吗?

可以,在学习如何去改之前,需要知道文件权限值的表示方法;

  1. 字符表示方法
    在这里插入图片描述

  2. 8进制数值表示方法

🤔为什么可以用8进制数值表示方法?

因为在Linux中每三个字符的位置是确定的,第一个位置是r/-,第二个位置是w/-,第三个位置是x/-,那么我们可以看出每个位置要么有权限,要么没权限,有权限就可以用1表示,没权限就可以用0表示,那么三个字符就可以用三个数字(0/1)组成的二进制表示,也就可以化为一个8进制数字;

在这里插入图片描述


🤔如何改呢?

注意改变权限对root用户无影响,也就是说超级用户基本不受权限约束;

在这里插入图片描述

2.21改变文件访问权限属性

  1. 改变文件访问权限属性
    指令:chmod [参数] 文件权限值 目标文件
    可改文件属性的人拥有者或者root用户
    常用参数:-R : 递归修改目录文件的权限;

  • 用字符表示方法修改文件权限
    +:向权限范围增加权限代号所表示的权限
    -:向权限范围取消权限代号所表示的权限
    用户符号:
    u:拥有者
    g:拥有者同组用
    o:其它用户
    a:所有用户

例如:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述


  • 以8进制的表示方法修改文件访问权限
    例如:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

2.22改变文件的身份

  1. 改变文件的身份

权限=人+事物属性,所以我们也是可以改身份的;
权限认证是看你当前用户和身份是否匹配,root除外;
注意改变权限对root用户无影响

  • 改拥有者的身份
    指令:chown [参数] 用户名 文件名
    可更改的人root或者sudo
    常用选项:-R :递归修改目录文件的拥有者;
    例如:
    在这里插入图片描述
    因为你要给别人拥有者这个身份,你需要征得别人同意,所以我们采用强制给别人
    sudo+指令(由于sudo暂时没说)或root用户更改文件拥有者;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


  • 改变所属组身份
    指令:chgrp [参数] 用户名 文件名
    可更改的人sudo或者root
    常用选项:-R :递归修改目录文件的所属组;
    例如:

在这里插入图片描述
在这里插入图片描述

  • 改变所属组和拥有者(一起变)
    指令:chown [选项] 用户名:用户名 文件名
    可更改的人sudo或者root
    常见选项:-R :递归修改目录文件的拥有者和所属组;
    例如:

在这里插入图片描述


3.三个问题

在这里插入图片描述
在Linux下

  • 新建文件夹默认权限=0666
  • 新建目录默认权限=0777
    但实际上你所创建的文件和目录,看到的权限往往不是上面这个值;

问题一

🤔为什么目录文件的默认权限值是0775,为什么普通文件的默认权限值是0664?

注意第一个0是表示8进制的意思
权限掩码umask凡是在umask中出现的权限,不会在最终权限中出现
原因就是创建文件或目录的时候还要受到umask(权限掩码)的影响。假设默认权限是mask,则实际创建的出来的文件权限是: 最终权限=mask & (~umask);
也就是说,我们所创建的文件或目录需要经过上述公式的计算才是我们真正看到的;
例如:
在这里插入图片描述
在这里插入图片描述


补充
umask指令用法:

  • umask:查看当前权限掩码;
  • umask 三位8进制数字:更改权限掩码;

在这里插入图片描述
超级用户默认掩码值为0022,普通用户默认为0002

在这里插入图片描述


问题二

🤔🤔目录文件的rwx是什么意思?

  • r:可读权限,如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
  • w:可写权限,如果目录没有可写权限, 则无法在目录中创建或更改文件, 也无法在目录中删除文件
  • x:可执行权限,如果目录没有可执行权限, 则无法cd到目录中
  • -:无权限;

在这里插入图片描述
也就意味者我们无法通过家目录来进行文件共享需求
所以我们需要在根目录下建立一个共享目录,这个共享目录能够让我们互相访问文件;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

于是wang一气之下给我删了,因为删文件与目录文件的w权限有关,所以它可以删😭;

在这里插入图片描述
在这里插入图片描述

问题三

🤔🤔🤔有没有方法让他删不了我的文件?(我能共享文件,但是不让别人删)

当然root除外,因为root不受权限约束;
为了解决这个不科学的问题, Linux引入了粘滞位的概念;
粘滞位是一个特殊的可执行权限( t ),只能放在other上且只能给目录设置(因为我们主要目的就就是防止其他用户删除我们的文件)
用法:chmod o+t 文件名
例如:
在这里插入图片描述
注意粘滞位是给目录的other设置的,上述的设置是给普通文件设置的,自然没用;

在这里插入图片描述
在这里插入图片描述


注意点:
在这里插入图片描述
在这里插入图片描述
那个shared是我切成root自己创建的;

总结

本篇主要介绍了如何切换用户,以及权限的操作,如何防范我们共享文件不被其他普通用户删除等,如果喜欢本篇不妨留下一个❤️,感谢大家观看,下期见;

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

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

相关文章

vue+elementui+nodejs高校校园在线打印预约系统

在线提交文档进行打印 首页简单介绍系统 语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 顶部或主页按钮转到打印 用户可以登录 查看历史打印记录 用户分学生和非学生 学生可以享有优惠…

基于.NetCore开源的Windows的GIF录屏工具

推荐一个Github上Start超过20K的超火、好用的屏幕截图转换为 GIF 动图开源项目。 项目简介 这是基于.Net Core WPF 开发的、开源项目,可将屏幕截图转为 GIF 动画。它的核心功能是能够简单、快速地截取整个屏幕或者选定区域,并将其转为 GIF动画&#x…

编写 ROS 消息发布订阅器(五)

执行命令,指定目录添加cpp文件 cd ~/catkin_ws/src/beginner_tutorials如果没有src目录, 就自己创建一个目录叫src cd src/ vim talker.cpp 复制代码粘贴: #include "ros/ros.h" #include "std_msgs/String.h" int m…

C++/R 期末冲刺3h

C 1. 基础程序 #include "iostream" // C头文件 #include "stdio.h" // C 头文件 //using namespace std; // 命名空间// main() 是程序开始执行的地方int main() {std::cout << "Hello, World!" << "\n";return 0; …

【数据结构】线性结构 之 顺序表

&#x1f331;博客主页&#xff1a;大寄一场. &#x1f331;系列专栏&#xff1a;数据结构与算法 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 目录 前言 顺序表概念及结构 静态代码实现&#xff1a; 动态代码实现&#xff1a; SeqList.h文件 SeqLi…

使用VitePress和Github搭建个人博客网站,可以自动构建和发布

之前我们写过一篇关于如何自动构建和发布个人博客的文章&#xff0c;当时是使用VuePress和GitLab。GitLab持续集成部署CI/CD初探&#xff1a;如何自动构建和发布个人前端博客 现在换了Vue3和Vite&#xff0c;使用VitePress在Github上又搭建了一个博客。博客地址&#xff1a; …

博弈Ai官网ChatGPT能力真实测评

链接&#xff1a;https://chat.bo-e.com/&#xff08;基于ChatGPT4和3.5研发的智能聊天机器人国产镜像&#xff09; 一&#xff0c;博弈Ai的UI设计样式 1、博弈Ai&#xff08;ChatGPT&#xff09;白天模式 2、博弈Ai&#xff08;ChatGPT&#xff09;黑天模式 3、博弈Ai&#x…

五、c++学习(加餐1:汇编基础学习)

经过前面几节课的学习&#xff0c;我们在一些地方都会使用汇编来分析&#xff0c;我们学习汇编&#xff0c;只是学习一些基础&#xff0c;主要是在我们需要深入分析语法的时候&#xff0c;使用汇编分析&#xff0c;这样会让我们更熟悉c编译器和语法。 从这节课开始&#xff0c…

【003hive基础】hive的数据类型

文章目录 一.数据类型1. 基础数据类型2. 复杂数据类型 二. 显式转换与隐式转换三. hive的读时模式 一.数据类型 1. 基础数据类型 2. 复杂数据类型 array: 有序相同数据类型的集合。 arrays(1, 2)map : key必须是基本数据类型&#xff0c;value不限。 map(‘a’, 1, ‘b’, 2)s…

线性回归、正规方程和梯度下降法

一、线性回归简介 1.定义与公式 线性回归是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。 特点&#xff1a;只有一个自变量的情况称为单变量回归&#xff0c;多余一个自变量情况的叫做多元回归 通用公式&#xff1a; y …

javascript基础三:谈谈 JavaScript 中的类型转换机制

一、概述 JS中有六种简单数据类型&#xff1a;undefined、null、boolean、string、number、symbol&#xff0c;以及引用类型&#xff1a;object 但是我们在声明的时候只有一种数据类型&#xff0c;只有到运行期间才会确定当前类型 let name y?allen:1上面代码中&#xff0c…

2023年NOC大赛创客智慧编程赛项Python 复赛模拟题(二)

题目来自:NOC 大赛创客智慧编程赛项Python 复赛模拟题(二) NOC大赛创客智慧编程赛项Python 复赛模拟题(二) 第一题: 编写一个成绩评价系统,当输入语文、数学和英语三门课程成绩时,输出三门课程总成绩及其等级。 (1)程序提示用户输入三个数字,数字分别表示语文、数学、…

ChatGPT-4 镜像网站推荐

文章目录 1. TomChat2. Ai Doge3. 二狗问答4. 小莓用AI5. Ora6. 未知名字7. VIVI-AI8. ATALK9. ChatGPT Web10 AIchatOS 什么是ChatGPT? ChatGPT&#xff0c;全称&#xff1a;聊天生成预训练转换器&#xff08;英语&#xff1a;Chat Generative Pre-trained Transformer&#…

抓取领域相关论文及摘要

抓取规划问题是指确定物体与手指间的一系列接触位置&#xff0c;使得手指能抵抗任意外力且灵活操作物体的能力。传统的基于分析的抓取规划需要根据已知的被抓物体模型根据力闭合的条件判断抓取的好&#xff0c;这种方法只适合对已知的物体进行抓取。 然而日常生活中有很多相似…

MyBatis 中的动态 SQL 是什么?它的作用是什么?

MyBatis 中的动态 SQL 是一种允许在 SQL 语句中根据不同的条件动态生成 SQL 语句的技术。它可以根据不同的条件生成不同的 SQL 语句&#xff0c;从而达到灵活构建 SQL 语句的目的。动态 SQL 可以减少代码的重复度&#xff0c;提高代码的可维护性和可读性。 动态 SQL 使用 OGNL…

如何在MyBatis中处理复杂结果集映射关系

文章目录 前言一、 准备工作二、resultMap处理字段和属性的映射关系三、多对一映射0、级联方式处理映射关系1、使用association处理映射关系2、分步查询解决多对一关系(1) 查询员工信息(2) 根据员工所对应的部门id查询部门信息延迟加载 三、一对多的关系处理0、使用collection来…

6.1 SpringBoot解决跨域,我推荐这2种超实用方案

文章目录 前言一、验证跨域1. 添加index.html2. 增加/auth/test/cors接口3. IDEA启动多个springboot项目4. 验证POST方法5. 验证OPTIONS方法 二、拦截器方案定义拦截器注册拦截器&#xff0c;并指定拦截规则 三、过滤器方案总结最后 前言 在文章【2-2】中&#xff0c;我和你介…

获取企业服务超市企业信息

地址&#xff1a; 服务机构-苏州工业园区企业服务超市 import os from datetime import datetime from urllib import request import pandas as pd import re import requests from lxml import etree from bs4 import BeautifulSoup import csv import codecs# 20230521 根据…

learn_C_deep_13 (深刻理解宏定义)

目录 宏定义 数值宏常量 字符串宏常量 用定义充当注释符号宏 用 define 宏定义表达式 宏定义中的空格 宏定义 数值宏常量 在C语言中&#xff0c;宏定义可以用于定义数值宏常量。数值宏常量是一个值&#xff0c;在宏定义中用一个常量名称来表示&#xff0c;该值在后续的代…

计算机视觉的应用5-利用PCA降维方法实现简易人脸识别模型

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用5-利用PCA降维方法实现简易人脸识别模型&#xff0c;本文将介绍如何使用主成分分析&#xff08;PCA&#xff09;实现简易的人脸识别模型。首先&#xff0c;我们将简要介绍PCA的原理及其在人脸识别中…