漫谈Linux文档属性、拥有者、群组、权限
作者:justmine
头条号:大数据与云原生
微信公众号:大数据与云原生
创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处。
为了方便阅读,微信公众号已按分类排版,后续的文章将在移动端首发,想学习云原生相关知识,请关注我。
写在前面
我们都知道Linux
是一个支持多用户、多任务的系统,这也是它最优秀的特性,即可能同时有很多人都在系统上进行工作,所以千万不要强制关机,同时,为了保护每个人的隐私和工作环境,针对某一个文档(文件、目录),Linux
系统定义了三种身份,分别是拥有者(owner)、群组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable),通过这样的设计就可以保证每个使用者所拥有数据的隐密性。
文档属性
使用命令ls -al --full-time
,或者此命令的简写ll
可以查看文件或者目录的所有属性。如下:
从上面可以看到,每一行都有7列,分别是:
第一列
共10位,第1位表示文档类型,d
表示目录,-
表示文件,l
表示链接文件,d
表示可随机存取的设备,如U盘等,c
表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、excutable。如:-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
也一共也只有九个。权限变更的方式有2种,分别是符号法和数字法。
符号法
分别使用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)号码又是记录到目录所属的block中,所以当我们读取某个文件时,必须先读到目录的inode,然后再读取目录的block信息,拿到待读取文件的索引信息,即具体存储在哪个block上,最后才能读到文件内容(这块内容,需要先理解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
变更文件拥有者;那么如何运用这些属性和权限来保证每个租户数据的安全性和隐密性,请看下一篇,Linux如何管理文档多租户进行实战练习。
如果你觉得本篇文章对您有帮助的话,感谢您的【推荐】。
如果你对 linux 感兴趣的话可以关注我,我会定期的在博客分享我的学习心得。
漫谈Linux文档属性、拥有者、群组、权限相关推荐
- 五分钟搞定 Linux 文档全部知识,就看这篇文章
作者:无痴迷,不成功 来源:见文末 写在前面 我们都知道Linux是一个支持多用户.多任务的系统,这也是它最优秀的特性,即可能同时有很多人都在系统上进行工作,所以千万不要强制关机,同时,为了保护每个人 ...
- Linux 学习笔记 文件、目录操作与用户群组权限
一.命令行提示符 1.1 命令行基础 bearpi:当前用户名,在@前是用户名 ubuntu:用户所在的域名,在@后面,这是我自定义的,默认应该是主机名 ~ 波浪线为目前所在目录,~代表家目录(hom ...
- Linux怎么把目录设置群组,linux设置目录和文件使用权限
ext2fs文件系统中的目录及文件,可依实际需要来设置可读取.可写入与可执行等权限.以下我们就来了解文件和目录的权限设置. ext2fs文件系统中的目录及文件,可依实际需要来设置可读取.可写入与可执行 ...
- 文档管理 linux,Linux 文档管理
涉及的命令:ls 下面上一张使用ls命令的截图,从下面的截图中我们来详细了解一下,linux中关于文档(目录)的属性. 从上面截图的一条记录可以看出一个文档(目录)的所有信息,下面我们详细说明. 上面 ...
- bash: 无法为立即文档创建临时文件: 权限不够_世界顶级Linux大牛耗时三年总结出3000页Linux文档...
众所皆知的,Linux的核心原型是1991年由托瓦兹(Linus Torvalds)写出来的,但是托瓦兹为何可以写出Linux这个操作系统?为什么它要选择386的计算机来开发?为什么Linux的发展可 ...
- linux中的用户、群组和权限
linux中的用户.群组和权限 linux中的用户.群组和权限 新建用户natasha,uid为1000,gid为555,备注信息为"master" groupadd -g 55 ...
- linux文档_Linux文档
linux文档 在你开始前 了解这些教程可以教给您什么以及如何从中获得最大收益. 关于本系列 Linux Professional Institute (LPI)在两个级别上对Linux系统管理员进行 ...
- 如何修改word中的单位信息、用户信息及文档属性
文档属性中的"用户"信息是可以通过工具选项中的用户信息修改的.但是单位信息却是在安装OFFICE时设置的,经过我的测试,并不在NORMAL.DAT中,而是在注册表中.另外,有些人以 ...
- 鸟哥linux群,【鸟哥的linux私房菜-学习笔记】linux的帐号与群组
linux的帐号与群组 使用者标识符: UID 与 GID ID 与账号的对应就在 /etc/passwd 当中: 计算机只认得ID(即数字),并不能区别账号: 每个登陆的使用者至少都会取得两个 ID ...
最新文章
- Spring Task配置
- 【Nginx】Nginx概述
- 碎片时间学习前端,我推荐这些~
- 爬虫之request
- c语言malloc引用类型作参数,c语言中动态内存分配malloc只在堆中分配一片内存.doc...
- 用python画八卦图-用Python中的画图工具turtle绘制八卦图
- 谷歌浏览器无法登陆问题
- 性能碾压Notepad++的文本编辑器UltraEdit,程序员必备
- Charles抓包:APP抓包工具配置手机代理证书
- 视频编码中的PAFF和MBAFF的区别 转自:http://blog.csdn.net/kerryhung/article/details/4433256...
- iOS 技术支持网址:
- oracle百度坐标系火星转换,标准坐标系与火星坐标系(高德)百度坐标系之间互转...
- Word从指定页开始插入页码
- 机械键盘简要介绍。。。。
- ajax 中的contentType
- Mac根目录下无法创建文件夹
- numpy中,矩阵的三种转置transpose、getT、getH的区别
- DTU是什么及其用途
- python爬虫日记01
- 计算机中的用户内存容量,按照 《2010 通则 》 ,以 CIF 汉堡条件成交,卖方对货物风险应负责...
热门文章
- eclipse_中的注释_快捷键
- easy html5 - Jquery mobile
- Commons里的DButil
- 为DataList和GridView内容项添加序号
- stm32cubeide外部中断_【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)
- 亚马逊标题自动抓取_如何为您的家人提供自动Amazon礼品卡津贴
- linux rmp命令安装包在哪里_rpm命令_Linux rpm 命令用法详解:RPM软件包的管理工具...
- vue实现首屏加载等待动画 避免首次加载白屏尴尬
- [webpack3.8.1]Guides-4-Output Management(输出管理)
- 这些Intel Atom处理器千万别升Windows 10创意者更新:不兼容