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

相关推荐
Ruiery2 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
欧米欧3 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery3 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
qetfw4 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
逆风的蚂蚁5 小时前
linux服务器性能调整怎么落地?我把 CPU 调度、I/O 优先级和内核参数这几个旋钮都拧了一遍
linux·运维·服务器
沫璃染墨9 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
AI_Lab0111 小时前
宝塔用了两年,有没有必要换成轻量方案?
linux·运维·服务器
by2099911 小时前
Linux GDB 调试与 CGDB 使用
linux·运维·服务器·经验分享
星恒随风11 小时前
Linux网络编程:应用层协议究竟是什么?从网络计算器到TCP Socket抽象基类完整实现
linux·网络·笔记·tcp/ip
feng_you_ying_li14 小时前
linux之网络层
linux·运维·网络