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
下一篇 2016-08-05

相关推荐

  • 【26期】Linux第六周学习小总结

        时光匆匆,一周时光悠然而逝,带给我们的只有知识的充实,和每日强大的自信心,学习的日益深入,慢慢的然我们的思绪和状态带回高中时光,吃饭上课睡觉三点一线的生活,枯燥中透露出稍微的晨曦,让每个明天都充满着期待,那我们的本周的学习中磁盘管理算是占了很大的比重,毕竟关于磁盘的知识很是难理解,那我就把本周的知识回顾温习,同时分享给大家。 &n…

    2017-08-19
  • N26-第三周博客

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只 显示一次即可。 [yang@localhost /]$ who | cut -d" " -f 1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 [root@localhost tmp]# last | head -1 3、取出当前系…

    Linux干货 2017-02-08
  • 20161019第5天作业

    1、只显示/root下的隐藏文件 ls -d '.'* 2、只显示/etc下的目录 ls -d */ ls -l |grep '^d' ls -F | grep "/$"  &nb…

    Linux干货 2016-10-20
  • 第四周练习

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。         # cp -r /etc/skel /home/tuser1      &nb…

    Linux干货 2016-11-18
  • 8月5日第七节课作业

    一、当天练习 1、找出ifconfig命令结果中本机的所有IPv4地址 2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示 5、统计当前连接本机的每个远程主机IP的连接数,并按从大 到小排序 1、显示/proc/meminfo文件中以大小s开头的行;(要求:使 用两种方式) …

    Linux干货 2016-08-08
  • 第一篇博客 简单说下最近的学习心得吧

        今天是个特殊的日子, 来到马哥教育已经一周时间了,刚来的时候满环信心,感觉人生充满了希望,但是接下来的学习让我感受到了什么是绝望,刚开始的两天完全是一种朦胧的状态,不知道干什么,敲得命令也不理解,完全是生搬硬套,没有自己的认知,当时就有一种冲动想要一走了之,后来想想算了 ,然后就坚持到了现在,此时感觉当时的决定是对的,经过一周的学…

    2017-07-15

评论列表(1条)

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

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