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

相关推荐
bugtraq20212 分钟前
XiaoMi Mi5(gemini) 刷入Ubuntu Touch 16.04——安卓手机刷入Linux
linux·运维·ubuntu
CodeWithMe1 小时前
[ Vim ] 常用命令 and 配置
linux·编辑器·vim
DC_BLOG1 小时前
Linux-GlusterFS进阶分布式卷
linux·运维·服务器·分布式
cookies_s_s1 小时前
Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
linux·运维·服务器·数据结构·c++·算法·哈希算法
丁劲犇2 小时前
碳基生物的悲歌-DeepSeek思考实现Linux动态库递归收集工具
linux·递归·deepseek·ldd
zhouwu_linux2 小时前
MT7628基于原厂的SDK包, 修改ra1网卡的MAC方法。
linux·运维·macos
2401_897930062 小时前
linux系统如何配置host.docker.internal
linux·docker·eureka
诶尔法Alpha2 小时前
Linux上使用dify构建RAG
linux·运维·服务器
熬夜苦读学习3 小时前
Linux文件系统
linux·运维·服务器·开发语言·后端
沐千熏4 小时前
Liunx(CentOS-6-x86_64)系统安装MySql(5.6.50)
linux·mysql·centos