无法执行文件命令?权限不够?看这篇就够了
xsobi 2025-01-13 18:49 1 浏览
关注优麒麟,更多干货等着你!
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 知识有助于我们更好的使用系统。需要注意的是,不要随意更改系统文件夹的权限,这样可能会导致您的系统某些功能无法正常使用。
相关推荐
- Linux命令之find的高级用法
-
Linux命令之find的高级用法在Linux系统中,find命令是一款非常强大的文件查找工具,可以帮助用户根据多种条件来查找文件或目录。除了基本的文件查找功能外,find还支持一些高级用法,可以帮助...
- linux中chmod命令访问权限的设置
-
访问权限读取:允许查看文件内容、显示目录列表写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录...
- 若依框架改造,阿里docker部署
-
准备需要的文件文件下载jdk1.8、docker-compose2.26运程工具(按需下载)Xftp7、Xshell7...
- Linux常用指令简介(7):文件搜索与过滤
-
在这一系列文章中,将介绍一些常见的Linux命令,帮助您快速熟悉并开始在Linux系统上进行日常操作。具体的指令使用方法可能会因系统而异,注意根据其自身的Linux系统进行适当的调整...
- ESP32/8266开发环境超详细安装步骤
-
本文详细阐述了本站视频“[ESP32/8266]超详细的开发环境搭建说明”中所介绍的...
- Linux之fstab文件详解
-
/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less/etc/fstab来查看,如果要修改的话,则用命令vi/etc/fstab来修改。当系统...
- 访问文件时Nginx的403 forbidden问题
-
这个并不复杂,只要更改一处即可1,首先保证启动nginx的是root账号,或者保证启动服务账号的权限。2,确保访问目录的权限足够。建议不要任意使用777权限,不安全。给与足够权限即可,比如读写权限即可...
- 操作系统学习福利:600 条最强 Linux 命令总结
-
今天,带来一篇Linux命令总结的非常全的文章,也是我们平时工作中使用率非常高的操作命令,命令有点多,建议小伙伴们可以先收藏后阅读。...
- Linux系统tftpd服务安装配置
-
一、几个基本概念ftp-即FileTransferProtocol,文件传输协议,是一种在互联网中进行文件传输的协议;基于TCP传输,端口号20、21;tftp-即TrivialF...
- 无法执行文件命令?权限不够?看这篇就够了
-
关注优麒麟,更多干货等着你!...
- 【案例分享】如何利用京东云建设高可用业务架构
-
本文以2022年一个实际项目为基础,来演示在京东云上构建高可用业务的整个过程。公有云及私有云客户可通过使用京东云的弹性IAAS、PAAS服务,创建高可用、高弹性、高可扩展、高安全的云上业务环境,提升业...
- linux如何查找文件,如何在文件中查找内容?
-
find从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端。第一个参数是搜索范围,比如/、/root、/root/test、之类的路径...
- 搞定Minio+Nextcloud分布式云盘,最难的就是目录权限问题
-
前天使用minio作为Nextcloud的外接存储,使用nextcloud的应用插件挂载minio,但效果不尽人意,只能作为私人使用,无法做为一个解决方案用于企业多用户。最近研究minio,我一直想用...
- Linux文件权限及用户权限命令
-
大家好!以下是我个人在工作中记录的Linux系统常用权限操作指令,希望对您有帮助!1、文件权限管理文件权限符号drwxrwxr-x.2centos64centos644096Feb170...
- 免费开源极致cms,极致cms快速建站,极致cms网站(详见图片)
-
极致cms,是免费开源的php建站程序,不需要商业授权,对数据输出的调用是完全自由公开的,站长无需自己手动配置伪静态,也支持配置各种格式的自定义链接。站长可以在前台输出数据库里面存储的任何数据自带静态...
- 一周热门
- 最近发表
- 标签列表
-
- grid 设置 (58)
- 移位运算 (48)
- not specified (45)
- patch补丁 (31)
- 导航栏 (58)
- context xml (46)
- scroll (43)
- dedecms模版 (53)
- c 视频教程下载 (33)
- listview排序 (33)
- firebug 使用 (31)
- characterencodingfilter (33)
- getmonth (34)
- hibernate教程 (31)
- label换行 (33)
- curlpost (31)
- android studio 3 0 (34)
- html转js (35)
- 索引的作用 (33)
- checkedlistbox (34)
- localhost 8080 (32)
- 多态 (32)
- xmlhttp (35)
- mysql更改密码 (34)
- 权限777 (33)