linux 文件权限以及用户策略 讲解

 linux 文件权限以及用户策略 讲解

   由于linux系统是一个多用户使用的系统,对于各个用户指定的文件或目录必须存在一套管理系统,以防止多用户对相同文件的混淆使用。于是催生出了linux系统文件的用户权限设置。其存在的意义就是每一个文件或目录对于不同的用户区分读取,写入,执行三种权限,即:r,w,x。下面将详细介绍如何定义文件或目录的权限以及相关命令

linux 文件权限以及用户策略 讲解blob.png

文件的权限主要针对三类对象进行定义:

  owner: 属主, u group: 属组, g other: 其他, o 

每个文件针对每类访问者都定义了三种权限: r: Readable w: Writable x: eXcutable

下面列出了,rwx对应的数字关系

r=4  w=2  x=1

文件权限

文件:

r: 可使用文件查看类工具获取其内容

w: 可修改其内容

x: 可以把此文件提请内核启动为一个进程

目录:

r: 可以使用ls查看此目录中文件列表

w: 可在此目录中创建文件,也可删除此目录中的文件

x: 可以使用ls -l查看此目录中文件列表,可以cd进入此 目录

X:只给目录x权限,不给文件x权限

umask值得表示含义

umask表示文件权限的反向编码。新文件的创建默认权限是指定的,其指定权限与umask值相关。其权限八进制的计算方式为:

  对于目录:777-umask值=默认权限八进制

  对于文件:666-umask值=默认权限八进制(注意:为了安全,文件创建默认不应该拥有x权限,所以得出值如果为奇数,需要每个奇数+1)列;

umask 043

创建文件之后的权限是 666-043=624(623+1)

[root@centous1 ~]# umask
0043
[root@centous1 ~]# touch dir1
[root@centous1 ~]# ll
总用量 15096
-rw-------.  1 root root     1288 5月   3 03:16 anaconda-ks.cfg
-rw--w-r--   1 root root        0 8月   4 07:41 dir1
-rw-r--r--.  1 root root    33079 5月   3 03:16 install.log
-rw-r--r--.  1 root root     6996 5月   3 03:13 install.log.syslog
-rw-r--r--   1 root root      191 8月   2 12:12 pass.txt
-rw-r--r--   1 root root      432 8月   2 12:07 users.txt

chmod更改文件或者文件夹权限

对于文件来说有三种登录用户:文件所有者,使用u表示,文件所属组,用g表示,还有其他用户与这个文件无关,用o表示。

用法一            chmod u=rw,g=r,o= /testdir          意思是更改/testdir是属主权限是rw,属组权限是r,其他人的权限无。这种用法直接指定,原有的权限不会有影响。

用法二   chmod u+rw,g+r /testdir    意思是在原有的权限基础上,属组的权限增加rw,属组的权限增加r。

用法三   chmod  755 /testdir    意思是给/testdir 赋值为 drwxr-xr-x  也叫数字赋值法。

改变所有者(chown)和用户组(chgrp)命令

修改文件的属主:chown

chown [OPTION]… [OWNER][:[GROUP]] FILE…        -R递归

[root@centous1 ~]# touch dir1
[root@centous1 ~]# ll dir1
-rw-r--r-- 1 root root 0 8月   4 08:39 dir1
[root@centous1 ~]# chown text dir1
[root@centous1 ~]# ll dir1
-rw-r--r-- 1 text root 0 8月   4 08:39 dir1

修改文件的属组:chgrp

chgrp [OPTION]… GROUP FILE… chgrp [OPTION]… –reference=RFILE FILE…

-R 递归

[root@centous1 ~]# groups text
text : text
[root@centous1 ~]# chgrp text dir1
[root@centous1 ~]# ll dir1
-rw-r--r-- 1 text text 0 8月   4 08:39 dir1

SUID,SGID,sticky的意义为分别对文件属主,属组,其他用户所设置的特殊权限。

SUID只对二进制可执行程序有效,设定命令为:

chmod u+s file

其中file文件的执行权限为-rwxr-x—-. 属主为root,命令执行后会变为-rwsr-x—.这时候非常的微信,任何非主用户都可以对这个文件有执行的权限,取消这个权限的命令为

chmod u-s file

列如;我们通常切换到普通用户之后也可以改密码,是因为我们可以根据/user/bin/passwd 的权限,来调用/etc/shadow.那么/user/bin/passwd 是什么权限呢

linux 文件权限以及用户策略 讲解blob.png

那么为什么要根据passwd文件来调用呢,因为/etc/shadow的权限太严格了

linux 文件权限以及用户策略 讲解blob.png

只用suid来赋权限,使执行者可以暂时继承root的身份,来执行passwd文件。

注意,即使是说继承root的身份,但是执行文件的权限other也要有执行的权限,否则也是执行不了的

执行程序的规则;

(1) 任何一个可执行程序文件能不能启动为进程:取决发起者 对程序文件是否拥有执行权限

(2) 启动为进程之后,其进程的属主为发起者;进程的属组为 发起者所属的组

(3) 进程访问文件时的权限,取决于进程的发起者 (a) 进程的发起者,同文件的属主:则应用文件属主权限 (b) 进程的发起者,属于文件属组;则应用文件属组权限 (c) 应用文件“其它”权限

 SGID常常作用于目录上,设定命令为如下:

  chmod g+s dir

  如果dir目录原权限为:drwxr-xrw-,属主为root,属组为root。执行命令后权限变为:drwxr-srw-

  如果切换其他用户mcgee(拥有w权限)在dir内创建文件,如果dir没加SGID,默认新建文件属主,属组为用户mcgee的属主和属组。但是在加SUID的dir目录内,创建的新文件属主为mcgee,但是属组一定是dir目录的属组root。

 取消dir的SGID权限命令为:

 chmod g-s dir

注意:dir的原有权限other是有w权限的

sticky

  sticky权限的作用是保护文件被非属主的其他用户删除,设定命令为:

  chmod 0+t file2

   如果file2权限为-rwxr-xrwx,执行后会变为-rwxr-xrwt。此时对于文件file2,只有file2属主与root可以对file2目录有执行权限。

  取消file2的sticky权限

 chmod -o-t file2

一个容易出错的列子,,

系统创建两个用户user1 user2

我们登录user2,然后在其家目录下创建个123文件。此时的123文件属组属主都是user2

linux 文件权限以及用户策略 讲解blob.png

然后我们给user2的家目录权限为777,登录user1,进入到user2的家目录并且vim打开123,写入点东西强行保存,此时再看123文件的属主属组。

linux 文件权限以及用户策略 讲解blob.png

linux 文件权限以及用户策略 讲解blob.png

在这里为什么能够把文件123的属主和属组改变呢,虽然123文件的权限是其他用户只读,不能修改。但是,因为目录的关系权限是777,可以删除123这个文件,vim把他强制保存,其实就是把他删除了重建了的,所以,123文件的属主属组改变了,

注意,一定要记住,目录中other不要给w权限,因为他可以让其他用户删除,那样的话,权限就没意义了。

ACL的意义与使用命令

  ACL:access control list.访问控制列表。存在的意义为对特定的其他用户设置权限。其相关命令有setfacl,getfacl两种。

  setfacl:对特定文件或目录设置acl,用法如下:

  ~]# setfacl -m u:wang:rwx file3

  表示文件file3对用户wang设置了rwx的权限

  ~]# setfacl -Rm g:sales:rwx dir2

  表示dir2目录以及其递归文件对组sales内的用户设置rwx的权限

  其中option可以查询帮助文件

  getfacl:显示file/directory的acl设置,如下:

  ~]# getfacl file3

  其中会多出显示file3对wang的权限。

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

(0)
forestforest
上一篇 2016-08-05 16:16
下一篇 2016-08-05 16:16

相关推荐

  • Linux中查看文本工具

    一、文件查看 文件查看命令:cat,tac,rev,我们重点详解cat命令 cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令 我们可以理解cat命令是复制标准输入到标准输出 cat命令选项: cat [OPTION]… [FILE]… -E:显示行结束符$   &nbs…

    Linux干货 2016-08-07
  • yum与rpm包

    yum与rpm包 包命名和工具 包:分类和拆包 Application-VERSION-ARCH.rpm:主包 Application-devel-VERSION-ARCH.rpm 开发子包 Application-utils-VERSION-ARHC.rpm 其它子包 Application-libs-VERSION-ARHC.rpm 其它子包 包之间:可…

    Linux干货 2017-05-08
  • LVM——如何让你的磁盘空间可大可小

    逻辑卷管理器(LVM) 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统          将设备指定为物理卷          用一个或者多个物理卷来创…

    Linux干货 2016-08-29
  • ansible原理及简单应用

    一、基础介绍 1、简介 ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供…

    Linux干货 2016-01-13
  • N25-第一周作业

    一,描述计算机的组成及其功能。        计算机(Computer)是一种能够按照事先存储的程序,自动、高速地进行大量数值计算和各种信息处理的现代化智能电子设备。由硬件和软件所组成,两者是不可分割的。        计算机的组成分为控制…

    Linux干货 2016-12-03
  • 第六周课程作业

    1、复制/etc/rc.d/init.d/functions文件至/tmp目录,将/tmp/functions文件中 的以至少一个空白字符开头的行的行首加# ~]# cp /etc/rc.d/init.d/functions /tmp~]# vim /tmp/functions %s@^[[:space:]]\+@#@g 2、复制/boot/gru…

    Linux干货 2016-12-12

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-07 23:24

    文章整体架构清晰,从权限模型到权限管理都通过实际操作有了自己的认识和理解。