五分钟搞懂 Linux 重点知识,傻瓜都能学会!
发布日期:2021-06-30 12:38:18 浏览次数:2 分类:技术文章

本文共 2668 字,大约阅读时间需要 8 分钟。

640?wx_fmt=png

来源:无痴迷,不成功

www.cnblogs.com/justmine/p/9053419.html

写在前面

我们都知道Linux是一个支持多用户、多任务的系统,这也是它最优秀的特性,即可能同时有很多人都在系统上进行工作,所以千万不要强制关机。

同时,为了保护每个人的隐私和工作环境,针对某一个文档(文件、目录),Linux系统定义了三种身份,分别是拥有者(owner)、群组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。

文档属性

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

640?

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

  1. 第一列

    共10位,第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,d表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、excutable。如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可写,其他人没有任何权限。

  2. 第二列

    表示连结数

  3. 第三列

    表示拥有者

  4. 第四列

    表示所属群组

  5. 第五列

    表示文档容量大小,单位字节

  6. 第六列

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

  7. 第七列

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

变更拥有者(owner)

位置

 

etc/passwd

640?

注意:必须是该位置下已存在的帐号。也就是在/etc/passwd中有记录的拥有者才能改变。

语法

 

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

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

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

选项

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

用法

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

640?

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

640?

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

640?

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

640?

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

变更群组(group)

位置

 

etc/group

640?

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

语法

 

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

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

用法

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

640?

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

640?

变更权限

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

640?

去掉权限(-)

去掉目录test执行权限

 

chmod u-x,g-x,o-x test

chmod ugo-x test
chmod a-x test

640?

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

添加权限(+)

增加目录test执行权限

 

chmod u+x,g+x,o+x test

chmod ugo+x test
chmod a+x test

640?

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

- 数字法

顾名思义,就是使用数字来代表权限,r,w,x分别为4,2,1。三种权限累加就可以得出一种身份的权限。

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

 

chmod 777 test

640?

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

 

chmod 666 test

640?

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

 

chmod 755 test

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

文件和目录权限差异

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

文件

针对的是该文件内容

  • readable 可读取该文件的实际内容

  • writable 可以编辑、新增或者是修改该文件的内容

  • executable 有可以被系统执行的权限

备注:具有w权限不可以删除文件,删除文件是目录权限控制的范围!!!记住文件权限针对是文件内容。

目录

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

  • readable 具有读取目录结构清单的权限,即可以通过ls命令,查询该目录清单。

  • writable 具有变动该目录结构清单的权限,即可以创建、迁移、删除、更名该目录下的文件。

  • executable 具备进入该目录的权限,即可以通过cd命令,转到工作目录。

备注:从上面可以得出,开放目录给任何人浏览时,至少需要赋予r或x权限。读取目录文件内容,至少需要目录权限x和文件权限r。

总结

Linux的每个文档可以分别针对三种身份赋予rwx权限;chgrp命令变更文件群组,chmod命令变更文件权限,chown变更文件拥有者;那么以后记得使用文档权限来保护数据的安全性哦。

- END -

关注Java技术栈微信公众号,在后台回复关键字:Java,可以获取一份栈长整理的 Java 最新技术干货。

最近干货分享

640

点击「阅读原文」加入栈长的战队~

转载地址:https://javastack.blog.csdn.net/article/details/100515764 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:不用找了,300 分钟帮你搞定 Spring Cloud!
下一篇:如何设计一个完美的权限管理模块?

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月10日 06时12分52秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

冒泡排序 2019-05-01
快速排序 2019-05-01
【Java习题】 -- 设计⼀个⽅法,将⼀个字符串中的⼤⼩写字⺟翻转 2019-05-01
【大数据开发】Java基础-总结1-可变参数的注意点 2019-05-01
【Java习题】 -- 设计⼀个⽅法,将⼀个数组中的元素倒序排列(注意,不是降序) 2019-05-01
【Java习题】(难)设计⼀个⽅法,找出⼀个整型数组中的第⼆⼤的值 2019-05-01
【Java习题】-- 已知⽅法 public static int[] combine(int[] arr1, int[] arr2) 的作⽤是,合并 两个数组,并对合并后的数组进⾏升序排序 2019-05-01
【Java习题】(难)已知⽅法 public static int[] delete(int[] arr, int ele) 的作⽤是删除数组中第 ⼀次出现的ele元素,并返回删除后的数组 2019-05-01
【大数据开发】Java基础-总结2-面向对象与面向过程的区别 2019-05-01
【大数据开发】Java基础-总结3-面向对象的特点和注意点 2019-05-01
MySQL5.7版本修改了my.ini配置文件后mysql服务无法启动问题 2019-05-01
【大数据开发】Java基础 -总结21-Hashmap和HashTable的区别 2019-05-01
MySQL中关于decimal与double字段类型的区别 2019-05-01
Exception in thread “main“ java.sql.SQLException错误之一: Column Index out of range, 0 < 1. 2019-05-01
C3p0连接池连接mysql出现: com.mchange.v2.resourcepool.BasicResourcePool 2019-05-01
webview加载网页或富文本oom 2019-05-01
机器学习-评价分类、回归算法模型指标 2019-05-01
Azkaban体系结构 2019-05-01
Azkaban2.5环境搭建及测试 2019-05-01
Synchronized与ReentrantLock区别 2019-05-01