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

相关推荐

  • 8-4 文本处理工具

    本节主要了解文本处理工具 文件查看命令:cat  tac  rev     cat [OPTION]… [FILE]…         -E:显示行结束符$    &…

    Linux干货 2016-08-07
  • N21_第09周_shell脚本

    作业题目: 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; 预置条件: [root@zhouyong148 N21_09]# cat /etc/passwd root:x:0:0:root:/root:/b…

    Linux干货 2016-11-14
  • 进程管理的总结

    进程管理的总结 进程相关概念: Process: 运行中的程序的一个副本,是被载入内存的一个指令集合。进程是程序的基本执                      行实体;程序是指令、数据及其组织形式的描述,进程是程序的实体 Process ID:进程的标记号码 task struct:Linux内核存储进程信息的数据结构格式 task list:多个任务的…

    2017-12-23
  • haproxy代理服务

    HAProxy: LB Cluster:         四层:   lvs, nginx(stream),haproxy(mode tcp)         七层:   http: nginx(http, ngx_http_upstrea…

    Linux干货 2017-05-17
  • rpm 程序包管理器的基本使用

    目录 安装程序包 卸载 升级 查询 校验 来源合法性和完整性验证 数据库重建 1     安装程序包 rpm -ivh /path/to/package_file -v     显示执行过程的参数。 -h   &nbsp…

    Linux干货 2016-06-22
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp [root@localhost tmp]# vim rc.sysin…

    Linux干货 2016-08-02

评论列表(1条)

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

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