当前位置:   article > 正文

Linux系统中文件权限详解_linux文件权限

linux文件权限

一、Linux文件权限设计

        Linux系统中任何内容都可以用文件表示,其对文件设计了一套权限进行管理;文件权限共有11个字符,从左向右共分为5段(每段的具体说明如下表Linux权限设计说明所示):

Linux权限设计说明
字符说明

第1个字符

第1个字符表示【文件类型】(其中【-】表示文件、【d】表示目录、【l】表示软链接(也就是windows里面的快捷方式)、【b】表示设备)
第2、3、4个字符第2、3、4个字符表示文件【所属用户的权限】(user)
第5、6、7个字符第5、6、7个字符表示文件【所属用户组的权限】(group)
第8、9、10个字符第8、9、10个字符表示文件【所属其他用户的权限】(other)
第11个字符第11个字符表示【开启selinux的状态下创建的;即这个文件受到selinux的保护】

二、文件权限说明和操作

2.1、文件权限说明

        Linux是采用用户、用户组、其他用户组成的权限体系(简称:ugo);每个用户权限使用三个字符表示,共9个字符,一位都不能少,没有权限的字符使用空权限(-)表示,如下图所示:

权限字符串值表示内容说明
序号权限字符串值说明
r4全称(read)表示拥有文件的读取权限
w2全称(write)表示拥有文件的写入权限
x1全称(executable)表示拥有文件的可执行权限
-0表示空权限,表示没有文件的任何操作权限
ugo权限字符串值组合对照表
ugo权限字符串值组合ugo权限字符串组合值ugo权限说明
---0空权限
--x1执行权限
-w-2写入权限
--wx3写入和执行权限
r--4读取权限
r-x5读取和执行权限
rw-6读取和写入权限
rwx7读取、写入和执行权限

2.2、禁用SElinux权限

一文带你看懂 SELinux 是什么? - 红帽安全增强型 Linux(SELinux)由美国国家安全局(NSA)利用 Linux 安全模块(LSM)开发而成,是一种采用安全架构的 Linux 系统,能够让管理员更好地管控哪些人可以访问系统。icon-default.png?t=N7T8https://www.redhat.com/zh/topics/linux/what-is-selinux

        安全增强型 Linux(SELinux)是一种采用安全架构的 Linux® 系统,它能够让管理员更好地管控哪些人可以访问系统。它最初是作为 Linux 内核的一系列补丁,由美国国家安全局(NSA)利用 Linux 安全模块(LSM)开发而成。SELinux 于 2000 年发布到开源社区,并于 2003 年集成到上游 Linux 内核中。

        SELinux 定义了每个人对系统上的应用、进程和文件的访问控制。利用安全策略(一组告知 SELinux 哪些能访问,哪些不能访问的规则)来强制执行策略所允许的访问。 

        SElinux是负责Linux系统安全的,但是启用它后会变得很麻烦,安全和便利是冲突的;红帽系的系统(redhat、centos等)都默认都有这个机制且是启用的;一般来说这个内容我们是关闭的,有关安全方面的控制可以通过其他方法来控制。

 1、先查看Linux的SELinux权限

  1. # 查看Linux的Selinux状态命令:
  2. sestatus

 2、禁用Linux系统的SELinux

使用具有超级管理员权限的账户登录Linux,一般是root用户,使用如下命令进行打开修改:

  1. # 1、打开SELinux配置文件命令:
  2. vi /etc/selinux/config
  3. # 2、SELinux修改完成后重启Linux系统(只有重启系统后才会生效)重启系统命令是:
  4. reboot
  5. # 3、Linux重启完成后再查看一下SELinux的状态是否为禁用命令:
  6. sestatus

 

 

2.3、文件权限的修改

        我们在自己的账户下创建一个文件,默认权限是【-rw-r--r--.】(表示创建该文件的用户拥有文件的读取和写入权限,而该文件属于的用户组和其他用户只拥有读取权限,且该文件受selinux保护),如下图所示(创建一个名为newfile.txt的文件):

注意:我这里创建的文件权限没有最后的.是因为我已经把selinux禁用了。

文件权限的修改命令
序号文件权限修改命令示例
1chmod -权限字母 文件名称
  1. # 示例1、移除所有人读取newfile.txt文件的权限
  2. chmod -r newfile.txt     
  3. # 示例2、移除所有人写newfile.txt文件的权限
  4. chmod -w newfile.txt
  5. # 示例3、移除所有人执行newfile.txt文件的权限
  6. chmod -x newfile.txt     
  7.      
2chmod +权限字母 文件名称
  1. # 示例1、添加所有人读取newfile.txt文件的权限
  2. chmod +r newfile.txt     
  3. # 示例2、添加所有人写newfile.txt文件的权限
  4. chmod +w newfile.txt
  5. # 示例3、添加所有人执行newfile.txt文件的权限
  6. chmod +x newfile.txt     
  7.      
3chmod u±权限字母 文件名称
  1. # 示例1、添加文件所有者读取newfile.txt文件的权限
  2. chmod u+r newfile.txt   
  3.  
  4. # 示例2、移除文件所有者读取newfile.txt文件的权限
  5. chmod u-r newfile.txt 
  6. # 示例3、添加文件所有者读取和写入newfile.txt文件的权限
  7. chmod u+rw newfile.txt       
  8.      
  9. # 示例4、移除文件所有者读取和写入newfile.txt文件的权限
  10. chmod u-rw newfile.txt   
4chmod g±权限字母 文件名称
  1. # 示例1、添加文件所属组读取newfile.txt文件的权限
  2. chmod g+r newfile.txt   
  3.  
  4. # 示例2、移除文件所属读取newfile.txt文件的权限
  5. chmod g-r newfile.txt 
  6. # 示例3、添加文件所属读取和写入newfile.txt文件的权限
  7. chmod g+rw newfile.txt       
  8.      
  9. # 示例4、移除文件所属读取和写入newfile.txt文件的权限
  10. chmod g-rw newfile.txt   
5chmod o±权限字母 文件名称
  1. # 示例1、添加其他用户读取newfile.txt文件的权限
  2. chmod o+r newfile.txt   
  3.  
  4. # 示例2、移除其他用户读取newfile.txt文件的权限
  5. chmod o-r newfile.txt 
  6. # 示例3、添加其他用户读取和写入newfile.txt文件的权限
  7. chmod o+rw newfile.txt       
  8.      
  9. # 示例4、移除其他用户读取和写入newfile.txt文件的权限
  10. chmod o-rw newfile.txt   
6chmod 权限字母值 文件名称
  1. # 也可以直接使用权限数值设置文件访问权限
  2. # 示例1、给文件newfile.txt所有者添加读写权限、文件所属组添加读权限、其他用户添加读权限(-rw-r--r-- 644)
  3. chmod 644 newfile.txt
  4. # 示例2、给文件newfile.txt所有者添加读写权限、文件所属组添加读权限、其他用户添加读权限(-rw-rw--r-- 664)
  5. chmod 664 newfile.txt
  6. # 示例3、给目录testdir所有者添加读写执行权限、文件所属组添加读和执行权限、其他用户添加读和执行权限(-rwxr-xr-x 755)
  7. chmod 755 testdir

三、文件的用户和用户组

        Linux系统也是具有用户和用户组的概念,用户和用户组可以有三种关系【一对一、一对多、多对多】(即:一个用户对应一个用户组;一个用户可以对应多个用户组,同样一个用户组也可以对应多个用户)

3.1、用户管理

Linux中的用户
序号操作用户命令说明
1useradd 用户名称【useradd coffeemilk】表示创建coffeemilk用户
2passwd 用户名称【passwd coffeemilk】表示给coffeemilk用户设置或修改密码
3id 用户名称【id coffeemilk】表示查看coffeemilk用户是否存在
4lchage -l 用户名称

【lchage -l coffeemilk】表示查看coffeemilk用户状态信息

(注意:这里命令中的是小写字母l,不是数字1或者字母i)

5usermod -L 用户名称

【usermod -L coffeemilk】表示锁定用户coffeemilk,不允许登录系统

注意:如果该用户在执行锁定命令前已经登录,那么已经登录的还是可以正常操作;但是退出后就无法登录了

6usermod -U 用户名称【usermod -U coffeemilk】表示解除用户coffeemilk的锁定状态,可以登录系统
7userdel -r 用户名称【userdel -r coffeemilk】表示删除用户及其对应相关的配置内容

3.2、用户组管理

Linux中的用户组
序号操作用户组命令说明
1groupadd 用户组名称【groupadd testgroup】表示添加testgroup用户组
2cat /etc/group表示查看当前有哪些用户组,最新添加的用户组在该文件的最下面
3usermod -g 用户组名称 用户名称

【usermod -g testgroup coffeemilk】表示将用户coffeemilk的主组coffeemilk强制修改为testgroup

(注意:如果该用户拥有多个组,只需要使用该命令即可指定为一个主组)

4usermod -G 用户组名称 用户名称【usermod -G devgroup coffeemilk】表示给用户coffeemilk在添加一个用户组devgroup
5useradd -g 用户组名称 用户名称【useradd -g devgroup testuser】表示在创建用户testuser时指定用户组为devgroup
6groupmod -n 新用户组名称 旧用户组名称【groupmod -n dev devgroup】表示将旧用户名称devgroup修改为新的名称dev
7groupdel 用户组名称

【groupdel testgroup】表示删除用户组testgroup

(注意:删除用户组的时候需要先将使用了该用户组的用户修改到其他用户组,才能够删除成功)

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/946368
推荐阅读
相关标签
  

闽ICP备14008679号