热门标签 | 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命令来告诉系统该用户具备这样的权限。


推荐阅读
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 本文介绍了如何创建和运行一个简单的 Bash 脚本,包括创建脚本文件、编写输出指令、赋予执行权限和运行脚本的基本步骤。 ... [详细]
  • 在 Mac 上配置 NDK
    本文详细介绍了如何在 Mac 上配置 Android NDK,包括设置环境变量和解决常见问题的方法。 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • 本文介绍了 Linux 系统中用于定期执行任务的 cron 服务及其配置方法。通过 crond 和 crontab 命令,用户可以轻松地安排系统和用户级别的周期性任务。 ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 如何在Linux系统中实现Windows风格的桌面环境:将Ubuntu 18.04定制为Windows主题界面
    如果您是从Windows转到Linux系统的用户,可能会觉得默认的Ubuntu主题和桌面环境缺乏吸引力和可定制性。尤其是对于习惯了Windows风格的任务栏和主题的用户,Ubuntu 18.04的橙色主题可能显得过于简洁。为了提升用户体验,可以通过安装特定的桌面环境和主题来实现类似Windows的界面效果。本文将详细介绍如何在Ubuntu 18.04中配置和定制桌面环境,使其具备Windows风格的外观和功能。 ... [详细]
  • Linux Shell变量初探:初始值解析与使用指南
    本文探讨了Linux Shell中变量的基本概念及其在BASH中的应用。变量是用于存储可变数据的标识符,能够代表不同的值。文章详细介绍了BASH shell的主要优势,包括强大的命令编辑能力、自动补全功能、命令别名设置、作业控制以及前后台任务管理。此外,还涵盖了编程脚本编写和通配符的使用方法,为初学者提供了全面的指导。 ... [详细]
  • 1. 设置用户密码:使用 `slappasswd` 工具生成加密密码,确保账户安全。具体步骤如下:输入命令 `slappasswd -s NewPassword`,系统将提示重新输入新密码,并生成加密后的哈希值 {SSHA}xxxxxxxxxxxxxxxxx。2. 编写配置文件:编辑 `vildapus` 配置文件,添加必要的用户账户信息,以确保新用户能够顺利登录系统。 ... [详细]
  • 在CentOS上部署并使用FFmpeg多媒体处理工具
    最近在进行音频处理时需要用到FFmpeg,本文将详细介绍如何在CentOS系统上部署并使用这一强大的多媒体处理工具。首先,从官方网站下载FFmpeg的最新版本,然后通过Xftp工具将下载的压缩包(如ffmpeg-4.3.1.tar.xz)传输到服务器上。接下来,解压文件并按照官方文档进行编译安装。安装完成后,可以通过命令行工具验证FFmpeg是否成功安装,并开始进行多媒体文件的转换和处理。此外,文章还将介绍一些常用的FFmpeg命令和参数,帮助用户快速上手。 ... [详细]
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社区 版权所有