文件的权限详解(一)

文件的权限


修改文件的属主和属组

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)
qzxqzx
上一篇 2016-08-04 14:39
下一篇 2016-08-04 14:39

相关推荐

  • LNMP

    1、源码编译安装LNMP架构环境 OS版本:2.6.32-431.el6.x86_64 Nginx版本:nginx-1.6.1 mariadb版本:mariadb-10.0.13 php版本:php-5.4.26 1、安装编译安装所需系统环境 ~]# yum groupinstall "Development Tools" "S…

    Linux干货 2017-02-09
  • 初至马哥教育

    linux面授班30期

    2018-03-26
  • 磁盘分区

    磁盘分区 一、分区方式两种 MBR分区不能超过2个T按柱面分区主引导记录存放在,0磁道0扇区 512bytes前446字节存放bootloader (软件程序)64字节:分区表16个字节表示一个有效的分区 故只能分4个主分区。大于4个需要创建扩展分区,并在其中创建逻辑分区。2字节 55AABPT分区GPT:GUID(Globals Unique Identi…

    Linux干货 2016-08-29
  • TCP协议详解

    TCP协议详解。     I,TCP数据段报文解释 1,tcp数据段头部20(固定)+40(可变)字节构成,此数据由报头偏移位构成,计算单位为四个字节 表示TCP报文段的首部长度,共4位,由于TCP首部包含一 个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指 出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。…

    Linux干货 2017-06-26
  • Linux无人值守安装

    前言     通常情况下,我们安装Linux操作系统的时候需要从光盘启动,通过系统光盘bootloader启动安装程序,进入交互式安装模式,由用户配置安装选项,如磁盘分区、选择安装包等操作;安装完毕后重启结束安装。在生产环境中,成百上千台服务器需要安装操作系统的时候如果也采用交互式安装模式,无疑是极其低效的。本文主要介…

    Linux干货 2015-05-18
  • RPM包管理——运维必备技能之一

    软件运行环境: API:Application Programming Interface     POSIX :Portable OS 程序源代码 –> 预处理 –> 编译 –> 汇编 –> 链接     …

    Linux干货 2016-08-21

评论列表(1条)

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

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