Linux中文件权限用户和用户组管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中文件权限用户和用户组管理相关的知识,希望对你有一定的参考价值。

1、文件权限

技术分享图片


2、文件和目录rwx权限说明

  • 文件rwx权限:

r  :  可读,具有读取文件内容的权限(),如果没有r,vi/vim编辑器提示无法编辑(可强制编辑),echo可以追加或重定向。

w :  可写,具有修改文件内容的权限

x  :  可执行,具有执行文件的权限。

       需满足:文件本身具有可执行权限;普通用户还需具有r权限;root用户只要x权限就可执行。linux中可执行文件:*.sh     *.py     *.perl等等。

  • 目录rwx权限:

r  :  可读,查看目录下面文件及子目录的权限,即 ls dir

如果没有x,不能进入到目录里,即无法cd dir ;如果没有x,ls可以看到所有文件名,但会提示无权访问目录下的文件。

w :  可写,具有修改、增加、删除目录内文件名的权限(需要x权限配合)

x  :  可执行,具有进入目录的权限。例如cd dir;但是没有r无法列表文件或目录,没有w无法修改、增加、删除


3、删除文件(或者修改文件名)受父目录权限控制,和文件本身权限无关,删除文件(或者修改文件名)是在操作文件的上级目录的block中与文件名和inode相关联的数据,因此和上级目录权限有关。


4、读取/data/test的过程


5、常用命令


改变文件或目录用户权限:    chmod   [数字权限或字符权限]     [文件名或目录名]   。

加  -R (递归) 表示把目录中的文件或子目录权限改变。

数字权限:r :4   w:2    x:1    -:0

字符权限 :  u:所属主   g:所属组      o:其他人    a:相当于ugo       +:添加权限    -:取消权限     =:取消其他权限只添加给定权限


改变文件或目录所属主:     chown   [选项]  [属主]  [文件名或目录名]

选项:    -R     表示把指定目录中的文件或子目录的所属主改变。


改变文件或目录所属组:      chgrp    [选项]   [属组]  [文件名或目录名]

选项:   -R     表示把指定目录中的文件或子目录的所属组改变。



6、默认权限分配命令:umask

每个linux系统终端都拥有一个umask,可以用来确定新创建文件或目录的默认权限。由于在系统中创建一个文件默认权限666,创建一个目录默认权限777,权限对外开放比较大,所以设置了umask权限掩码之后,默认的文件目录权限减去umask值才是实际的文件目录权限。

umask 一共4位数字,第一位用于定义特殊权限,后三位表示权限掩码。


对于 超级用户,umask默认值是0022,超级用户(用户root及用户组root)创建目录默认权限 :777-022=755,创建文件默认权限:666-022= 644,是相对安全的权限。

对于普通用户, umask默认值是0002,普通用户创建目录默认权限:777-002=775,创建文件默认权限:666-002=664.


umask设定值如果有奇数位,777 ( 666 )-umask,对应的奇数位再加1,才是创建目录或文件的默认权限

umask设定值如果全为偶数,777(666)-umask,就是创建目录或文件的的默认权限。


查看umask值  :  umask

改变umask值  :   umask   -S   [设定值]    (临时设置,重启无效)

如果需要永久生效,则修改/etc/profile或者/etc/bashrc文件,在文件末尾加上 umask     [设定值]   。/etc/profile  和 /etc/bashrc  都可以用于用户登录时自动执行某些操作,区别是/etc/profile只是在用户第一次登录时被执行,而/etc/bashrc在用户每次登录加载bash shell 时都会被执行。因此,修改/etc/profile只能对新创建的用户生效,/etc/bashrc 对所有登录用户都生效。


7、特殊权限


  • Linux文件的特殊权限是用于弥补一般权限不能实现的功能,是针对于文件设置的一种特殊的功能。

  • Linux文件的特殊权限:

SUID:让执行者临时拥有属主的权限(仅对拥有执行权限x的二进制程序有效)。s(有x时)      ,  S( 无x时 )。

SGID:让执行者临时拥有属组的权限(对拥有执行权限x的二进制程序设置)。 s(有x时),S(无x时)。

主要用在目录中,当某个目录设置了sgid,在该目录中新创建的文件具有该目录的所属组权限,使得在多个用户之间共享目录变得简单。

SBIT(Sticky Bit):只可管理自己的数据而不能删除他人文件(仅对目录有效)。        t( 有x时 )    ,T(无x时)。

  • Linux文件的特殊权限的设置:

SUID:4      SGID:2      SBIT:1

设置SUID:  chmod   4755     [文件名或目录名]   或者     chmod   u+s   [文件名或目录名]  

设置SGID:  chmod   2755     [文件名或目录名]   或者     chmod   g+s   [文件名或目录名]

设置SBIT(粘滞位):   chmod   1755     [目录名]                


8、用户和用户组管理

  • 用户管理:


useradd  :

userdel :

usermod :


  • 用户组管理:


groupadd:

groupdel :

groupmod:

9、chattr、lsattr

  • chattr:   命令用于改变文件或目录属性,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。

        

       这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

        如:    chattr +i    /etc/resolv.conf      #用chattr命令防止系统中某个关键文件被修改:

参数:

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

  -v<版本编号> :设置文件或目录版本。

  -V                   :显示指令执行过程。

  +<属性>          : 开启文件或目录的该项属性。

  -<属性>           :关闭文件或目录的该项属性。

  =<属性>          : 指定文件或目录的该项属性。

属性:

  1. a:让文件或目录仅供附加用途。

  2. b:不更新文件或目录的最后存取时间。

  3. c:将文件或目录压缩后存放。

  4. d:将文件或目录排除在倾倒操作之外。

  5. i:不得任意更动文件或目录。

  6. s:保密性删除文件或目录。

  7. S:即时更新文件或目录。

  8. u:预防意外删除。


  • lsattr   :  显示chattr命令设置的文件属性。

lsattr [-adlRvV][文件或目录...]

参数:

  • -a  显示所有文件和目录,包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".."。

  • -d  显示,目录名称,而非其内容。

  • -l  此参数目前没有任何作用。

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

  • -v  显示文件或目录版本。

  • -V  显示版本信息。

 


以上是关于Linux中文件权限用户和用户组管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux中文件权限用户和用户组管理

linux创建一个用户怎么给他创建文件的权限?

Linux文件权限序列简述

linux中怎样给予新建用户建立文件和目录的权限

Linux学习之十四-Linux文件和目录权限

linux 下 文件的X权限有啥用