我们都知道Linux是一个多用户,多任务的系统。这也是它的最优秀的特性,也就是说,可能有很多人同时在系统上工作,因此请不要强行关机。

同时,为了保护每个人的隐私和工作环境,对于某个文档(文件,目录),Linux系统定义了三个身份,即拥有者(owner)、群组(group)、其他人(others)。每个身份对应三种类型的权限:可读和可写,可执行(Excutable),通过这种设计可以确保每个用户拥有的数据的隐私性。

文档属性

使用命令ls -al --full-time,或者此命令的缩写ll可以查看文件或目录的所有属性。如下:

从上面可以看到,每一行都有7列,分别是:

第一列

总共有10位。第一位表示文件类型,d表示目录,-表示文件,l表示链接的文件,d表示可以随机访问的设备(例如U盘),c表示一次性读取的设备,例如 作为鼠标或键盘等等。

后9位数字按顺序对应于三个身份所拥有的权限,身份顺序为:所有者,组,其他,并且权限顺序为:可读,可写和可执行。例如:-r-xr-x ---表示当前文档是文件,所有者是可读写的,并且同一组中的用户是可读写的,其他用户没有任何权限。

第二列

表示链接数,表示有多少个文件链接到inode号码。

第三列

表示拥有者

第四列

表示所属群组

第五列

表示文档的大小,以字节为单位

第六列

表示文档的最后修改时间。请注意,这不是文档的创建时间。

第七列

表示文档名称。以点(.)开头的是隐藏文档

变更拥有者(owner)

位置

cat /etc/passwd

注意:它必须是此位置中已经存在的帐户。也就是说,/ etc / passwd中有记录的拥有者才可以更改它。

语法

chown [-R] [帐号名称] [文件或目录]chown [-R] [帐号名称]:[群组名称] [文件或目录]

备注:此命令也可以顺便变更文档群组,但是仍然建议使用chgrp命令更改文档组。

选项

-R 递归变更,即连同次目录下的所有文件(夹)都要变更。

用法

chown daemon test 变更文件夹test账号为daemon。

chown daemon:root test 变更文件夹test群组为root。

chown root.users test 变更文件夹的账号为root,群组为users

chown .root test 单独变更群组为root

备注:尽管可以在拥有者与群组间加小数点(.),但为了避免有的友友在命名中带点,所以还是建议使用冒号“:”来隔开拥有者与群组,以避免误判。

变更群组(group)

位置

etc/group

备注:你可以从这里查看到所有群组

语法

chgrp [-options] [群组名] [文档路径]

备注:关于options,可以通过man chgrp、info chgrp、chgrp --help等命令可以查询详细用法。

用法

chgrp -R users test 命令:改变test文件夹及其所有子文件(夹)的群组为users。

注意:群组名称不在位置内,将会报错invalid group。

变更权限

Linux文档只有三种基本权限,分别是read/write/execute,加上身份owner/group/others也一共有九个。更改权限的方法有两种,即符号方法和数值方法。

符号法

使用u,g,o来分别代表三种身份,a表示全部身份;分别使用r、w、x表示三种权限;分别使用+、-、=表示操作行为

语法

chmod | u g o a | +(加入) -(除去) =(设置) | r w x | 文档路径 

设置权限(=)

如:变更目录test的权限为任何人都可读、写、执行。

chmod u=rwx,g=rwx,o=rwx test --或chmod ugo=rwx test --或chmod a=rwx test

去掉权限(-)

去掉目录test执行权限

chmod u-x,g-x,o-x test --或chmod ugo-x test --或chmod a-x test

备注:执行权限(x),对目录而已就是其他用户是否可以通过cd test成为工作目录。

添加权限(+)

增加目录test执行权限

chmod u+x,g+x,o+x test --或chmod ugo+x test --或chmod a+x test

备注:如果我们编写完一个shell文件test.sh后,通过chmod a+x test.sh就添加了文件执行权限。

数字法

顾名思义,它使用数字表示权限,并且r,w和x分别为4、2和1。三种权限累加就可以得出一种身份的权限。

把目录test的权限设置为任何人都可读、写、执行。如下:

chmod 777 test 

目录test的权限设置为任何人都可读与写。

chmod 666 test 

赋予一个shell文件test.sh可执行权限,拥有者可读、写、执行,群组账号和其他人可读、执行。

chmod 755 test 

备注:是不是发现数字法更简单啊

文件和目录权限差异

文档权限对于文件和目录有巨大的差异

文件

针对的是该文件内容

  • readable 可读取该文件的实际内容
  • writable 可以编辑、新增或者是修改该文件的内容
  • executable 有可以被系统执行的权限

备注:拥有w权限并不意味着您可以删除文件。删除文件是目录权限控制的范围。

这是因为目录的相关权限和属性记录在目录的inode中,并且目录中所有文件的名称和相应的索引文件(inode)号都记录在目录所属的块中,因此当我们 读取某个文件读取文件时,必须先读取目录的索引节点,然后读取目录的块信息,然后获取要读取的文件的索引信息。

也就是说,在哪个块上存储文件,最后可以读取文件内容(此内容需要了解Linux文件系统,例如Ext2 / Ext3 / Ext4,我们将在后面详细介绍)。请记住,文件权限仅对文件内容有效。

示例说明

使用root身份读取目录test001下的文件test001-1

查看目录物理全路径:pwd

列出有关的目录和文件:ll -di / /root /root/test001 /root/test001/test001-1

通过man ls 查看-i,全称inode,即 print the index number of each file

  • 目录/的inode:通过挂载点的信息找到inode号码为2的block。
  • 目录/的block:通过上一步骤找到的block,找到root/目录的inode号码为131073。
  • 目录root/的inode:读取编号为131073的inode找到目录的block。
  • 目录root/的block:通过上一步骤找到的block,找到root/test001/目录的inode号码为527524。
  • 目录root/test001/的inode:读取编号为527524的inode找到目录的block。
  • 目录root/test001/的block:通过上一步骤找到的block,找到文件test001-1目录的inode号码为527526。
  • 文件test001-1的inode:读取编号为527526的inode找到文件的block。
  • 文件test001-1的block:通过上一步骤找到的block,读取文件内容。

由于是root用户,因此有权阅读任何文档。如果使用一般帐户,则上述每个步骤的读取内容也会与权限匹配。

目录

针对的是该目录下的文件对象

  • readable 拥有读取目录结构列表的权限,即可以通过ls命令查询目录清单
  • writable 具有变动该目录结构清单的权限,即可以在该目录中创建,迁移,删除和重命名文件。
  • executable 拥有进入此目录的权限,您可以使用cd命令成为工作目录。

备注:从上面可以得出结论,当打开目录供任何人浏览时,至少需要授予r或x权限。要读取目录文件的内容,至少需要目录权限x和文件权限r。

总结

可以为Linux的每个文档分配三种类型的身份的rwx权限。 chgrp命令更改文件组,chmod命令更改文件权限,chown更改文件所有者;然后请记住使用文件权限来保护数据的安全性。

以上是本文的全部内容,希望对大家的学习有帮助,也希望大家多多支持 php自学中心

linux更改文件夹权限_Linux 一些重点知识,整理的很全面,有必要收藏相关推荐

  1. linux mysql 文件夹权限_Linux 中文件和文件夹获取 MySQL 权限(SELinux)

    今天在 Linux 系统上移动 MySQL 的数据库目录 配置如下: /etc/my.cnf [mysqld] datadir=/home/mysql socket=/var/lib/mysql/my ...

  2. linux 修改文件夹权限_Linux文件权限 - Understanding Linux File Permissions

    先说点题外话,最开始我总觉得我想做一个不精通编程的程序员,后来发现,对计算机底层的理解是绕不开的.为了更高效的完成工作任务,熟悉基础的编程工具是非常必要的. Linux对每个文件和文件夹有三种权限所属 ...

  3. mac+修改+ssh文件夹权限_linux ,mac连接, git pull error, chmod修改文件的权限/chown修改文件和目录的所有者...

    去项目目录下 启动服务 setsid npm start & https://www.cnblogs.com/littleBit/p/5362806.html ssh -p 22 root@1 ...

  4. linux创建目录无权限,linux下文件夹权限 linux 创建文件夹没有权限

    linux 给所有文件下文件加权限 更改文件用户组.使用命令chgrp,命令如下. 更改文件所有者.使用命令chown. chown命令可以同时修改所有者和用户组名称(即拥有chgrp的功能),命令如 ...

  5. linux mysql 文件夹权限_找到linux文件夹

    FineReport关于Linux下字体乱码终极解决方案 1:在windows下找到系统使用到的字体,这里以楷体举例 •到c盘的windows文件夹的Fonts文件夹里面存放了windows中用到的所 ...

  6. linux哪个文件夹不能乱改,Linux的文件夹权限如何更改

    支持通配符. 参数: - R 递归式地改变指定目录及其下的所有子目录和文件的拥有者. - v 显示chown命令所做的工作. 例1:把文件shiyan.c的所有者改为wang. $ chown wan ...

  7. linux查看文件夹权限

    三.Linux 文件权限 首先来查看一下当前目录下的文件内容吧 ls -l 查看当前目录下的文件列表 ls -l xxx.xxx (xxx.xxx是文件名) 查看指定的文件 我们可以看到文件的权限,- ...

  8. linux web文件夹权限设置,WEB文件目录权限设置与修改方法

    烈火网(LieHuo.Net)教程 很多web程序大多数在上传完程序并准备执行安装脚本的时候都需要修改部分目录和文件的权限,比如安装和升级 Discuz! 需要修改 ./attachments../f ...

  9. linux 新增文件夹记录_linux文件系统(基础概念)

    文件系统:统一用户使用的各种文件的管理机制,构筑用户文件和底层硬盘的中间接口,使我们读写数据文件时不必去关心实际存放的block. ---全文来源于互联网笔记,非原创. 硬盘分区 分区结构 整个分区大 ...

最新文章

  1. Golang中WaitGroup、Context、goroutine定时器及超时学习笔记
  2. python白名单验证是什么意思_第10.5节 使用__all__定义Python模块导入白名单
  3. Sublime Text 4.0 4102 安装插件的问题
  4. HDU 2063:过山车(匈牙利算法模板题)
  5. 关于python列表去重复后按照元列表序列输出
  6. python pcl_windows 10 环境pcl-python 安装
  7. 使用epublib自动生成epub文件
  8. Java 苹果支付applepay服务端验证
  9. java webservice原理_轻松搞懂WebService工作原理
  10. java 窗体音量调节,Mixer音量调节
  11. 数字孪生的主要应用领域
  12. 【Tableau】维度,度量,胶囊,蓝色,绿色
  13. ecu根据什么信号对点火提前角_【科普】汽车ECU现状及发展趋势
  14. 【力扣动态规划基础专题】:509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 62. 不同路径 63. 不同路径 II 343. 整数拆分 96. 不同的二叉搜索树
  15. ps怎么把图片上面的字去掉
  16. java ee web pdf_Java EE Web高级开发案例 PDF扫描版[69MB]
  17. C标准库头文件—ctype.h
  18. 初入职场不得不掌握的6个好习惯
  19. python进行对应分析_对应分析
  20. python小游戏——跑酷小恐龙代码开源

热门文章

  1. 基于C++的图像散度计算
  2. 在Ubuntu 14.04 64bit上使用pycURL模块示例
  3. 读书:有趣 -- 酒鬼与圣徒
  4. 使用nc传输文件和目录【转】
  5. java内存模型和线程安全
  6. 20162325 金立清 S2 W8 C17
  7. iOS-查询数据库--指定数据表中的当前数据行的总数量
  8. CreateFileMapping
  9. winsock select
  10. 【C++】random随机数与【C++11】/rand()和srand()的用法