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

相关推荐

  • 2016-10-17作业

    1 生产环境发现一台服务器系统时间产生偏差,造成服务异常,请帮忙校正。 答:hwclock -s 2 生产有一个数据同步脚本需要执行很长时间,怎样做到无人值守,在管理工具退出的情况下,脚本依然能正常运行。 答:screen -S work  进去后开始做工作,暂时离开时可使用 ctrl+a,d 剥离当前会话。 3 Linux系统中命令共分为内建命令…

    Linux干货 2016-10-18
  • 操作系统图形界面发展史(1981-2009)

    注意,本文这罗列了从1981年以来有重大意义的操作系统的图形界面。 首先,先介绍两个网站: http://www.guidebookgallery.org/ 如果你比较关注图形化UI的设计, 可以上这个网站上看看。 http://toastytech.com/guis/index.html 这是一个操作系统图形界面收集的网站,上面几科包括…

    Linux干货 2016-05-17
  • linux中的vim

    什么是vim:     Linux 在命令行下的文本编辑器,很多个别软件的编辑接口都会主动调用vim,所以在 Linux 的系统中使用文字编辑器来编辑你的Linux参数配置文件,在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设置.所有的Unix L…

    Linux干货 2016-08-11
  • 网络管理

    网络概念 网络应用程序 Web 浏览器(Chrome、IE、Firefox等) 即时消息(QQ、微信、钉钉等) 电子邮件(Outlook、foxmail 等) 协作(视频会议、VNC、Netmeeting、WebEx 等) web网络服务(apache,nginx,IIS) 文件网络服务(ftp,nfs,samba) 数据库服务( MySQL,MariaDB…

    Linux干货 2017-05-06
  • 系统基础之Btrfs文件系统详解

    btrfs文件系统:技术预览版(centos7) 描述: Btrfs(B-tree,Butter FS,Better fs),GPL授权,Orale,2007 写实复制特性(Cow)     cp –reflink (只能在btrfs文件系统中使用) 想取代ext系统系统, 支…

    Linux干货 2016-09-21
  • sed

    Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前 处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后 ,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环 。如果没有使诸如‘D’的特殊命令,那会在两个循环之间清空 模式空间,但不会清空保留…

    Linux干货 2017-12-03

评论列表(1条)

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

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