热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux文件及文件夹权限详解

【文件的所属主以及所属组】一个linux目录或者文件,都会有一个所属主和所属组。所属主,即文件的拥有者,而所属组,即该文件所
【文件的所属主以及所属组】 一个linux目录或者文件,都会有一个所属主和所属组。所属主,即文件的拥有者,而所属组,即该文件所属主所在的一个组。Linux这样设置文件属性的目的是为了文件的安全。例如,test文件的所属主是user0 而test1文件的所属主是user1,那么user1是不能查看test文件的,相应的user0也不能查看test1文件。然后有这样一个应用,我想创建一个文件同时让user0和user1来查看怎么办呢? 这时“所属组”就派上用场了。即,创建一个群组users,让user0和user1同属于users组,然后建立一个文件test2,且其所属组为users,那么user0和user1都可以访问test2文件。 Linux文件属性不仅规定了所属主和所属组,还规定了所属主(user)、所属组(group)以及其他用户(others)对该文件的权限。你可以通过ls -l 来查看这些属性。 [image]【linux文件属性】 上例中,用ls –l 查看当前目录下的文件时,共显示了9列内容(用空格划分列),都代表了什么含义呢? 第1列,包含的东西有该文件类型和所属主、所属组以及其他用户对该文件的权限。第一列共10位。其中第一位用来描述该文件的类型。上例中,我们看到的类型有”d”, “-“ ,其实除了这两种外还有”l”, “b”, “c”,”s”等。 d 表示该文件为目录; - 表示该文件为普通文件; l 表示该文件为连接文件(linux file); b 表示该文件为块设备文件,比如磁盘分区; c 表示该文件为串行端口设备,例如键盘、鼠标。 s 表示该文件为套接字文件(socket),用于进程间通信。 后边的9位,每三个为一组。均为rwx 三个参数的组合。其中r 代表可读,w代表可写,x代表可执行。前三位为所属主(user)的权限,中间三位为所属组(group)的权限,最后三位为其他非本群组(others)的权限。下面拿一个具体的例子来述说一下。 一个文件的属性为-rwxr-xr-- ,它代表的意思是,该文件为普通文件,文件拥有者可读可写可执行,文件所属组对其可读不可写可执行,其他用户对其只可读。 读权限R。简单的说就是打开文件查看内容的权限,在web服务器中,若文件没有打开权限,则web服务器则视为该文件不存在,发送404 file not  found错误,用数字4表示。 写权限W。一个文件若没有写的权限,那么该文件则无法更改,文件夹若没有写权限,则该文件夹下无法创建新文件,用数字2表示。 执行权限X。程序文件若要执行,必须有执行权限,否则无法执行。打开一个文件夹也是执行,所以文件夹若没有执行权限,则无法被打开。用数字1表示。 对于一个目录来讲,打开这个目录即为执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录。 例如一个目录的属性为 drwxr--r-- 其所属主为root,那么除了root外的其他用户是不能打开这个目录的。 第2列,表示为连接占用的节点(inode),若为目录时,通常与该目录地下还有多少目录有关系,关于连接(link)在以后章节详细介绍。 第3列,表示该文件的所属主。 第4列,表示该文件的所属组。 第5列,表示该文件的大小。 第6列、第7列和第8列为该文件的创建日期或者最近的修改日期,分别为月份日期以及时间。 第9列,文件名。如果前面有一个. 则表示该文件为隐藏文件。 【更改文件的权限】 更改文件的权限,也就是更改所属主、所属组以及他们对应的读写执行权限。 1)更改所属组 chgrp 语法:chgrp [组名] [文件名] [image] 这里用到了groupadd 命令,其含义即增加一个用户组。该命令在以后章节中做详细介绍,你只要知道它是用来增加用户组的即可。 2)更改文件的所属主 chown 语法:chown [ -R ] 账户名 文件名             chown [ -R ] 账户名:组名 文件名 这里的-R选项只作用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件全部更改。 [image] useradd 是增加一个账户,以后会详细介绍。上例中,首先建立一个目录test,然后在test目录下创建一个普通文件test2,因为是以root的身份创建的目录和文件,所以所属主以及所属组都是root。chown user1 test 这使test的目录所属主由root变为了user1 ,然后test目录下的test2文件所属主以及所属组还是root。接着 chown –R user1:testgroup test 这样把test连同test目录下的test2 的所属主以及所属组都改变了。 3)改变用户对文件的读写执行权限 chmod 在linux中为了方便更改这些权限,linux使用数字去代替rwx ,具体规则为r: 4 w:2 x:1 -:0 举个例子,-rwxrwx---用数字表示就是 770,具体是这样来的: rwx = 4+2+1=7; rwx= 4+2+1=7; --- = 0+0+0=0 chmod 语法: chmod [-R] xyz 文件名 (这里的xyz,表示数字) -R 选项作用同chown,级联更改。 值得提一下的是,在linux系统中,默认一个目录的权限为 755,而一个文件的默认权限为644. [image] 如果你创建了一个目录,而该目录不想让其他人看到内容,则只需设置成 rwxr----- (740) 即可。 chmod 还支持使用rwx的方式来设置权限。!从之前的介绍中我们可以发现,基本上就九个属性分别是(1)user (2)group (3)others 三群啦!那么我们就可以藉由 u, g, o 来代表三群的属性!此外, a 则代表 all 亦即全部的三群!那么读写的属性就可以写成了 r, w, x!也就是可以使用底下的方式来看: [image] 现在我想把一个文件设置成这样的权限 rwxr-xr-x (755),使用这种方式改变权限的命令为 [image] 另外还可以针对u, g, o, a增加或者减少某个权限(读,写,执行),例如 [image] 另外linux下还有两个比较特殊的权限s和t,请点击linux下文件的特殊权限s和t umask 上边也提到了默认情况下,目录权限值为766,普通文件权限值为644。那么这个值是由谁规定呢?追究其原因就涉及到了umask。 umask语法: umask xxx (这里的xxx代表三个数字) 查看umask值只要输入umask然后回车。 umask预设是0022,其代表什么含义?先看一下下面的规则: 1)若用户建立为普通文件,则预设“没有可执行权限”,只有rw两个权限。最大为666(-rw-rw-rw-) 2)若用户建立为目录,则预设所有权限均开放,即777(drwxrwxrwx) umask数值代表的含义为,上边两条规则中的默认值(文件为666,目录为777)需要减掉的权限。所以目录的权限为(rwxrwxrwx) – (----w--w-) = (rwxr-xr-x),普通文件的权限为(rw-rw-rw-) – (----w--w-) = (rw-r--r--)。umask的值是可以自定义的,比如设定umask 为 002,你再创建目录或者文件时,默认权限分别为(rwxrwxrwx) – (-------w-) = (rwxrwxr-x)和(rw-rw-rw-) – (-------w-) = (rw-rw-r--)。 [image] umask 可以在/etc/bashrc里面更改,预设情况下,root的umask为022,而一般使用者则为002,因为可写的权限非常重要,因此预设会去掉写权限。


推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
author-avatar
西瓜凉皮大夏天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有