热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux入门之文件权限的管理(一)

对于系统中的用户及用户组有权限的限制,同样系统中各种文件也有其相应的权限。文件权限是系统最底层安全设定的方法,它限制了用户及用户组对文件的使用权利&#x

对于系统中的用户及用户组有权限的限制,同样系统中各种文件也有其相应的权限。文件权限是系统最底层安全设定的方法,它限制了用户及用户组对文件的使用权利,只允许用户做相应操作。那么系统是怎样实现对权限的分配和管理的?

一、文件和目录的属性

  1. 查看文件和目录的属性
    ls -l file 用来查看文件的属性,我们用 ls -l 查看目录属性,发现查到的是该目录中的子目录。这时我们可以用 ls -ld test 查看目录的属性。在这里插入图片描述
  2. 文件和目录属性各部分的含义

d | rwxr-xr-x | 2 |root | root | 6 | Mar 31 08:20 | test

(1)d 表示文件的类型
使用 file file/dir 命令可以查看文件或目录的类型 ,以下几种是常用的类型

  • l 快捷方式 (软连接)
  • d 目录
  • " - " 纯文本或空文件
  • b 块设备
  • c 字符设备
  • s 套接字 程序的一扇窗,可进入程序的内部,并进行交互
  • p 管道设备

(2) rwxr-xr-x 文件权限设定
文件的权限有三种,分别是读、写和执行;而对于文件面向的用户也有三种,分别是文件所有人(u)、所属组(g)和其他用户(o)。

  • u:文件拥有者可以做什么操作
  • g:文件所有组可以做什么操作
  • o:其他人对文件可以做什么操作

(3)一个数字

  • 对文件:文件内容被记录的次数(文件硬连接个数)
  • 对目录:目录中子目录的个数

(4)文件的所有人
(5)文件的所有组
(6)一个数字

  • 对文件:文件的大小
  • 对目录:目录中子文件元数据的大小

(7)文件内容被修改的时间
(8)文件或目录的名称

二、所有人和所有组的更改

  1. 更改所有人

chown username file|dir ##改变文件/目录所有人
chown user:group file|dir ##改变所有人和所有组,user和group之间也可以用"."
chown -R user:group dir ##改变该目录及子目录的所有人和所有组

在这里插入图片描述
2. 更改所有组

chgrp groupname file|dir ##改变所有组
chgrp -R group dir ##改变该目录下及子目录下的所有组

在这里插入图片描述
注意:在使用chgrp username test 时,我们会发现只有该目录发生改变,该目录下的所有文件的所属组均未改变。因此我们可以利用 -R ,对目录下的文件一改到底。
三、权限的更改

  1. 认识权限
    (1)读 r
    对文件:是否可以查看文件中的内容
    对目录:是否可以查看目录中有什么子文件或子目录
    (2)写 w
    对文件:是否可以改变文件里面记录的字符
    对目录:是否可以对目录中子目录或子文件的元数据进行更改(元数据是指数据的属性)
    (3)执行 x
    对文件:是否可以通过文件名称调用文件内记录的程序
    对目录:是否可以进入目录
  2. 权限更改的方式
    (1)chmod更改权限

chmod (o|g|u)+rwx file|dir ##赋予权力
chmod (o|g|u)-rwx file|dir ##撤销权力
chmod ug-r file|dir ##撤销所有人和所有组读的权利
chmod +r file|dir ##更改所有位
chmod -r file|dir
chmod +x file|dir
chmod -x file|dir
chmod +w file|dir ##只对所有人赋予权限
chmod o=r-x file|dir
chmod -R o=rw dir ##改变该目录下子目录的权限

(2)umask更改权限
umask 系统建立文件是默认保留的权利

umask 077 ##临时设定系统预留权限为077

注意:umask只是临时修改权限的,退出terminal后权限未改变
在这里插入图片描述
(3)永久设置用户的权限

vim /etc/profile ##修改系统文件中的umask
vim /etc/bashrc ##修改shell配置文件中的umask
source /etc/profile ##让更改立即生效
source /etc/bashrc

在这里插入图片描述
注意:在执行完以上命令后,新建文件并查看它的权限,发现并未更改,我们需要使用sudo命令来告诉系统该用户具备这样的权限。


推荐阅读
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 16.04 系统上配置 Qt 5.5 的交叉编译环境,特别针对 i.MX6 平台进行了优化设置。内容涵盖从基本的软件安装到高级配置的全过程。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 本文介绍了编程语言的基本分类,包括机器语言、汇编语言和高级语言的特点及其优缺点。随后详细讲解了Python解释器的安装与配置方法,并探讨了Python变量的定义、使用及内存管理机制。 ... [详细]
  • Ubuntu 22.04 安装搜狗输入法详细指南及常见问题解决方案
    本文将详细介绍如何在 Ubuntu 22.04 上安装搜狗输入法,并提供常见问题的解决方法。包括下载安装包、更新源、安装依赖项等步骤。 ... [详细]
  • 在 Mac 上配置 NDK
    本文详细介绍了如何在 Mac 上配置 Android NDK,包括设置环境变量和解决常见问题的方法。 ... [详细]
  • 在 Go 开发环境中,通过使用 iTerm 和 Oh My Zsh,可以显著提升终端操作的效率和体验。Oh My Zsh 是一个强大的 Zsh 配置管理框架,提供了丰富的插件支持,如代码高亮、自动补全和多种编程语言支持,同时还拥有众多美观的主题,使终端界面更加个性化和高效。Zsh 作为一种高度可定制的 shell,不仅适用于交互式应用,还可用作脚本解释器,集成了 bash、ksh 和 tcsh 等其他 shell 的诸多优点,并具备独特的功能特性。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • 本文探讨了在不解压的情况下,如何高效地从包含文本文件的.gz压缩文件中查找特定字符串的方法。通过利用特定的工具和技术,可以在保持文件压缩状态的同时,快速定位和检索所需信息,提高处理大规模数据集时的效率和性能。 ... [详细]
  • 如何利用Git实现高效的多人协作开发(远程仓库应用实例)——Ares Zhao
    Git作为一种分布式版本控制系统,每位开发者都是本地仓库的管理者。然而,为了实现团队间的高效协作,需要将本地的开发成果推送至远程共享仓库,以便其他成员能够同步更新。本文将以GitHub为例,详细介绍如何通过设置和使用远程仓库,实现多人协作开发的最佳实践。 ... [详细]
author-avatar
第一城的呀呀_836
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有