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

相关推荐
Yana.nice5 分钟前
openssl将证书从p7b转换为crt格式
java·linux
AI逐月10 分钟前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
小白跃升坊38 分钟前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey1 小时前
【Linux】线程同步与互斥
linux·笔记
舰长1151 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
zmjjdank1ng1 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.1 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
VekiSon2 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
zl_dfq2 小时前
Linux 之 【进程信号】(signal、kill、raise、abort、alarm、Core Dump核心转储机制)
linux
Ankie Wan2 小时前
cgroup(Control Group)是 Linux 内核提供的一种机制,用来“控制、限制、隔离、统计”进程对系统资源的使用。
linux·容器·cgroup·lxc