Linux权限管理详解

打印 上一主题 下一主题

主题 672|帖子 672|积分 2016

Linux权限管理体系

Linux作为一个多用户操作体系,其权限管理体系是保障体系安全的重要构成部分。通过合理设置文件和目次的权限,可以有效控制用户对体系资源的访问。
一、基本权限概念

Linux体系中的权限分为三类:

  • 读权限(r):允许读取文件内容或列出目次内容
  • 写权限(w):允许修改文件内容或在目次中创建、删除文件
  • 实行权限(x):允许实行文件或进入目次
这些权限分别应用于三种用户类型:

  • 文件所有者(u):创建文件的用户
  • 用户组(g):与文件关联的用户组
  • 其他用户(o):既不是所有者也不在用户组中的用户
二、查看文件权限

利用ls -l命令可以查看文件的详细信息,包罗权限:
  1. $ ls -l
  2. -rwxr-xr-- 1 user group 4096 Jan 1 10:00 
  3. file.txt
复制代码

权限部分分析:


  • 第一个字符:文件类型(-表现平凡文件,d表现目次,l表现符号链接等)
  • 接下来的9个字符分为3组,每组3个字符:

    • 第1-3位:所有者权限(rwx)
    • 第4-6位:用户组权限(r-x)
    • 第7-9位:其他用户权限(r--)

三、权限的数字表现

权限也可以用数字表现:


  • r (读) = 4
  • w (写) = 2
  • x (实行) = 1
通过将每组权限的数字相加,可以得到一个三位数:


  • 比方:rwxr-xr-- = 754

    • 所有者:rwx = 4+2+1 = 7
    • 用户组:r-x = 4+0+1 = 5
    • 其他用户:r-- = 4+0+0 = 4

四、修改文件权限

1. chmod命令

chmod命令用于修改文件或目次的权限。有两种利用方式:
符号模式
  1. chmod [用户类型][操作符][权限] 文件名
复制代码



  • 用户类型:u(所有者)、g(用户组)、o(其他用户)、a(所有用户)
  • 操作符:+(添加权限)、-(移除权限)、=(设置权限)
  • 权限:r(读)、w(写)、x(实行)
比方:
  1. chmod u+x file.txt  # 给所有者添加执行权限
  2. chmod go-w file.txt  # 移除用户组和其他用户的写权限
  3. chmod a=r file.txt  # 设置所有用户只有读权限
复制代码
数字模式
  1. chmod 权限数字 文件名
复制代码
比方:
  1. chmod 755 file.txt  # 设置权限为rwxr-xr-x
  2. chmod 644 file.txt  # 设置权限为rw-r--r--
复制代码

2. chown命令

chown命令用于修改文件的所有者和用户组:
  1. chown 用户[:组] 文件名
复制代码

比方:
  1. chown user1 file.txt  # 修改所有者为user1
  2. chown user1:group1 file.txt  # 修改所有者为
  3. user1,用户组为group1
复制代码

3. chgrp命令

chgrp命令用于修改文件的用户组:
  1. chgrp 组名 文件名
复制代码
比方:
  1. chgrp group1 file.txt  # 修改用户组为group1
复制代码
五、特殊权限

除了基本的rwx权限外,Linux尚有三种特殊权限:

  • SUID (Set User ID):当文件被实行时,进程的有效用户ID会被设置为文件所有者的ID

    • 数字表现:4000
    • 符号表现:s (更换所有者的x位置)

  • SGID (Set Group ID):当文件被实行时,进程的有效用户组ID会被设置为文件用户组的ID

    • 数字表现:2000
    • 符号表现:s (更换用户组的x位置)

  • Sticky Bit:重要用于目次,只有文件的所有者、目次的所有者或root用户才气删除或重命名目次中的文件

    • 数字表现:1000
    • 符号表现:t (更换其他用户的x位置)

设置特殊权限的例子:
  1. chmod u+s file  # 设置SUID
  2. chmod g+s directory  # 设置SGID
  3. chmod +t directory  # 设置Sticky Bit
  4. chmod 4755 file  # 设置SUID和rwxr-xr-x权限
复制代码

六、默认权限与umask

新创建文件和目次的默认权限由体系的umask值决定:


  • 文件的最大默认权限是666 (rw-rw-rw-)
  • 目次的最大默认权限是777 (rwxrwxrwx)
  • 现实默认权限 = 最大默认权限 - umask值
查看当前umask值:
  1. umask
复制代码
设置umask值:
  1. umask 022  # 设置umask为022
复制代码

常见的umask值:


  • 022:文件默认权限为644 (rw-r--r--),目次默认权限为755 (rwxr-xr-x)
  • 002:文件默认权限为664 (rw-rw-r--),目次默认权限为775 (rwxrwxr-x)
七、访问控制列表(ACL)

当基本权限不足以满意需求时,可以利用访问控制列表(ACL)提供更精细的权限控制:
查看文件的ACL:
  1. getfacl 文件名
复制代码
设置文件的ACL:
  1. setfacl -m u:用户名:权限 文件名  # 为指定用户
  2. 设置权限
  3. setfacl -m g:组名:权限 文件名  # 为指定用户组
  4. 设置权限
复制代码

比方:
  1. setfacl -m u:john:rw file.txt  # 给用户
  2. john添加读写权限
  3. setfacl -m g:developers:rx file.txt  # 给
  4. developers组添加读和执行权限
复制代码

总结

Linux的权限管理体系是保障体系安全的重要构成部分。通过合理设置文件和目次的权限,可以有效控制用户对体系资源的访问。把握权限管理的基本概念和操作方法,对于体系管理和安全维护至关重要。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

星球的眼睛

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表