文件的权限详解(一)

文件的权限


修改文件的属主和属组

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

评论列表(1条)

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

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