Linux下文件权限与安全

1.概述

1.1为什么 要给文件设置权限?

为了防止未经授权的用户来访问你的文件,可以在文件和目录上设置权限。还可以设定文件 在创建时所具有的缺省权限:这些只是整个系统安全问题中的一小部分。本文只是简单介绍一下文件的权限与安全。

1.2文件 有哪些 属性?

一个文件包含以下信息,使用ls --l命令,可以查看文件的相关信息:

·文件的权限;

·文件的属主;

·文件的属主所在的缺省组;

·文件的更新时间;

·文件名;

1.3文件 的类型

d 目录。

l 符号链接(指向另一个文件)。

s 套接字文件。

b 块设备文件。

c 字符设备文件。

p 命名管道文件。

  • 普通文件,或者更准确地说,不属于以上几种类型的文件。

2.文件的 权限

2.1文件的权限分类

一个文件一经 创建,就具有三种访问方式:

  1. 读(r),可以显示该文件的内容。

  2. 写(w),可以编辑或删除它。

  3. 执行(x),如果该文件是一个s h e l l脚本或程序,可以执行该脚本。

按照所针对的用户,文件的权限可分为三类:

  1. 文件属主,创建该文件的用户。

  2. 同组用户,拥有该文件的用户组中的任何用户。

  3. 其他用户,即不属于拥有该文件的用户组的某一用户。

2.2 权限

在上一节中,使用ls --l查看文件的信息,第一项信息是一个长度为10的字符串,这个字符串便是文件的权限设置,其具体含义为:

第一个字符:表示文件的类型;

接下来的三个字符:表示文件属主的权限;

再接下来的三个字符:表示同组用户的权限;

最后三个字符:表示其他用户的权限;

其中:r 表示读权限;w表示写权限;x表示可执行权限;

2.2.1 创建文件

使用命令 touch myfile 创建一个文件,使用ls --l查看该文件的信息:

该文件的权限表示:文件类型属于普通文件,其属主具有读写权限、同组用户具有读写权限、其他用户只有可读权限;值得一提的是,在用户创建文件时,系统默认不会给文件设置执行权限,必须手动修改这一权限

2.2.2 修改文件权限

对于属于你的文件,可以按照自己的需要改变其权限位的设置。可以使用chmod命令来 改变文件权限位的设置。

chmod命令的一般格式为:

chmod [who] operator [permission] filename

其中:

who的含义是:

u 文件属主权限;

g 同组用户权限;

o 其他用户权限;

a 所有用户(文件属主、同组用户及其他用户 )。

operator的含义:

  • 增加权限;
  • 取消权限;

= 设定权限;

permission的含义:

r 读权限;

w 写权限;

x 执行权限;

s 文件属主和组set-ID;

t 粘性位*;

l 给文件加锁,使其他用户无法访问。

为file1的属主添加可执行权限:

chmod u+x file1

为file1的同组用户添加可执行权限:

chmod g+x file1

为其他用户添加写权限:

chmod o+w file1

2.2.3 chmod命令的绝对模式

chmod命令绝对模式的一般形式为:

chmod [mode] file

其中mode是一个八进制数。在绝对模式中,权限部分有着不同的含义。每一个权限位用一个八进制数来代表,如表所示:

|----------|----------|----------|
| 文件属主 | 同组用户 | 其他用户 |
| 0400 --r | 0040 --r | 0004 --r |
| 0200 --w | 0020 --w | 0002 --w |
| 0100 --x | 0010 --x | 0001 --x |

如:为属主赋予可读可写可执行权限,其mode值为,0400+0200+0100 = 0700;

常见的777权限就是对所有用户否赋予所有权限;

Chmod 777 file1

相关推荐
小成202303202653 小时前
Linux高级02
linux·开发语言
mounter6253 小时前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
++==3 小时前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
特长腿特长4 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
zzzyyy5384 小时前
Linux环境变量
linux·运维·服务器
pluvium274 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
无级程序员4 小时前
centos7 安装 llvm-toolset-7-clang出错的问题解决
linux·centos
CHHC18805 小时前
NetCore树莓派桌面应用程序
linux·运维·服务器
云栖梦泽6 小时前
Linux内核与驱动:9.Linux 驱动 API 封装
linux·c++
si莉亚7 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源