热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

linux下的权限问题,Linux中的权限发布啦!

导读在linux系统下,一切东西都可以看做是文件。针对一个文件而言,不同的用户对它有不同的权限。试想一下,假如有一个系统的配置文件

导读

在linux系统下,一切东西都可以看做是文件。针对一个文件而言,不同的用户对它有不同的权限。试想一下,假如有一个系统的配置文件,普通用户都可以对它进行修改,那么这将是多麽可怕的事情。所以,我们将根据不同的文件访问者设置不同的权限。

一、Linux中的权限

在linux中,我们可以将文件的访问者分为三类,针对这三类访问者我们可以对他们设置不同的权限。

1、文件访问者的分类

文件和文件目录的所有者:u(User)。

文件和文件目录的所有者所在的组中的用户:g(Group)。

其他用户:o(Others)。

2、文件的基本权限

读(r):具有读取文件内容的权限;对目录来说,具有浏览目录信息的权限。

写(w):具有修改文件的权限;对目录来说,具有删除移动目录内文件的权限。

执行(x):具有执行文件的权限,前提是文件必须可执行;对目录来说,具有进入目录的权限。

SouthEast

3、修改文件的权限

3.1、修改文件访问权限

命令:chmod [参数] 权限 文件名

参数:R表示递归的修改目录中所有文件的权限

v表示显示整个修改过程

chmod命令有两种修改文件权限的方法:

第一种:针对某一类访问者设定权限,

命令格式:chmod 用户表示符 +/-/= 文件权限 文件名

+表示为用户增加文件权限,-表示取消用户的权限,=表示赋予用户这个权限。

用户符号:u表示所有者,g表示所有者所在的组,o表示其他人,a表示所有人。

SouthEast

第二种方法就是使用三位数的八进制:

命令格式: chmod xxx(权限) 文件名

其中从左向右,第一个x表示属主的权限,取值是0~7,0就表示”—”,7表示”rwx”。

第二个x表示属组的权限,第三个x表示其他人的权限。

SouthEast

3.2、更改文件所有者

命令:chown [参数] 用户名 文件名

参数:R表示递归的修改目录中所有文件的所有者

v表示显示整个修改过程

例1:

SouthEast

例2:

SouthEast

3.3、更改文件所有者所在的组

命令:chgrp [参数] 用户名 文件名

参数:R表示递归的修改目录中所有文件的所有者

v表示显示整个修改过程

例1:

SouthEast

例2:

SouthEast

4、查看或修改文件掩码

有没有想过,当我们新创建一个文件或者目录的时候,它的默认权限是什么?我们可不可以按照自己的意愿来设置呢?

linux中提供了umask这个命令来设置默认权限。除此之外,umask还可以查看文件掩码。文件掩码就跟子网掩码是一样的道理。

预设权限=存取权限-文件掩码

超级用户默认掩码是0022,也就是生成文件后文件权限是:rwx r-x r-x。

普通用户默认掩码是0002,也就是生成文件后文件权限是:rwx rwx r-x。

命令格式:umask 权限值

例:设置文件掩码0000,则新创建文件或目录后的权限是rwxrwxrwx。

SouthEast

SouthEast

注意,不是上面的例子错了,而是因为test文件是普通文件,不具备可执行的权限,所以在创建新文件的时候应该是:

SouthEast

例2:

SouthEast

二、权限粘滞位

1、为什么要有权限粘滞位

目录的可执行权限:

目录的可执行权限表示你是否可以在这个目录下执行命令。如果目录没有x权限,则就无法对目录执行任何命令,甚至无法cd进入目录,即使你仍然对目录有r权限。目录的rw权限表示的是你可以对目录里面的文件进行读写,因此对于任何访问者而言,只要他对一个目录有w权限,那么他就能删除这个目录里面的文件。

这样的的话,那文件的权限是不是就成摆设了,只要对一个目录有w权限的话,任何用户都可以随意删除目录里面的文件,针对linux这种多用户的操作系统而言,这是我们绝对不允许的。因此linux里面通过权限粘滞位来解决这种情况。

2、什么是权限粘滞位

权限粘滞位是针对目录而言的,当目录被设置了权限粘滞位之后,即便用户对该目录有写入权限,也不能删除这个目录中其他用户的文件数据。而是只有该文件的所有者和root用户才有权删除。设置了权限粘滞位之后,就保持了一种平衡,允许各用户在目录中任意的写入删除数据,但是不能删除其他用户的数据。

设置了权限粘滞位的目录,它的属性中其他用户的可执行权限x将会变成t。

3、怎么设置权限粘滞位

命令:chmod o+t 目录名

例:

SouthEast



推荐阅读
  • 如何在Linux系统中实现Windows风格的桌面环境:将Ubuntu 18.04定制为Windows主题界面
    如果您是从Windows转到Linux系统的用户,可能会觉得默认的Ubuntu主题和桌面环境缺乏吸引力和可定制性。尤其是对于习惯了Windows风格的任务栏和主题的用户,Ubuntu 18.04的橙色主题可能显得过于简洁。为了提升用户体验,可以通过安装特定的桌面环境和主题来实现类似Windows的界面效果。本文将详细介绍如何在Ubuntu 18.04中配置和定制桌面环境,使其具备Windows风格的外观和功能。 ... [详细]
  • `chkconfig` 命令主要用于管理和查询系统服务在不同运行级别中的启动状态。该命令不仅能够更新服务的启动配置,还能检查特定服务的当前状态。通过 `chkconfig`,管理员可以轻松地控制服务在系统启动时的行为,确保关键服务正常运行,同时禁用不必要的服务以提高系统性能和安全性。本文将详细介绍 `chkconfig` 的各项参数及其使用方法,帮助读者更好地理解和应用这一强大的系统管理工具。 ... [详细]
  • Windows环境下RabbitMQ安装详尽指南
    Windows环境下RabbitMQ安装详尽指南 ... [详细]
  • 在VS2013中编译FFMPEG时遇到的问题及解决方案
    在使用VS2013编译旧版本FFMPEG库时遇到了一些问题,因为官方并未提供预编译的LIB和DLL文件。由于对Linux环境不熟悉,只能在Windows环境下进行配置和编译。具体步骤如下:首先,下载FFMPEG的源代码;然后,安装必要的编译工具和依赖项;接着,配置Visual Studio 2013的项目设置;最后,解决编译过程中出现的各种错误和警告。通过这些步骤,最终成功编译出所需的FFMPEG库文件。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 在嵌入式Linux系统中,性能低下通常由CPU、内存和I/O三个关键因素引起。为了有效提升系统性能,首先需要识别并定位性能瓶颈。通过综合分析这些瓶颈,可以采取针对性的优化措施,如调整内核参数、优化算法和改进数据结构等,从而显著提高系统的整体性能。 ... [详细]
  • MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案
    MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案 ... [详细]
  • 如何在Ubuntu 16.04 LTS中切换文件与文件夹的可见性
    在Ubuntu 16.04 LTS中,用户可以通过以下方法切换文件和文件夹的可见性:1. **图形界面快捷键**:使用 `Ctrl + H` 快捷键可以在当前文件管理器窗口中快速切换文件和文件夹的隐藏状态。2. **编辑偏好设置**:通过文件管理器的“编辑”菜单选择“偏好设置”,然后勾选“显示隐藏和备份文件”选项,可以永久性地显示所有隐藏文件和文件夹。这一设置适用于需要频繁访问隐藏文件的用户。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • Linux Shell变量初探:初始值解析与使用指南
    本文探讨了Linux Shell中变量的基本概念及其在BASH中的应用。变量是用于存储可变数据的标识符,能够代表不同的值。文章详细介绍了BASH shell的主要优势,包括强大的命令编辑能力、自动补全功能、命令别名设置、作业控制以及前后台任务管理。此外,还涵盖了编程脚本编写和通配符的使用方法,为初学者提供了全面的指导。 ... [详细]
  • 求助:在CentOS 5.8系统上安装PECL扩展遇到问题
    在 CentOS 5.8 系统上尝试安装 APC 扩展时遇到了问题,具体表现为 PECL 工具无法正常工作。为了确保顺利安装,需要解决 PECL 的相关依赖和配置问题。建议检查 PHP 和 PECL 的版本兼容性,并确保所有必要的库和开发工具已正确安装。此外,可以尝试手动下载 APC 扩展的源代码并进行编译安装,以绕过 PECL 工具的限制。 ... [详细]
  • 在Java编程中,`AbstractClassTest.java` 文件详细解析了抽象类的使用方法。该文件通过导入 `java.util.*` 包中的 `Date` 和 `GregorianCalendar` 类,展示了如何在主方法 `main` 中实例化和操作抽象类。此外,还介绍了抽象类的基本概念及其在实际开发中的应用场景,帮助开发者更好地理解和运用抽象类的特性。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有