Linux:权限

目录

一、shell运行原理

二、权限

1.权限的概念

2.文件访问权限的相关设置方法

三、常见的权限问题

1.目录权限

2.umsk(权限掩码)

3.粘滞位


一、shell运行原理

1.为什么我们不是直接访问操作系统?

  1. ”人“不善于直接使用操作系统
  2. 如果让人直接访问操作系统,a.操作成本特别高 b.人会犯错,有风险

        系统的设计者,不会让”人“直接操作 操作系统

2.我们是如何访问操作系统的?

--通过外壳程序

图形化界面&&指令操作是什么?

--操作系统提供的外壳程序

3.外壳程序的意义

  1. 是用户和操作系统交互的中间软件层(将使用者的命令翻译给核心(kernel)处理。
    同时,将核心的处理结果翻译给使用者)
  2. 可以在一定程度,起到保护操作系统作用

二、权限

1.权限的概念

权限:

针对人,事物的基本属性决定权限相关概念(能否完成一件事情)

权限的核心 = 人 + 事务属性(rwx)

对人操作

--Linux是一个多用户操作系统,Linux下可以存在多个用户

  • root:只用一个,具有Linux下的最高权限(一般不受权限约束)
  • 普通用户:可以有多个,要受权限的约束

--如何切换用户

root < -- 切换 -- > 普通用户 ,切换当前权限

  1. 切换到root su - 然后再输入密码(root) (普通用户和root密码尽量不同)
  2. 切换到普通用户: ctrl + D(退回)
  3. root切换到其它用户: su + 名字
  4. 普通用户切普通用户:su + 名字     然后输入该用户的密码

对角色和文件操作

--角色(人)

  1. 文件和文件目录的所有者:u---User
  2. 文件和文件目录的所有者所在的组的用户:g---Group
  3. 其它用户:o---Others 

--文件类型和访问权限(事物属性)

文件类型:

  • d:目录
  • -:普通文件
  • p:管道文件
  • b:块设备
  • c:字符设备

基本权限

  1. 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  2. 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  3. 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  4. “—”表示不具有该项权限

2.文件访问权限的相关设置方法

指令:chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名

选项:

  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

改权限

--1.ugo+-修改

改权限: chmod  u+x  myfile.txt           (拥有者)
        chmod u-x  myfile.txt
        chmod u+rwx  myfile.txt 
        chmod  g+x  myfile.txt              (所属者)
        chmod  o+r  myfile.txt             (other)

        chmod  u-wx,g-x,o+r myfile.txt 
        chmod  a+x  myfile.txt  (所有人)

相关概念:

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限
  • 用户符号: 
  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

--2.八进制修改

chmod  777 myfile.txt
(7的二进制:111,1:有权限    0:无权限)

 通过二进制的方式,给了拥有者,所属者,其它用户所有读写执行的权限

改人

--更改文件的所属者(需要提升权限)

--root下
chown 用户名 文件名(拥有者)
chgrp 用户名 文件名 (所属组)

这里可以看到所属者从root变为zy

 

补充:

sudo 指向命令后以root权限级别来执行

如果用户想执行sudo,需要将用户添加到信任列表里

三、常见的权限问题

1.目录权限

进入一个目录。需要什么权限?-------x (执行权限)

rw权限限制了用户能否查看和写(执行ls指令,touch/mkdir指令)

补充:权限只会被认证一次,若你是拥有者又是所属者,则只看拥有者权限

2.umsk(权限掩码)

Linux默认:

1.一个目录被创建,起始权限:777

2.一个普通文件被创建,起始权限:666

为什么创建一个目录或文件,默认权限是

d rwx rwx r-x

- rw- rw- r--

原因:要受到umaks过滤(凡是在umsk中出现的权限,都不应该在最终权限中出现

最终权限 = 起始权限&(~umask)

3.粘滞位

大家所有用户都在一个共同的路径下,对该目录具有读写执行权限

1.当多个用户共享一个目录,需要在该目录下进行,读写,创建文件

2.但是自己只能删除自己的,而不能删除别人的(w:可以互删,但不满足条件)

粘滞位解决上面情况: chmod +t 目录 即可

粘滞位只能给目录设置(谁设置,谁取消)

示例:

现在zy和tmp在同一路径下,都有rwx权限

tmp可以删除zy的文件:

为了防止这种情况发生,我们加上粘滞位,(root下) 

然后我们切回tmp,看看还能不能删除zy文件

由于粘滞位,这里不能互删

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

<C++> 类和对象(中)-类的默认成员函数

1.类的默认成员函数 默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译器会生成的成员函数称为默认成员函数。 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会…

基于Jenkins自动打包并部署Tomcat环境

基于上一章创建部署 Linux下Jenkins安装 &#xff08;最新&#xff09;_学习新鲜事物的博客-CSDN博客 传统网站部署的流程 在运维过程中&#xff0c;网站部署是运维的工作之一。传统的网站部署的流程大致分为:需求分 析-->原型设计-->开发代码-->提交代码--&g…

【位运算】算法实战

文章目录 一、算法原理常见的位运算总结 二、算法实战1. leetcode面试题01.01. 判断字符是否唯一2. leetcode268 丢失的数字3. leetcode371 两整数之和4. leetcode004 只出现一次的数字II5. leetcode面试题17.19. 消失的两个数字 三、总结 一、算法原理 计算机中的数据都以二进…

243:vue+Openlayers 更改鼠标滚轮缩放地图大小,每次缩放小一点

第243个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayers项目中设置鼠标滚轮缩放地图大小,每次滑动一格滚轮,设定的值非默认值1。具体的设置方法,参考源代码。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源…

SMC_TRAFO_GantryCutter2 (FB) 带刀片旋向龙门

裁布机&#xff1a;刀片按XY走向&#xff0c;偏转刀片角度。 pi&#xff1a;目标位置矢量&#xff08;x&#xff0c;y&#xff09;&#xff0c;插值器的输出 v&#xff1a;当前路径切线的矢量&#xff0c;插值器的输出 dOffsetX&#xff1a; x轴的附加偏移 dOffsetY&#xf…

【C++精华铺】9.STL string

目录 1. string类的优势 2. string类的常用接口 2.1 常用构造 1. 空串构造&#xff1a;string(); 2. C串构造&#xff1a;string(const char* s); 3. 拷贝构造&#xff1a;string(const string& str); 4. 字符填充构造&#xff1a;string(size_t n, char c); 5. 迭代…

大数据开发要学习什么?学完又能做什么

学习大数据需要掌握什么语言基础&#xff1f; 1、Java基础 大数据框架90%以上都是使用Java开发语言&#xff0c;所以如果要学习大数据技术&#xff0c;首先要掌握Java基础语法以及JavaEE方向的相关知识。 2、MySQL数据库 这是学习大数据必须掌握的知识之一。数据的操作语言是…

研磨设计模式day11观察者模式

目录 场景 代码示例 定义 观察者模式的优缺点 本质 何时选用 简单变型-区别对待观察者 场景 我是一家报社&#xff0c;每当我发布一个新的报纸时&#xff0c;所有订阅我家报社的读者都可以接收到 代码示例 报纸对象 package day11观察者模式;import java.util.Observ…

Ubuntu20.04配置mysql配置主从复制

ubuntu20.04&#xff1a;mysql主库 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # 修改完毕重启 sudo service mysql stop sudo service mysql start主库mysqld.cnf配置 [mysqld] ... # bind-address>->--- 127.0.0.1 # 注释掉&#xff0c;允许外部连接 # mysqlx-b…

Spark整合hive的时候出错

Spark整合hive的时候 连接Hdfs不从我hive所在的机器上找&#xff0c;而是去连接我的集群里的另外两台机器 但是我的集群没有开 所以下面就一直在retry 猜测&#xff1a; 出现这个错误的原因可能与core-site.xml和hdfs-site.xml有关&#xff0c;因为这里面配置了集群的nameno…

浅析 GlusterFS 与 JuiceFS 的架构异同

在进行分布式文件存储解决方案的选型时&#xff0c;GlusterFS 无疑是一个不可忽视的考虑对象。作为一款开源的软件定义分布式存储解决方案&#xff0c;GlusterFS 能够在单个集群中支持高达 PiB 级别的数据存储。自从首次发布以来&#xff0c;已经有超过十年的发展历程。目前&am…

Pycharm通过SSH配置centos上Spark环境

直接在shell进行pyspark进行编程&#xff0c;程序没有办法写得太长&#xff0c;而且我们希望能够实现一个及时给出结果的编程环境&#xff0c;可以使用pycharm连接centos上的spark&#xff0c;进行本地编程&#xff0c;同步到centos系统中运行程序&#xff0c;并把结果返回pych…

IMS中Binder案例

IMS中Binder案例 1、FWK层中AIDL形式1.1 服务端实现Stub1.2 客户端获取proxy 2、Native层中AIDL形式2.1 服务端对应Bn端2.2 客户端对应Bp端 android12-release 1、FWK层中AIDL形式 Android 接口定义语言 (AIDL)、Android 应用层 到 HAL 层 AIDL形式是Android中binder机制的具体…

HAproxy服务及keepalived+haproxy高可用

本节主要学习AHproxy 的概述&#xff0c;安装&#xff0c;调度算法&#xff0c;配置文件&#xff0c;负载均衡&#xff0c;配置syslog日志&#xff0c;keepalivedhaproxy实现高可用。 目录 一、概述 1、简介 2、核心功能 3、关键特性 4、应用场景 二、安装 1.内核配置 …

Delphi 开发手持机(android)打印机通用开发流程(举一反三)

目录 一、场景说明 二、厂家应提供的SDK文件 三、操作步骤&#xff1a; 1. 导出Delphi需要且能使用的接口文件&#xff1a; 2. 创建FMX Delphi项目&#xff0c;将上一步生成的接口文件&#xff08;V510.Interfaces.pas&#xff09;引入: 3. 将jarsdk.jar 包加入到 libs中…

开始MySQL之路——MySQL安装和卸载

MySQL的介绍 MySQL数据库管理系统由瑞典的DataKonsultAB公司研发&#xff0c;该公司被Sun公司收购&#xff0c;现在Sun公司又被Oracle公司收购&#xff0c;因此MySQL目前属于Oracle旗下产品。 MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权…

四、Kafka Broker

4.1.1 Zookeeper 存储的 Kafka 信息 4.1.2 Kafka Broker 总体工作流程 4.2 生产经验 - 节点的服役和退役 自己的理解&#xff1a;其实就是将kafka的分区&#xff0c;负载到集群中的各个节点上。 1、服役新节点 2、退役旧节点 4.3 kafka副本 1、副本的作用 2、Leader的…

共享内存 windows和linux

服务端&#xff0c;即写入端 #include <iostream> #include <string.h> #define BUF_SIZE 1024 #ifdef _WIN32 #include <windows.h> #define SHARENAME L"shareMemory" HANDLE g_MapFIle; LPVOID g_baseBuffer; #else #define SHARENAME "sh…

Node.js 的 Buffer 是什么?一站式了解指南

在 Node.js 中&#xff0c;Buffer 是一种用于处理二进制数据的机制。它允许你在不经过 JavaScript 垃圾回收机制的情况下直接操作原始内存&#xff0c;从而更高效地处理数据&#xff0c;特别是在处理网络流、文件系统操作和其他与 I/O 相关的任务时。Buffer 是一个全局对象&…

Sql Server导出数据库到另一个数据库

1.打开sql server数据库&#xff0c;连接到服务器后&#xff0c;找到需要导出的数据库&#xff0c;右击后选择 任务->导出数据。 2.点击 下一步。 3.身份验证可以使用SQL Server身份验证&#xff0c;就是当时建立连接时的用户名和密码&#xff0c;数据库名称使用默认的&…