Linux的每一个文件都跟多种类型相关联。在这些权限中,我们通常需要和三类权限打交道(用户、用户组以及其他实体)。

1.文件权限查看ls –l

Linux:/qinys # ls -l

total 60

-rwxr--r-- 1 root root   30 Jan 15 01:46 A.txt

-rw-r--r-- 1 root root   30 Jan 15 01:46 B.txt

-rw-r--r-- 1 root root    8 Jan 15 01:48 C.txt

-rw-r--r-- 1 root root   11 Jan 15 01:33 D.txt

drwxr-xr-x 2 root root 4096 Jan 15 04:33 a.sh

drwxr-xr-x 2 root root 4096 Jan 15 02:24 data

第一行:total 60 :告诉我们该目录所占用的空间;

第一列:第一个字母明确指出对象类型

"-" :普通文件

"d" :目录

"c" :字符设备

"b" :块设备

"l" :符号链接

"s" :套接字

"p" :管道

第二列:表示硬链接的数目

2.用户、用户组、其他用户权限

除去第一个字母,剩下的部分可以分为三段,每段3个字符;其中:

  • 第一段对应用户权限
  • 第二段对应用户组权限
  • 第三段对应其他用户权限

例如:-rw-r--r-- 1 root root   30 Jan 15 01:46 B.txt

-代表该文件问普通文件,rw-代表用户权限为可读写,r--代表用户组权限为可读,r--代表其他用户权限为可读

3.设置文件权限

3.1 一般授权

3.1.1 chmod命令的一般格式为:

chmod [who] operator [permission] filename

说明:

who的含义

u :指定用户权限

g :指定用户组权限

o :指定其他实体权限

a :表示所有(用户、用户组、其他实体用户)

operator的含义

+ 增加权限

-  删除权限

= 设定权限

permission的含义

r  读权限

w 写权限

x  执行权限

s  文件属主和组set-ID

t  粘性位*

l  给文件加锁,使其他用户无法访问

3.1.2 chmod命令举例

假如现在文件per.sh权限为rwx rwx rwx

Linux:/qinys # ls -lrt per.sh

-rwxrwxrwx 1 root root 0 Jan 17 15:05 per.sh

①收回所有用户组的执行权限

Linux:/qinys # chmod a-x per.sh

Linux:/qinys # ls -lrt per.sh

-rw-rw-rw- 1 root root 0 Jan 17 15:05 per.sh

②收回同用户组好其他用户组的写权限

Linux:/qinys # chmod go-w per.sh

Linux:/qinys # ls -lrt per.sh

-rw-r--r-- 1 root root 0 Jan 17 15:05 per.sh

③赋予同组用户写权限

Linux:/qinys # chmod g+w per.sh

Linux:/qinys # ls -lrt per.sh

-rw-rw-r-- 1 root root 0 Jan 17 15:05 per.sh

④赋予文件属主可执行权限

Linux:/qinys # chmod u+x per.sh

Linux:/qinys # ls -lrt per.sh

-rwxrw-r-- 1 root root 0 Jan 17 15:05 per.sh

⑤赋予同组用户和其他用户可执行权限

Linux:/qinys # chmod go+x per.sh

Linux:/qinys # ls -lrt per.sh

-rwxrwxr-x 1 root root 0 Jan 17 15:05 per.sh

3.1 八进制授权

也可以使用八进制来设置权限,权限由3位八进制数来表示,每一位按照顺序分别对应用户、用户组、其他用户

读、写和执行都有与之对应的八进制数

  • r--=4
  • -w-=2
  • --x=1

我们可以对权限进行组合,例如:可读可写权限

rw-=4+2

777表示的是:用户、用户组、其他用户都具有可读、可写、可执行权限

示例:chmod 777 filename #授予用户、用户组、其他用户都具有可读、可写、可执行权限

特殊:chmod 7 filename #将其他用户权限授予可读、可写、可执行,用户与用户组的权限则全部收回

可以使用-R选项连同子目录下的文件一起设置权限,但是需要谨慎,只有在需要改变目录树下全部文件权限时候才可以使用。

4.更改文件的所有权

使用chown命令进行修改

4.1 查看当前文件所属

Linux:/qinys/oliver # ls -l

total 4

---x--x--x 1 root root    0 Jan 15 04:34 a.sh

当前文件所属为root 组为:root

4.2 修改所属,再次查看

Linux:/qinys/oliver # chown qinys:root a.sh

Linux:/qinys/oliver # ls -l

total 4

-------rwx 1 qinys root    0 Jan 15 04:34 a.sh

从上述结果我们可以看到,文件所属已经发生改变

【Linux】文件权限的更多相关文章

  1. 修改linux文件权限

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...

  2. Linux:文件权限

    Linux:文件权限 1.文件权限 ☆文件所有者 ☆用户组 ☆其他人 ☆ROOT 说明: Linux系统中默认所有系统上的账号与一般身份用户,还有那个root的相关信息记录在/etc/passwd文件 ...

  3. Linux 文件权限总结

    在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就 ...

  4. Linux&shell 之Linux文件权限

    写在前面:案例.常用.归类.解释说明.(By Jim) Linux文件权限用户useradd test (添加用户test)userdel test (删除用户test)passwd test(修改用 ...

  5. linux文件权限整理

    网上对linux文件权限的已经很多,不过还是要自己整理一下,不然每次都要查资料. linux下所有东西都是文件,包括设备,所以这里的文件也包括文件夹. 先是查看文件权限:ls -lh xzc@xzc- ...

  6. 修改linux文件权限命令:chmod 【转载】

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. chmod  命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod ...

  7. linux文件权限总结(创建root不可以删除文件、只可追加的日志文件等)

    文件类型 对于文件和目录的访问权力是根据读访问,写访问,和执行访问来定义的. 我们来看一下 ls 命令的输出结果 [root@iZ28dr6w0qvZ test]# ls -l 总用量 72 -rw- ...

  8. Linux 文件权限于目录配置

    用户与用户组 我們以王三毛為例,王三毛這個『檔案』的擁有者為王三毛,他屬於王大毛這個群組, 而張小豬相對於王三毛,則只是一個『其他人(others)』而已. 不過,這裡有個特殊的人物要來介紹的,那就是 ...

  9. Linux文件权限与属性详解 之 SUID、SGID & SBIT

    Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...

  10. Linux文件权限与属性详解 之 一般权限

    目录 一般属性 1. iNode: 3152621 2. 文件类型 3.文件访问权限 4. 链接数目: 5. 文件所有者 6. 文件所属组 7. 文件大小 8. 修改时间 9. 文件名称 Linux文 ...

随机推荐

  1. Springmvc的handler method参数绑定常用的注解

    转自:http://blog.longjiazuo.com/archives/1149   1. 简介: handler method参数绑定常用的注解,我们根据他们处理的Request的不同内容部分 ...

  2. scrapy框架系列 (2) 一个简单案例

    学习目标 创建一个Scrapy项目 定义提取的结构化数据(Item) 编写爬取网站的 Spider 并提取出结构化数据(Item) 编写 Item Pipelines 来存储提取到的Item(即结构化 ...

  3. Max Points on a Line leetcode java

    题目: Given n points on a 2D plane, find the maximum number of points that lie on the same straight li ...

  4. Js计算指定日期加上多少天,加多少月,加多少年的日期

    function DateAdd(interval,number,date) { /* * 功能:实现VBScript的DateAdd功能. * 参数:interval,字符串表达式,表示要添加的时间 ...

  5. 已知(x,y,z,yaw,pitch,roll)如何得到4*4的转换矩阵?

    作者:Nicholas链接:https://www.zhihu.com/question/41514206/answer/104827395来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  6. Android实现录音的方法(最重要的是对MediaRecorder的试用方法)

    package cn.eoe.record; import java.io.File; import java.io.IOException; import android.app.Activity; ...

  7. variable_scope和name_scope差别

    先看代码:   #命名空间函数tf.variable_scope()和tf.name_scope()函数区别于使用       import tensorflow as tf       with t ...

  8. sql-获取指定年份指定月份的天数

    declare @年月 varchar(6) set @年月= '201803' --查询2015年2月有多少天 select day(dateadd(month,1,@年月+ '01 ')-1)

  9. [转]学习块格式化上下文(BlockFormattingContext)

    原文:https://www.cnblogs.com/elcarim5efil/p/4745796.html   格式化上下文 格式化上下文( formatting contexts )├── 块级格 ...

  10. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(四)针对hadoop2.9.0启动执行start-all.sh出现异常:failed to launch: nice -n 0 /bin/spark-class org.apache.spark.deploy.worker.Worker

    启动问题: 执行start-all.sh出现以下异常信息: failed to launch: nice -n 0 /bin/spark-class org.apache.spark.deploy.w ...