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

相关文章

nginx中端口无权限的问题解决

《nginx中端口无权限的问题解决》当Nginx日志报错bind()to80failed(13:Permissiondenied)时,这通常是由于权限不足导致Nginx无法绑定到80端口,下面就来... 目录一、问题原因分析二、解决方案1. 以 root 权限运行 Nginx(不推荐)2. 为 Nginx

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon