文件的权限详解(一)

文件的权限


修改文件的属主和属组

chown

功能:更改属主命令,同时也能更改属组
用法:
  

  • chown  选项  [属主名][:属组名]  文件名  (分隔符改成.也行)

  • chown  选项   参考的文件=要更改的文件

    • chown [OPTION]… –reference=RFILE FILE…

  • -R或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。

注意:

   chown 用户名 文件名———————表示设置文件的所属主吧
   chown 用户名:  文件名——————-表示设置文件的所属主和跟所属主相同的所属组
   chown 用户名:组名  文件名 —————表示设置文件的属主属组
   chown :组名  文件名 ———————-表示设置文件的属组

chgrp

功能:修改文件的属组
用法:

chgrp [选项] 文件名
chgrp [选项]… –reference=参考文件名  要修改的文件名…
-R 递归



文件的权限:

文件:

r: 可使用文件查看类工具获取其内容
w: 可修改其内容
x: 可以把此文件提请内核启动为一个进程

目录:

r: 可以使用ls查看此目录中文件列表
w: 可在此目录中创建文件,也可删除此目录中的文件
x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录
X:只给目录x权限,不给文件x权限

umask

功能说明:指定在建立文件时预设的权限掩码。
用法:

umask #: 设定

补充:umask是补码模式
新建FILE权限: 666-umask
如果所得结果某位存在执行(奇数)权限,则将其权限+1
新建DIR权限: 777-umask

这种只对当前shell有效
全局设置: /etc/bashrc 用户设置:~/.bashrc

chmod

功能说明:变更文件或目录的权限。
语  法:
chmod
[-cfRv][–help][–version][<权限范围>+/-/=<权限设置…>][文件或目录…] 或
chmod [-cfRv][–help][–version][数字代号][文件或目录…] 或 chmod
[-cfRv][–help][–reference=<参考文件或目录>][–version][文件或目录…]
权限范围:

   u:User,即文件或目录的拥有者。
 g:Group,即文件或目录的所属群组。
 o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
 a:All,即全部的用户,包含拥有者,所属群组以及其他用户。

选项:

   -c或–changes  效果类似"-v"参数,但仅回报更改的部分。
 -f或–quiet或–silent  不显示错误信息。
 -R或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
 -v或–verbose  显示指令执行过程。
 –reference=<参考文件或目录>  把指定文件或目录的权限全部设成和参考文件或目录的权限相同

 <权限范围>+<权限设置>  开启权限范围的文件或目录的该项权限设置。
 <权限范围>-<权限设置>  关闭权限范围的文件或目录的该项权限设置。
 <权限范围>=<权限设置>  指定权限范围的文件或目录的该项权限设置。

用法:

设置文件权限方法1
[root@qzx ~]# ll user.txt 
-rw-r--r--. 1 root root 80 Aug  1 16:54 user.txt
[root@qzx ~]# chmod g-r user.txt 
You have new mail in /var/spool/mail/root
[root@qzx ~]# ll user.txt 
-rw----r--. 1 root root 80 Aug  1 16:54 user.txt
设置文件权限方法2
[root@qzx ~]# chmod 777 user.txt 
[root@qzx ~]# ll user.txt 
-rwxrwxrwx. 1 root root 80 Aug  1 16:54 user.txt
以参考文件设置目标文件
[root@qzx ~]# ll passwd.txt 
-rw-r--r--. 1 root root 26 Aug  1 16:56 passwd.txt
[root@qzx ~]# chmod --reference=passwd.txt user.txt 
[root@qzx ~]# ll user.txt 
-rw-r--r--. 1 root root 80 Aug  1 16:54 user.txt

linux文件系统上的特殊权限

基础介绍:

1、 SUID, SGID, Sticky
2、 三种常用权限:r, w, x user, group, other
3、 安全上下文
4、 前提:进程有属主和属组;文件有属主和属组
(1) 任何一个可执行程序文件能不能启动为进程:取决发起者
对程序文件是否拥有执行权限
(2) 启动为进程之后,其进程的属主为发起者;进程的属组为
发起者所属的组
(3) 进程访问文件时的权限,取决于进程的发起者
(a) 进程的发起者,同文件的属主:则应用文件属主权限
(b) 进程的发起者,属于文件属组;则应用文件属组权限
(c) 应用文件“其它”权限

SUID权限

可执行文件上SUID权限

1、 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
2、 启动为进程之后,其进程的属主为原程序文件的属主
3、 SUID只对二进制可执行程序有效
4、 SUID设置在目录上无意义
5、  权限设定:

  • chmod u+s FILE…

  • chmod u-s FILE..

  • chmod 4xxx FILE…

SGID权限

可执行文件上SGID权限

1、 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
2、 启动为进程之后,其进程的属组为原程序文件的属组
3、 权限设定:

  • chmod g+s FILE…

  • chmod g-s FILE…

  • chmod 2xxx FILE…

2、目录上的SGID权限

1、 默认情况下,用户创建文件时,其属组为此用户所属的主组
2、 一旦某目录被设定了SGID,则对此目录有权限的组用户在此目录中创建的文件所属的组为此目录的属组
3、 通常用于创建一个协作目录
4、 权限设定:

  • chmod g+s DIR…

  • chmod g-s DIR…

  • chmod 2xxx FILE…

用处:可以创建一个SGID的组,给组设置权限后组中所有成员在此目录创建的文件的属组都将属于SGID的组

[qzx@localhost 2770]$ ll -d ../2770/
drwxrws---. 2 xiaoming xiaoming 27 8月   4 12:11 ../2770/
[root@localhost qiuzhaoxian]# su qzx
qzx@localhost 2770]$ touch qzcx
[qzx@localhost 2770]$ mkdir qiun
[qzx@localhost 2770]$ ll
总用量 0
drwxrwsr-x. 2 qzx      xiaoming 6 8月   4 12:14 qiun
-rw-rw-r--. 1 xiaoming xiaoming 0 8月   4 12:10 qww
-rw-rw-r--. 1 qzx      xiaoming 0 8月   4 12:11 qzcx

t权限

Sticky 位

1、 具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
2、 在目录设置Sticky 位,只有文件的所有者或root可以删除该目录内的文件
3、 sticky 设置在文件上无意义
4、 权限设定:

  • chmod o+t DIR…

  • chmod o-t DIR…

  • chmod 1xxx FILE…

例如:

[qzx@localhost 2770]$ ll -d /tmp
drwxr-xr-t. 19 root root 4096 8月   4 12:05 /tmp

权限位映射

1、 SUID: user,占据属主的执行权限位

s: 属主拥有x权限
S:属主没有x权限

2、 SGID: group,占据属组的执行权限位

s: group拥有x权限
S:group没有x权限

3、 Sticky: other,占据other的执行权限位

t: other拥有x权限
T:other没有x权限

提示:如果出现大写字母就是故障状态

其他

设定文件特定属性

1、 chattr +i 不能删除,改名,更改
2、 chattr +a 只能增加
3、 lsattr 显示特定属性

1、用chattr +i防止系统中某个关键文件被修改添加或删除

[root@VM_18_121_centos ~]# chattr -R +i qin
[root@VM_18_121_centos ~]# lsattr qin/
----i----------- qin/qzx
----i----------- qin/qzxa
[root@VM_18_121_centos ~]# echo qweqwww > qin/qzx 
-bash: qin/qzx: Permission denied
[root@VM_18_121_centos ~]# touch qin/qwer
touch: cannot touch 'qin/qwer': Permission denied
[root@VM_18_121_centos ~]# rm -rf qin/*  
rm: cannot remove 'qin/qzx': Permission denied
rm: cannot remove 'qin/qzxa': Permission denied

2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:

[root@VM_18_121_centos ~]# chattr -R +a qin
[root@VM_18_121_centos ~]# lsattr qin/
-----a---------- qin/qzx
-----a---------- qin/qzxa
[root@VM_18_121_centos ~]# echo eawdqwdq > qin/qzx
-bash: qin/qzx: Operation not permitted
[root@VM_18_121_centos ~]# echo eawdqwdq >> qin/qzx
[root@VM_18_121_centos ~]# rm -rf qin/qzx
rm: cannot remove 'qin/qzx': Operation not permitted

原创文章,作者:qzx,如若转载,请注明出处:http://www.178linux.com/28777

(0)
上一篇 2016-08-04 14:25
下一篇 2016-08-04 14:39

相关推荐

  • 2016/10/14作业

    2016/10/14作业: ##操作类: 1. 设置自己的终端提示符,要求字符终端登录时: a> 需要带颜色  b> 需要显示当前执行到了第几条命令  c> 显示当前登录终端,主机名和当前时间 答:要在用户登录时终端提示符,需要更改当前系统的环境变量: /etc/bashrc文件 #[ "$PS1" …

    Linux干货 2016-10-19
  • Linux基础入门命令

    在经过一个星期的入门学习后,对于LINUX的认识也从陌生到了基本了解。总结了一下一周所学习的基本命令。 一、想要查看你当前所在的终端?看下面几条命令: 查看当前登陆的终端名:tty 、whoami ;   查看当前登陆的终端名的详细信息:who am i ; 查看当前所有登陆的终端的详细信息: w ; 二、SHELL 的相关用法 &nbs…

    2017-07-14
  • 计算机的组成及其功能

    计算机由运算器,控制器、存储器及输入、输出装置五部分组成。 第一,运算器(Arithmetical and Logical Unit),也称作算术逻辑单元,主要是对数据进行各种运算。 第二,控制器(Control Unit)是计算机的控制中心,协调各计算机各部分按照预先的目标和步骤有序的工作。控制器从存储器中逐条取出指令,分析每条指令规定的操作和所需数据的存…

    Linux干货 2016-09-17
  • yum 仓库

    Yum 仓库     yum源就是一个软件集合地,你只需要搜索并安装你想要的软件,它会帮你解决大部分软件的依赖问题。本地源比如说光盘里面一般会附带一些软件,这个时候就可以把光盘当成本地源来安装软件。网络源比如说aliyun的镜像网站,这就属于网络源,可以通过互联网把软件下载下来并安装。   yum 仓库 &n…

    2017-06-24
  • 网络配置之-nmcli

    使用nmcli配置网络 NetworkManager是管理和监控网络设置的守护进程,设备既就是网络接口,连接是对网络接口的配置,一个网络接口可以有多个连接配置,但同时只有一个连接配置生效。 1 使用nmcli配置主机名 CentOS6 之前主机配置文件:/etc/sysconfig/network CentOS7主机名配置文件:/etc/hostname,默…

    Linux干货 2017-05-07
  • DNS域名系统

    【本文导航】DNS域名系统DNS域名系统DNS解析类型DNS查询类型DNS服务器类型资源记录   SOA记录   NS记录   MX记录   A记录与泛域名   PTR记录   CNAME记录   AAAA记录子域区域传…

    Linux干货 2016-12-26

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-04 15:01

    总结的很好,排版也很精美。再接再励