专栏名称: 朱小厮的博客
著有畅销书:《深入理解Kafka》和《RabbitMQ实战指南》。公众号主要用来分享Java技术栈、Golang技术栈、消息中间件(如Kafka、RabbitMQ)、存储、大数据以及通用型技术架构等相关的技术。
目录
相关文章推荐
北京经信局  ·  2025全球数字经济大会首设欧洲分会场!3月 ... ·  19 小时前  
北京经信局  ·  2025全球数字经济大会首设欧洲分会场!3月 ... ·  19 小时前  
易简财经  ·  DeepSeek带飞阿里股价,阿里人连夜看豪宅 ·  昨天  
构力科技PKPM BIMBase  ·  央企担当 | ... ·  3 天前  
构力科技PKPM BIMBase  ·  央企担当 | ... ·  3 天前  
51好读  ›  专栏  ›  朱小厮的博客

五分钟看完 Linux 重点知识,建议收藏!

朱小厮的博客  · 公众号  ·  · 2019-12-31 08:51

正文

点击上方“朱小厮的博客”,选择“ 设为星标”

后台回复” 1024 “获取公众号专属1024GB资料


来源:rrd.me/f3v9F

写在前面

我们都知道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 

备注: 有没有发现数字法更简单啊!

文件和目录权限差异







请到「今天看啥」查看全文


推荐文章