无法执行文件命令?权限不够?看这篇就够了
xsobi 2025-01-13 18:49 17 浏览
关注优麒麟,更多干货等着你!
Linux 系统上有严格的权限等级,如果权限过高导致误操作会增加系统的风险。所以对于了解 Linux 系统中的各种权限及如何分配合理的权限十分重要。
不同于 Windows 系统,Linux 是一个多用户系统,对每一个用户来说,个人隐私的保护十分重要,所以 Linux 系统为每个文件都添加了很多的属性,最大的作用就是维护数据的安全。就像在你的 Linux 系统中,和系统服务相关的文件通常只有 root 用户才能读或写,例如 /etc/shadow 文件,此文件记录了系统中所有用户的密码数据,重要程度不言而喻,所以绝不能让任何人读取以防止密码泄露,而只有 root 用户才有读取权限。
所以说,权限是用来约束用户对系统所做的操作。或者说,权限是指某个特定的用户具有特定的系统资源使用权力。
1.权限与用户的关系
在Linux系统中,权限用来定义用户能做什么、不能做什么。针对文件定义了三种身份,分别是属主 Owner、属组 Group、其他人 Others。每种身份又对应三种权限,分别是读 read、写 write、执行 execute。
Linux 中权限由 rwxr-xr-x 这 9 位字符来表示,主要控制文件的属主 Owner、属组 Group 以及其他用户 Others 的权限。
一个用户访问文件的流程如下:
1.判断用户是否为文件属主,如果是则按属主权限进行访问;
2.判断用户是否为文件属组,如果是则按属组权限进行访问;
3.如果不是文件属主、也不是该文件属组,则按其他人权限进行访问。
我们在使用 Linux 的过程中,时常会遇到一些关于属主和属组的问题,比如最常见的你想要在某个路径下执行某个指令,会经常出现“Permission denied”错误提示,这其实也是由权限问题导致的。
2.如何修改文件权限
修改权限简单来说就是:赋予某个用户或组-->能够以何种方式(读写执行)-->访问文件。
变更文件权限使用的是 chmod 这个命令,但是,权限的设置有两种方式,可以分别使用数字或者符号进行权限变更。对于 root 用户而言,可以修改任何人的文件权限;普通用户仅仅只能变更属于自己的文件权限。
(1)NUM 方式
我们可以使用数字来表示 Linux 文件的各个权限。
一般 r 表示 4;w 表示 2;x 表示 1,每种身份各自的权限是需要累加的,比如 rwx 就表示 4+ 2 + 1 = 7。比如我们最常见的 chmod777 它就表示赋予所有的权限,也就是说谁都能看/写/执行,但是这种文件也存在极大的安全问题。
示例
- 设定文件权限 644,rw-r--r--
- 设定文件权限 600,rw-------
- 设定目录权限为 755,递归授权 rwxr-xr-x
(2)UGO 方式
九种文件权限分别对应着:user、group 和 others,所以我们可以借由 u,g,o 来代表三种身份的权限。除此之外,a 代表 all 即全部的身份。
示例:
- 给文件所有人添加读写执行权限: chmod a=rwx file
- 取消文件的所有权限: chmod a=-rwx file
- 属主读写执行,属组读写,其他人无权限: chmod u=rwx,g=rw,o=- file
- 属主属组读写执行,其他人读权限: chmod ug=rwx,o=r file
(3)UGO 和 NUM 的区别
- UGO 权限是把对文件的访问者做权限;
- NUM 权限是对文件本身做权限。
3.修改文件权限的影响
Windows 系统下通过查看文件扩展名判断文件是否能够执行,比如 .exe,.bat, .com 等,但是在 Linux 中,判断文件是否具有可执行权限是直接判断文件有没有 x 这个权限,和文件名无关。
但是在 Linux 中,不只有文件具有权限,目录也有权限,文件是存放实际数据的地方,而目录是记录文件所在位置的清单,我们只有通过目录才能找到文件放在哪里!在 Linux 中权限的设定对文件和对目录的影响也是有区别的。
(1)对于文件:
- r :可以读取文件内容(比如命令 cat more head tail)。
- w :可以编辑文件(比如命令 vim echo ),但是不能删除文件,因为文件名没有放在自己的文件空间,而是放在了上一级的目录空间下。
- x :可以执行。
(2)对于目录:
- r:可以查询目录下的文件(比如命令 ls ll)。
- w:具有修改目录结构的权限,比如新建文件和目录,删除此目录下文件和 目录,重命名此目录下文件和目录,剪切和复制(比如命令 cp mv touch rm)。
- x:目录有执行权限但是不能运行,可以进入目录(cd 命令)。
对文件来说最高权限是 x,对于目录来说最高权限是 w,一般给目录赋予权限 0,5(rx),7(rxw),赋予 4,1,6 都是没有意义的。对于文件能否删除,首先要对目录具有执行权限,同时对文件也具有执行权限。
chown 命令:用来改变文件或目录的所有者和所属用户组。
chgrp 命令:用来改变文件或目录的所属的用户组。
示例
(1)chown(changeowner)
准备环境,创建文件和目录;
修改所属主为 bin;
修改所属组为 adm;
修改目录所属主为 root,所属组为 root,并进行递归授权。
(2)chgrp(changegroup)
准备环境,创建文件和目录;
修改所属组为 adm。
本文介绍了几种常用的权限命令,掌握一些基础的 Linux 知识有助于我们更好的使用系统。需要注意的是,不要随意更改系统文件夹的权限,这样可能会导致您的系统某些功能无法正常使用。
相关推荐
- 249个Linux Shell脚本经典案例,拿来即用(附PDF)
-
作为一名Linux运维工程师,会写好的脚本不仅能提高工作效率,还能有更多的时间做自己的事。最近在网上冲浪的时候,发现大家对Shell脚本都有“心结”,要么觉得自己写出来不好看,要么根本无从下手。下...
- 分享一个实用脚本—centos7系统巡检
-
概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本#!/bi...
- Go 语言 Web 框架 Echo 系列:基础篇—搭建 Echo 开发环境
-
工欲善其事必先利其器。我们先搞定Echo环境。Go开发环境这个系列基于Go1.14.4,Linux系统。安装Go的方式有很多,可以在这里https://studygolang.com/...
- 连Shell的基本输出都不会,还写什么脚本?echo和printf命令总结
-
在Linux系统中使用echo命令和printf命令都可以实现信息的输出功能,下面我们分别看这两个命令的应用案例。echo1.使用echo命令创建一个脚本文件菜单功能描述:echo命...
- 在Linux中改变echo输出颜色的方法
-
技术背景在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色。例如,在脚本中使用不同颜色区分错误信息、警告信息和正常信...
- Spring框架中applicationContext.xml和spring - servlet.xml的区别
-
技术背景在Spring框架里,applicationContext.xml和spring-servlet.xml是两个重要的配置文件。Spring允许在父子层次结构中定义多个上下文,这两个文件在不...
- Tomcat服务器配置与优化:让Java应用飞得更高更远
-
Tomcat服务器配置与优化:让Java应用飞得更高更远Tomcat作为一款轻量级且功能强大的开源JavaServlet容器,无疑是许多中小型项目的首选服务器。然而,Tomcat的性能和稳定性并非天...
- 分享 5 个正则表达式的实际应用场景案例
-
转载说明:原创不易,未经授权,谢绝任何形式的转载在计算机编程的广泛领域中,某些技术具有改变我们如何处理和提取文本内容中信息的能力。在这些强大工具中,正则表达式成为每个开发者工具库中基本且不可或缺的组成...
- 最简洁详细的SSM框架整合(ssm框架详细介绍)
-
创建项目和SSM框架整合思路一、创建项目因为后面会配置springMVC,所以用IDEA的web骨架创建一个maven项目。创建项目目录如下,同时,项目需要的包和文件已手动创建好了:项目目录上图中,a...
- 使用JSP 2避免JSP文件中的Java代码
-
技术背景在早期的JSP开发中,使用脚本片段(<%%>、<%!%>、<%=%>)嵌入Java代码是常见做法,但这种方式存在诸多弊端。随着JSP2的出现,标签库...
- 微信安卓测试版8.0.28开发者更新内容公布
-
IT之家9月7日消息,微信安卓平台迎来了8.0.28测试版更新,相比上一次更新安装包体积有所减小,文件详细信息如下:微信安卓内测版8.0.28(ARM64)安装包文件大小254MB...
- 疯传阿里内网的SpringMVC笔记,被一个离职员工泄露,手慢无
-
一、简介1.介绍SpringMVC是实现MVC的轻量级Web框架,底层封装了servlet2.特点1.轻量级,简单易学2.约定优于配置3.与Spring兼容性好,无缝结合5.支持直接一个方法对一...
- 学习笔记之Struts2—工作原理图(struts1工作原理)
-
本文以Struts2的官方工作原理图作为主线讲解(参考部分书籍与视频)1.初始概念struts2是web.xml进行配置的一个过滤器,当web项目启动的时候,这个过滤器就会生效。2.web.xml&l...
- Spring MVC工作流程及请求处理机制全解
-
SpringMVC工作流程及请求处理机制全解作为一个Java开发者,你一定对Spring框架有所耳闻。今天我们就来详细聊聊SpringMVC,这是Spring家族中最常用的Web层框架之一。Spr...
- 在Javaweb中实现发送简单邮件(java实现邮件收发)
-
前言当我们在一个网站中进行注册账户成功后,通常会收到一封来自该网站的邮件。邮件中显示我们刚刚申请的账户和密码以及一些其他的广告信息。在上一篇中用Java实现了发送qq邮件的功能,今天我们来实现一个这样...
- 一周热门
- 最近发表
-
- 249个Linux Shell脚本经典案例,拿来即用(附PDF)
- 分享一个实用脚本—centos7系统巡检
- Go 语言 Web 框架 Echo 系列:基础篇—搭建 Echo 开发环境
- 连Shell的基本输出都不会,还写什么脚本?echo和printf命令总结
- 在Linux中改变echo输出颜色的方法
- Spring框架中applicationContext.xml和spring - servlet.xml的区别
- Tomcat服务器配置与优化:让Java应用飞得更高更远
- 分享 5 个正则表达式的实际应用场景案例
- 最简洁详细的SSM框架整合(ssm框架详细介绍)
- 使用JSP 2避免JSP文件中的Java代码
- 标签列表
-
- grid 设置 (58)
- 移位运算 (48)
- not specified (45)
- 导航栏 (58)
- context xml (46)
- scroll (43)
- dedecms模版 (53)
- c 视频教程下载 (33)
- listview排序 (33)
- characterencodingfilter (33)
- getmonth (34)
- label换行 (33)
- android studio 3 0 (34)
- html转js (35)
- 索引的作用 (33)
- checkedlistbox (34)
- xmlhttp (35)
- mysql更改密码 (34)
- 权限777 (33)
- htmlposition (33)
- 学校网站模板 (34)
- textarea换行 (34)
- 轮播 (34)
- asp net三层架构 (38)
- bash (34)