Linux用户及权限管理

接触过Linux系统的人都知道Linux系统都是由文件组成的。那咱们就应该意识到关于文件权限的重要性。下面详细介绍一下:node

博文大纲:数据库

  • 用户与用户组;
  • Linux文件权限的重要性;
  • 文件与目录的默认权限与隐藏权限;
  • 文件特殊权限;

1、用户与用户组

咱们来经过一张图片,来详细了解一下用户与用户组之间的关系:
Linux用户及权限管理
经过这张图片就能够详细的了解用户与用户组之间的关系!安全

咱们经过浏览/root目录下的文件来了解一下每一个文件各个部分的内容:服务器

Linux用户及权限管理

(1)第一栏表明这个文件的类型与权限

这个地方最须要注意了!仔细看的话,你应该能够发现这一栏其实共有十个字符,每一个字符的含义,如图:
Linux用户及权限管理app

第一个字符表明这个文件是『目录、文件或连接文件等等』:ide

  • 如果[ d ]则是目录,例如上表文件名为“.config”的那一行;
  • 如果[ - ]则是文件,例如上表文件名为“initial-setup-ks.cfg”那一行;
  • 如果[ l ]则表示为连接文件(link file);
  • 如果[ b ]则表示为设备文件里面的可供储存的周边设备(可随机存取设备);
  • 如果[ c ]则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备);

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]表明可读(read)、[ w ]表明可写(write)、[ x ]表明可执行(execute)。 要注意的是,这三个权限的位置不会改变,若是没有权限,就会出现减号[ - ]而已。『rwx』也能够用数字四、二、1来表示日志

  • 第一组为『文件拥有者可具有的权限』,以『initial-setup-ks.cfg』那个文件为例, 该文件的拥有者
    能够读写,但不可执行;
  • 第二组为『加入此群组之帐号的权限』;
  • 第三组为『非本人且没有加入本群组之其余帐号的权限』。

(2)第二栏表示有多少档名连结到此节点(i-node) :

每一个文件都会将他的权限与属性记录到文件系统的 i-node 中,不过,咱们使用的目录树倒是使用文件名来记录, 所以每一个档名就会连结到一个 i-node 啰!这个属性记录的,就是有多少不一样的档名连结到相同的一个 i-node 号码去就是了。code

(3)第三栏表示这个文件(或目录)的{拥有者帐号}

(4)第四栏表示这个文件(或目录)的所属群组

(5)第五栏为这个文件的容量大小,默认单位为 bytes

(6)第六栏为这个文件的建档日期或者是最近的修改日期

(7)第七栏为这个文件的档名

2、Linux文件权限的重要性

与 Windows 系统不同的是,在 Linux 系统当中,每个文件都多加了不少的属性进来,尤为是群组的概念,这样有什么用途呢? 其实,最大的用途是在『数据安全性』上面的。blog

Linux文件权限的重要性主要包含这几个方面:图片

  • 系统保护的功能;
  • 团队开发软件和数据共享的功能;
  • 未将权限设定稳当的危害;

所以在设置目录的权限和属性时,必定要注意: 什么数据是可变的,什么是不可变的!

3、如何改变文件属性与权限

咱们如今知道文件权限对于一个系统的安全重要性了,也知道文件的权限对于使用者与群组的相关性,那么如何修改一个文件的属性与权限呢?又!有多少文件的权限咱们能够修改呢? 其实一个文件的属性与权限有不少!咱们先介绍几个经常使用于群组、拥有者、各类身份的权限之修改的指令,以下所示:

  • chgrp :改变文件所属群组;
  • chown :改变文件拥有者;
  • chmod :改变文件的权限, SUID, SGID, SBIT 等等的特性;

关于如何修改文件的拥有者、群组、权限这些问题,实在是太简单了,因此这里就很少作介绍了!

4、目录和文件之权限意义

如今咱们知道了 Linux 系统内文件的三种身份(拥有者、群组与其余人),知道每种身份都有三种权限(rwx), 已知道可以使用 chown, chgrp, chmod 去修改这些权限与属性,固然,利用 ls -l 去观察文件也没问题。

1) 权限对文件的重要性

文件是实际含有数据的地方,包括通常文本文件、数据库内容文件、二进制可执行文件等等。所以,权限对于文件来讲,它的意义是这样的:

  • r(read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
  • w (write):能够编辑、新增或者是修改该文件的内容(但不含删除该文件);
  • x (eXecute):该文件具备能够被系统执行的权限。

在Windows系统下,文件的扩展名会起到做用,可是,在LInux系统中,文件的扩展名是不起任何做用的!

2)权限对目录的重要性

文件是存放实际数据的所在,那么目录主要是储存啥玩意啊?目录主要的内容在记录文件名列表,文件名与目录有强烈的关连啦!

  • r (read contents in directory):表示具备读取目录结构列表的权限,因此当你具备读取(r)一个目录的权限时,表示你能够查询该目录下的文件名数据。 因此你就能够利用 ls 这个指令将该目录的内容列表显示出来;
  • w (modify contents of directory):这个可写入的权限对目录来讲,是很了不得的! 由于他表示你具备异动该目录结构列表的权限,也就是底下这些权限:
    ① 创建新的文件与目录;
    ② 删除已经存在的文件与目录(不论该文件的权限为什么!)
    ③ 将已存在的文件或目录进行改名;
    ④ 搬移该目录内的文件、目录位置。

总之,目录的 w 权限就与该目录底下的文件名异动有关就对了啦!

  • x (access directory):咦!目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不能够被执行,目录的 x 表明的是用户可否进入该目录成为工做目录的用途! 所谓的工做目录(work directory)就是你
    目前所在的目录啦!举例来讲,当你登入 Linux 时, 你所在的家目录就是你当下的工做目录。而变换目录的指令是『cd』(change directory)啰!

详细介绍,你们看的有点费劲,故意总结成一个表,供你们参考:
Linux用户及权限管理

3)用户操做功能与权限

经过表的形式了解一下:
Linux用户及权限管理

5、文件与目录的默认权限与隐藏权限

咱们都知道新建的文件权限是644;新建的目录的权限是755。那么你们知道这些权限是怎么来的吗?
那是由于文件的默认权限是666;目录的默认权限是777;

[root@localhost ~]# umask
0022

用文件或目录的默认权限减去umask值,即是新建文件或目录的权限,至于如何修改这个umask值,方法以下:

[root@localhost ~]# umask 111
[root@localhost ~]# umask
0111

umask值的第一位是特殊权限,这里先忽略!

1)隐藏权限

可使用chattr命令进行设置;使用lsattr能够查看文件或目录的隐藏权限;

chattr命令的经常使用参数有:

    • 在原有参数设定基础上,追加参数;
    • 在原有参数设定基础上,移除参数;
  • = 更新为指定参数设定;
  • A 文件或目录的 atime (access time)不可被修改(modified), 能够有效预防例如手提电脑磁盘I/O错误的发生;
  • S 硬盘I/O同步选项,功能相似sync;
  • a 即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性;
  • c 即compresse,设定文件是否经压缩后再存储。读取时须要通过自动解压操做;
  • d 即no dump,设定文件不能成为dump程序的备份目标;
  • i 设定文件不能被删除、更名、设定连接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助;
  • j 即journal,设定此参数使得当经过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。若是filesystem被设定参数为 data=journal,则该参数自动失效;
  • s 保密性地删除文件或目录,即硬盘空间被所有收回;
  • u 与s相反,当设定为u时,数据内容其实还存在磁盘中,能够用于undeletion;

lsattr命令的经常使用参数有:

  • -a :将隐藏文件的属性也列出来;
  • -d :若是接的是目录,仅列出目录自己的属性而非目录内的文件名;
  • R :连同子目录的数据也一并列出来!

2)文件特殊权限

文件 的特殊权限分为:SUID、SGID、SBIT。

SUID的权限对一个文件的特殊权限:

  • SUID权限仅对二进制程序有效;
  • 执行这对于该程序须要具备x的可执行权限;
  • 本权限仅在执行程序的过程当中有效;
  • 执行者经具备该程序拥有者的权限;

注意:SUID仅针对文件,不能够针对目录!

SGID的功能:

  • SGID对二进制程序有用;
  • 程序执行者对于该程序来讲,需具备x的权限;
  • 执行者在执行的过程当中将会得到该程序群组的权限;

注意:SGID能够针对文件,也可针对目录!

SBIT对于目录的做用:

  • 当使用者对于此目录具备w、x权限,具备写入的权限;
  • 当使用者在该目录下建立文件或目录是,仅是本身与root才有权利删除该文件;

注意:SBIT仅针对目录有效!

关于文件或目录的权限就简单介绍这么多!

———————— 本文至此结束,感谢阅读 ————————

相关文章
相关标签/搜索