yo!这里是Linux权限入门理解

2023-10-20 09:10
文章标签 linux 入门 理解 权限 yo

本文主要是介绍yo!这里是Linux权限入门理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

权限概念

权限管理

分类

1.用户

2.文件&&目录

表示

设置

1.chmod指令

2.chown指令

3.chgrp指令

4.umask指令

粘滞位

后记


前言

        对于Linux基本指令,基本上就是操作文件或者目录,但是,是谁可以操作文件或目录,哪些文件和目录是可以操作的,这就涉及到了权限的问题。不仅是在Linux,在Windows下也是存在权限问题的,比如一些软件运行需要管理员身份运行。可见权限在操作系统中非常重要,在于它可以控制使用者在特定环境下的访问范围和操作能力,从而保障系统的安全和稳定性,同时也保护个人隐私和知识产权。

权限概念

        权限是指对某个资源或行为的授权或限制的能力。在计算机系统中,权限通常指用户或程序可以进行的操作或访问某个资源的能力,可以是对文件读取、写入、修改、执行以及删除等操作,也可以是限制某些用户可以这些操作。

        对于用户,Linux下分为两种,包括超级用户(root)普通用户,root可以在Linux下做任何操作,不受任何限制;相反,普通用户则是只能做有限的事情。

        Linux下,切换用户的指令:su [用户名]

        注意:要从root用户切换到普通用户user,则使用 su user,不需要密码user的密码,因为root权力最大;要从普通用户user切换到root用户则使用 su root(root可以省略)或者su -,需要root的密码。

权限管理

  • 分类

1.用户

        将能否访问某文件或目录(后简称为文件)的人分为三种:

文件所有者(User):创建文件的用户,或文件属于谁;

文件所有者所在组(Group):一般在工程上都会划分组别,分工干活,可以控制组内的成员控制此文件的权限;

其他用户(Other):除文件所有者以及所在组成员的所有人。

2.文件&&目录

        先来看一下Linux下一个文件或目录的信息介绍,如图

 1)文件类型

d:文件夹

-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

2)权限

        前三个是所属用户的权限,中间三个是所属用户组的权限,后三个是other的权限,都是由读(r/read)、写(w/write)、执行(x/execute)、"-"排列组合而成,对于文件和目录的具体操作是不同的,而"-"是指不具有该权限,如下图

        连接数先不做了解,后面会介绍;所属用户组名字默认与所属用户名相同;其他信息顾名思义,很好理解。

  • 表示

        文件权限的表示方法有两种,一种就是上方文件信息中由r、w、x、-组合而成的字符表示法,比如,r--是只读,-w-是只可写,rw-是可读可写不可执行、rwx是可读可写可执行、---是无任何权限等;

        还有一种是八进制数值表示法,在通过指令修改文件权限使常用,因为r、w、x的相对位置固定,有八种组合方式,正好可以用八进制数值的方式,包括---对应0,--x对应1,-w-对应2,-wx对应3,r--对应4,r-x对应5,rw-对应6,rwx对应7。

  • 设置

1.chmod指令

格式:chmod [选项] 权限 文件名

功能:设置文件的访问权限

选项: R   递归修改目录文件的权限

1)字符表示法

        u:拥有者

        g:拥有者同组用

        o:其它用户

        a:所有用户

        +:向权限范围增加权限代号所表示的权限

        -:向权限范围取消权限代号所表示的权限

        =:向权限范围赋予权限代号所表示的权限

eg:

 

 2)八进制数值表示法

        将所属用户、所属用户组及其他人的权限的八进制数拼在一起,直接改所有权限,不像字符表示法需要+、-。

eg:

 

2.chown指令

格式:chown [参数] 需要改成的用户名 文件名

功能:修改文件的拥有者

说明:此指令会提升权限,需要root用户或者存在于信任列表中的用户,其中信任列表是root对于普通用户而言的,可以使得普通用户使用【sudo 指令】的方式拥有root权限执行后续指令,也就是说root用户直接使用此指令,而存在于信任列表的普通用户使用【sudo 指令】的方式,其他人无法使用此指令,添加用户到信任列表的方法在下面。

eg:

添加用户到信任列表:

1.切换成root用户

2.使用指令sudo vim /etc/sudoers 编辑sudoers文件,向下翻找到## Allows......

3.复制%wheel  ALL=(ALL)       ALL 到下面,再将%wheel改为想要添加的用户名,如上图,保存退出即可。

3.chgrp指令

格式:chgrp [参数] 需要改成的用户组名 文件名

功能:修改文件或目录的所属组

选项:-R 递归修改文件或目录的所属组

说明:chgrp指令也是如同chown指令使用受限。

eg:

4.umask指令

格式:umask [权限值]

功能:不加权限值是查看文件掩码,加权限值是修改文件掩码

说明:如图,当我们新建一个文件或者目录,可以看到文件初始权限是664(八进制数值表示法),目录初始权限是775;

         其实,新建文件默认权限=666 新建目录默认权限=777,但实际上你所创建的文件和目录,看到的权限往往不是这个值,而是如图的值。原因就是创建文件或目录时还要受到 umask的影响。假设默认权限是originmask,则实际创建的出来的文件权限是: originmask & ~umask,即为建立文件时的初始权限。超级用户默认掩码值为022,普通用户默认为002,而umask指令就是修改这个值的。

粘滞位

        先看这么个场景,当多个用户在同一路径下共享(管理)同一个目录时,需要在该目录下进行读写、创建、修改、删除文件,读写文件的权限通过对应文件控制,而创建、修改、删除文件的权限是由所在目录控制的,所以大家对此目录下的文件的权限是一模一样的,此时,别人是可以删除我创建的文件,万一别人有意删除或者不小心删除了我的文件,就会造成麻烦。

        方法一:因为目录的w权限是创建、删除、修改目录内文件的权限,所以将目录的w权限去掉,但这样的话,虽然别人不能删除自己的文件了,但是自己也不能创建删除自己的文件,不可行!

        方法二:使用粘滞位

格式:chmod +t 目录名

功能:该目录下的文件只能由超级管理员删除、该目录的所有者删除、该文件的所有者删除

注意:①粘滞位只能给目录设置,

           ②一般地,粘滞位谁设置,谁取消。

eg:

 注:可以将t看做成x的一种特殊形式。

后记

        在开发环境中,权限非常之重要,确保开发环境中安全性、组织结构、版本控制和测试环境等方面的重要手段,能够帮助我们更好地管理和保障开发和测试过程的有序进行。以上就是权限的入门理解,并不是很多,简易反复读阅,在后续的学习中会对权限的理解越来越深刻,加油,拜拜!


这篇关于yo!这里是Linux权限入门理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/246139

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Linux命令rm如何删除名字以“-”开头的文件

《Linux命令rm如何删除名字以“-”开头的文件》Linux中,命令的解析机制非常灵活,它会根据命令的开头字符来判断是否需要执行命令选项,对于文件操作命令(如rm、ls等),系统默认会将命令开头的某... 目录先搞懂:为啥“-”开头的文件删不掉?两种超简单的删除方法(小白也能学会)方法1:用“--”分隔命