首页 > 系统相关 >Linux权限深入

Linux权限深入

时间:2024-11-19 17:57:34浏览次数:1  
标签:文件 用户 chmod 所有者 深入 Linux 权限 目录

Linux 是一个多用户、多任务的操作系统,其权限管理系统是保障系统安全性的重要组成部分。

通过合理的权限设置,Linux 能有效地控制用户对文件和目录的访问,防止恶意操作。

 

1. Linux权限基础

1) 文件权限概述

Linux系统中每个文件或目录都与三组权限相关。

  • 所有者(Owner):文件的创建者,默认情况下对文件拥有完全控制权。
  • 所属组(Group):文件所属的用户组,组内用户共享特定权限。
  • 其他用户(Others):除所有者和所属组外的其他用户。

2) 文件权限

每个文件或目录的权限可以用一个 10 位字符串表示,如:

[文件类型][所有者权限][所属组权限][其他人权限]

-rw-r--r--

drwxr-xr--

 

 

说明:

 第1位:[文件类型]

  •  - :普通文件
  •  d :目录
  •  l  :符号链接
  •  b :块设备文件
  •  c :字符设备文件
  •  s :套接字
  •  p :命名管道

 

  第2~10位:权限

  2~4位:[所有者权限] == 被分配的用户;5~7位:[所属组权限] == 该组下的用户的权限;8~10位:[其他人权限] == 非所有者或非该组下的用户;

  •   r  (read):读取文件或列出目录内容;
  •  w  (write):修改文件或创建、删除目录内容;
  •  x  (execute):执行文件或进入目录;

 如:

-rw-r--r--:普通文件,所有者有读写权限,所属组和其它用户只有读取权限。

drwxr-xr-x:目录,所有者有读、写、执行权限,组和其他用户有读和执行权限。

说明: [drwxr-xr-x]为目录,所有者有读、写、执行权限,组和其他用户有读和执行权限。

  •   [2或19]等值,为链接数。可以理解为它自身目录和父目录。
  •   [root或user]为该目录的所有者。
  •   [root或user]为该目录的所属组。
  •   [4096]为该目录占据的磁盘空间大小,单位为字节。
  •   [Aug 14 22:09] 为时间。
  •   [static / user] 文件目录。 

 

注意:在使用命令操作时,如:cp-拷贝、zip打包时。使用 用户userA 去文件A去打包文件,通过其他用户的读或执行权限是不可以的,必须有写的权限。所以在设置权限时其他用户是不会给予写的权限。


 

 

2. 常见权限管理命令

1) 查看命令:ls -l

通过 ls -l 名称可以查看文件和目录的权限信息:

ls -l usr

或 

ls -l /usr/home
ls -l /usr
输出:
total 172
drwxr-xr-x   2 root root 69632 Nov 19 06:48 bin

等等...

说明:

 权限:drwxr-xr-x

 硬链接数:2

 所有者:root

 所属组:root

 文件大小:69632字节

 修改时间:Nov 19 06:48

 文件名:bin

注意:

注意:
   ll 命令查看时可能会出现
ll: command not found    的情况。
使用 ls 看看。配合使用。

 

2) 修改权限:chmod

chmod 命令用于更改文件或目录的权限,支持两种模式。

a) 数字模式

每种权限使用一个数字表示:

r = 4,w = 2, x = 1将权限相加得出最终值。

数字模式格式为 chmod [权限值] 文件名:

chmod [权限值] 文件名

chmod 755 wenjian.txt

说明:

 所有者:7(4+2+1,读、写执行权限)

 所属组:5(4+1,读、执行权限)

 其他用户:5(4+1,读、执行权限)

b) 符号模式

符号模式格式为 chmod [who][operator][permission] 文件名:

 who:u(所有者),g(所属组),o(其他用户),a(所有用户)。

 operator:+(添加权限),-(移除权限),=(设置为指定权限)

 permission:r,w,x。

如:

chmod [who][operator][permission] 文件名

chmod u+x wenjian.txt # 给所有者添加文件执行权限
chmod g-w wenjian.txt # 移除所属组的写权限
chmod a=r wenjian.txt # 给所有用户只读

 

3) 修改所有者和组:chmod 和 chgrp

a) 修改所有者

chmod [新所有者] 文件名

chmod [新所有者] 文件名
chmod userA wenjian.txt

 

b) 修改所属组

chgrp [新组名] 文件名

chgrp [新组名] 文件名
chgrp groupA wenjian.txt

 

c) 同时修改所有者和组

 chown [新所有者]:[新组名] 文件名

chown [新所有者]:[新组名] 文件名
chown userA:groupA wenjian.txt

 

4) 特殊权限

a) SUID(Set User ID)

  • 适用于可执行文件。
  • 文件在执行时临时以文件所有者的权限执行。

设置方式与权限显示:

设置:
chmod u+s file

显示:
-rwsr-xr-x

b) SGID(Set Group ID)

  • 适用于可执行文件和目录
  • 文件在执行时以所属组权限运行;目录下新文件继承组属性。

设置方式与权限显示:

设置:
chmod g+s file 或 目录

显示:
-rwxr-sr-x

 

c) Sticky Bit

  • 仅适用于目录
  • 目录中的文件只能被其所有者删除或修改。

设置方式与权限显示:

设置:
chmod +t 目录

显示:
drwxrwxrwt

 

3. 权限管理实战

场景一:共享目录

在开发环境中,团队成员可能共享文件。通过设置 SGID 和 Sticky Bit,可以实现安全的文件共享。

mkdir /shared    # 创建目录shared    
chmod 2770 /shared    # 权限模式 更改权限,其中 2 是特殊权限位,770 是标准权限位。
chgrp developers /shared    # 更改目录所属组developers 

目录权限为:drwxrws---。

组内可以共享文件,但无法删除其他人的文件。

 

场景二:防止误删

为了保护重要文件,可以移除写权限:

# 为文件移除写权限
chmod a-w wenjian    

 

如果需要编辑文件,临时添加权限:

# 为文件临时添加权限
chmod u+w wenjian   

 

场景三:设置web服务器目录权限

Web服务器通常运行在特定用户(如:www-data)下,设置合理的权限非常重要。

chmod -R www-data:www-data /var/www/html

# www-data:www-data :新的所有者:新的所属组


chmod -R 755 /var/www/html

# -r:递归选项,表示递归地更改目录及其所有子目录和文件的所有者和所属组。
# 755:权限模式。
# /var/www/html:要更改所有者和所属组的目录路径。

确保所有者可以完全控制文件。

其他用户只能读取和执行文件。

 

4. 总结与建议

1) 最小权限原则:只授予必要的权限,避免开放过度。

2) 合理分组:将用户分组以简化权限管理。

3) 定期审理:定期检查权限,及时清理不必要的权限。

4) 特殊权限谨慎使用:SUID、SGID和Sticky Bit等特殊权限可能带来安全隐患,合理配置。

 


 

标签:文件,用户,chmod,所有者,深入,Linux,权限,目录
From: https://www.cnblogs.com/warmNest-llb/p/18555338

相关文章

  • Linux系统学习笔记:第一天
    Linux:第一天笔记引言为什么选择LinuxLinux是一个操作系统,开源的,免费的,是一个基于文件的操作系统,所有的一切都是针对文件进行的。内部是基于一个控制器体积一般比较小(决定了嵌入式产品,它的硬件资源比较紧缺)对功耗的要求特定的应用越来越智能化Linux的指令起步......
  • 【搬运】Linux Command Syntax – Arguments & Options Explained
    本文摘自:https://thenerd.academy/linux-command-syntax-arguments-options-explained/ ThislessonisallabouttheLinuxcommandsyntax!We’regoingtoexplorehowtocustomizethebehaviorofourcommandsbyusingargumentsandoptions.So,fastenyour......
  • Linux系统启动慢/无法启动的排查方法
    Linux系统启动慢或无法启动的问题,通常需要综合考虑硬件、内核、服务配置等多方面因素进行排查。以下是详细的排查步骤和方法:1.硬件检查确认硬件状态:检查硬盘、内存、CPU等是否正常,特别是硬盘是否存在坏道(使用smartctl检测)。smartctl-a/dev/sdX拔插外部设备:移除多余......
  • 从0开始学习Linux——Shell编程详解【01】
    期目录:从0开始学习Linux——简介&安装从0开始学习Linux——搭建属于自己的Linux虚拟机从0开始学习Linux——文本编辑器从0开始学习Linux——Yum工具从0开始学习Linux——远程连接工具从0开始学习Linux——文件目录从0开始学习Linux——网络配置从0开始学习Linux——防......
  • 【Linux】线程ID与互斥、同步(锁、条件变量)
      ......
  • linux学习day02_linux文件权限以及目录配置
    1、文件拥有者:文件的主人  群组:文件的共享者组成的集合    其他人:others 在我们Linux系统当中,默认的情况下,所有的系统上的帐号与一般身份使用者,还有那个root的相关信息,都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow这个文件下。此......
  • SpringCloud SaToken整合微服务 集成Redis 网关路由权限拦截 服务间内部调用鉴权
    介绍作为API网关,通常负责路由、负载均衡、安全控制等功能。进行统一鉴权的做法意味着将所有微服务的认证和授权逻辑集中到网关层,而不是每个微服务单独实现。这样做有许多好处,微服务只关心核心业务逻辑,不需要处理身份验证、权限验证等安全问题,减少了开发人员的负担。网......
  • 用户登录-路由和权限校验
    绿色框框是前端,黄色框框是后端。一开始不存在token,若路由存在白名单中,比如login页面,此时会将app.vue中的替换成login组件。因为我们在路由中定义了login组件。......
  • 深入解析UML活动图:概念、要素及应用场景
    目录什么是UML活动图UML活动图的构成要素1.活动2.控制流3.起始节点和终止节点4.分支和合并5.并行与同步6.对象流UML活动图的绘制方法活动图的实际应用场景活动图与流程图的对比UML活动图的最佳实践总结什么是UML活动图UML活动图(ActivityDiagram)是一种用于表示......
  • Linux常用命令之tar命令详解
    tar命令详解tar(TapeArchive)是Unix和Linux系统中一个非常强大的文件归档工具,用于创建、提取和管理归档文件。归档文件可以包含一个或多个文件和目录,常用于备份、存档和传输数据。tar支持多种压缩方式,如gzip、bzip2和xz。基本语法tar[选项][归档文件][文件或......