Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux权限和属组管理深入解析

Linux权限和属组管理深入解析

原创
作者头像
炒香菇的书呆子
修改于 2024-08-02 05:54:00
修改于 2024-08-02 05:54:00
2570
举报
文章被收录于专栏:香菇带你学Linux香菇带你学Linux

Linux中的权限与属组管理

引言

Linux 是一种广泛使用的开源操作系统,它基于 Unix 的设计理念,强调安全性、稳定性和灵活性。在 Linux 中,文件系统的管理和访问控制是非常关键的概念,它们通过文件权限和属组管理得以实现。本文将详细介绍 Linux 中的权限和属组管理机制,以及相关的命令和实践技巧。

Linux 文件系统简介

Linux 文件系统是一个层次结构,根目录 / 是整个文件系统的起点。在这个树形结构中,每个目录都是一个节点,每个文件都位于某个目录之下。以下是几个常见的目录:

  • /etc:存放配置文件。
  • /home:用户主目录所在的位置。
  • /usr:存放应用程序和库文件。
  • /var:存放可变数据,例如日志文件数据库文件。

每个文件或目录都有一个所有者(owner)和一个属组(group),并有相应的权限设置。权限决定了谁可以访问文件以及他们能够对文件做什么。

权限基础

在 Linux 中,文件和目录的权限由三个部分组成:所有者权限、属组权限和其他人权限。每个部分又有三个子权限:读(read)、写(write)和执行(execute)。这些权限可以用符号表示,也可以用数字表示。

权限位

符号

数字

描述

r

4

读取权限

w

2

写入权限

x

1

执行权限

0

没有该权限

例如,一个文件的权限为 -rwxr-xr--,这表示:

  • 文件所有者有读、写和执行权限。
  • 文件属组成员有读和执行权限。
  • 其他用户只有读权限。

权限更改命令

chmod 命令

chmod 命令用于更改文件或目录的权限。它接受两种形式的参数:符号形式和数字形式。

符号形式

符号形式使用 +-= 来增加、减少或设置权限。

  • 增加权限:chmod a+x file (给所有人增加执行权限)
  • 减少权限:chmod g-w file (从属组减少写权限)
  • 设置权限:chmod u=rw file (设置所有者权限为只读)
数字形式

数字形式使用三位数来设置权限,每一位代表所有者、属组和其他人的权限。

  • 644 表示所有者有读写权限,属组和其他人只有读权限。
  • 755 表示所有者有读写执行权限,属组和其他人有读执行权限。

示例:

代码语言:bash
AI代码解释
复制
chmod 644 file.txt
特殊权限

除了基本的读、写和执行权限外,Linux 还支持一些特殊的权限位,包括 SUID、SGID 和粘滞位。

  • SUID:如果一个可执行文件设置了 SUID 位,则当非所有者运行该程序时,程序将以所有者的权限运行。
  • SGID:与 SUID 类似,但针对目录时,新创建的文件或目录将继承该目录的属组。
  • 粘滞位:对于目录,如果设置了粘滞位,那么只有文件的所有者才能删除或移动文件。

设置这些特殊权限的命令如下:

代码语言:bash
AI代码解释
复制
# 设置 SUID
chmod 4755 /bin/somecommand

# 设置 SGID
chmod 2755 /home/users

# 设置粘滞位
chmod 1777 /tmp

文件所有者与属组

文件所有者是指创建文件的用户,而属组是指文件所属的一组用户。

更改所有者和属组

chown 命令

chown 命令用于更改文件或目录的所有者。

  • 更改所有者:chown user file
  • 同时更改所有者和属组:chown user:group file

示例:

代码语言:bash
AI代码解释
复制
chown alice file.txt
chown alice:developers directory
chgrp 命令

chgrp 命令用于更改文件或目录的属组。

  • 更改属组:chgrp group file

示例:

代码语言:bash
AI代码解释
复制
chgrp developers file.txt

用户和用户组管理

在 Linux 中,用户和用户组的管理是非常重要的。管理员可以通过创建用户和用户组、分配权限来确保系统的安全和高效运行。

用户管理

创建用户账户

使用 useradd 命令创建新的用户账户。

代码语言:bash
AI代码解释
复制
useradd -m -s /bin/bash newuser

这里 -m 表示为新用户创建主目录,-s 表示指定默认的 shell。

修改用户密码

使用 passwd 命令修改用户的密码。

代码语言:bash
AI代码解释
复制
passwd newuser
删除用户账户

使用 userdel 命令删除用户账户。

代码语言:bash
AI代码解释
复制
userdel -r newuser

这里 -r 表示同时删除用户的主目录。

用户组管理

创建用户组

使用 groupadd 命令创建新的用户组。

代码语言:bash
AI代码解释
复制
groupadd developers
添加用户到组

使用 gpasswd 命令将用户添加到组中。

代码语言:bash
AI代码解释
复制
gpasswd -a newuser developers

这里 -a 表示添加用户到组。

删除用户组

使用 groupdel 命令删除用户组。

代码语言:bash
AI代码解释
复制
groupdel developers

权限案例分析

日常使用场景

假设有一个文本文件 data.txt,我们希望仅允许其所有者读取和写入,属组成员可以读取,其他用户不能访问。

代码语言:bash
AI代码解释
复制
touch data.txt
chown alice:developers data.txt
chmod 640 data.txt

共享文件夹管理

如果有一个名为 shared 的文件夹需要被属组 developers 的成员共享,我们可以这样设置:

代码语言:bash
AI代码解释
复制
mkdir shared
chown root:developers shared
chmod 770 shared

Web 服务器配置

在 Web 服务器环境中,例如 Apache 或 Nginx,通常需要确保网站文件只能被 Web 服务器进程访问。

代码语言:bash
AI代码解释
复制
mkdir /var/www/html
chown www-data:www-data /var/www/html
chmod 755 /var/www/html

安全最佳实践

  • 最小权限原则:确保用户和程序具有完成任务所需的最小权限。
  • 定期审查权限:定期检查用户的权限设置,确保没有不必要的权限。
  • 使用 sudo 和 su:使用 sudosu 命令来临时提升权限,而不是将用户添加到 root 组。

总结

本文介绍了 Linux 中权限和属组管理的基本概念、命令和实践技巧。理解这些概念和命令对于有效管理 Linux 系统的安全至关重要。通过合理设置权限,可以有效地保护系统免受未经授权的访问和潜在的安全威胁。

参考资料

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深入解析Linux权限管理机制:安全与高效的基石
今日推荐 《教你自创工作流,赋予AI助理个性化推荐超能力》这篇文章介绍了使用Spring AI Alibaba进行开发演示,展示如何通过这个框架构建AI助理。通过演示可以看到当前的Java开发者不再需要转向Python,依然可以参与到AI Agent开发的潮流中,抓住这一全新的技术趋势!
Front_Yue
2024/12/05
2010
深入解析Linux权限管理机制:安全与高效的基石
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
在计算机系统中,权限是指用户或进程对系统资源(如文件、目录、设备、网络等)可以执行的操作的授权。权限的设计目的是为了保障系统的安全性,防止未经授权的访问或操作。
换一颗红豆
2025/02/02
990
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
【Linux探索学习】第四弹——Linux权限管理详解:理解用户、组和权限之间的关系
在Linux下用户其实有两种类型:超级用户和普通用户——超级用户就是我们配置好环境后默认的用户类型,它也叫root用户,而普通用户则是我们在超级用户下自己创建的,因为为了平时学习和工作方便,我们可能需要多个用户身份,就好比VS下多个可执行程序文件一般,而普通用户跟超级用户比是有权限约束问题的,也就是说有些文件之类的可能在普通用户下无权访问,而超级用户则可以随意访问
GG Bond1
2024/10/13
3200
【Linux探索学习】第四弹——Linux权限管理详解:理解用户、组和权限之间的关系
Linux系列之文件和目录权限
我们知道,root用户基本上可以在系统中做任何事。其他用户有更多的限制,并且通常被收集到组中。你把有类似需求的用户放入一个被授予相关权限的组,每个成员都继承组的权限。
chuckQu
2022/08/19
3.7K0
Linux系列之文件和目录权限
入门!Linux 常见指令及权限管理全面指南
Linux 操作系统在现代计算机应用中扮演着重要的角色,广泛用于服务器、桌面系统、嵌入式设备及云计算平台等领域。理解和掌握 Linux 常见指令及权限管理机制,是每一位系统管理员和开发人员的基础技能。本文将详细介绍 Linux 系统的基本背景、常用指令、权限概念及其管理方法,并通过实际案例来更好地理解这些内容。
用户11289931
2024/10/22
1300
Linux权限详解 命令之 chmod:修改权限
在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4 +1 = 5 即
用户1214487
2018/08/01
5.9K0
Linux权限详解 命令之 chmod:修改权限
Linux系统安全 | Linux下的用户、组和权限
注:一般来说,只有 root 用户的 uid 是为0的。如果黑客把一个普通用户的 uid 修改为0的话,那么他只要以普通用户的用户名和密码登录,系统就会自动切换到root用户。所以,系统加固的时候一定要过滤出有哪些用户的UID为0
谢公子
2022/01/19
3.1K0
Linux系统安全 | Linux下的用户、组和权限
Linux之权限管理操作
以下出现的 “ # ” 表示以超级管理员(root)用户操作 Linux的权限操作与用户、用户组是兄弟操作。 文章目录 一、权限概述 1、权限介绍 2、身份介绍 3、Linux的权限介绍 二、权限设置 1、字母形式 2、数字形式 3、注意事项 三、属主与属组设置 1、chown(重点) 2、chgrp(了解) 四、扩展(1) 一、权限概述 总述:Linux系统一般将文件可存/取访问的身份分为3个类别:owner、group、others,且3种身份各有read、write、execute
兮动人
2021/06/11
1.1K0
Linux之权限管理操作
Linux用户和文件权限管理
本文包含: 用户管理、用户组管理、基本权限及管理命令、POSIX ACL 权限系统及其管理命令。
Theo Tsao
2018/09/07
2.3K0
【linux】权限
命令:su [用户名] 功能:切换用户。 例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令
用户11029103
2024/07/25
4650
【linux】权限
快速学习-Linux权限管理
由于Linux是多用户、多任务的操作系统,因此可能常常有多人同时在某台主机上工作,但每个人均可在主机上设置文件的权限,让其成为个人的“私密文件”,即个人所有者。因为设置了适当的文件权限,除本人(文件所有者)之外的用户无法查看文件内容。
cwl_java
2020/03/31
1.1K0
快速学习-Linux权限管理
权力与优雅:Linux 权限的隐秘诗篇
Linux 是一种开源的、基于 Unix 的操作系统,它因其灵活性、稳定性和高性能而广泛应用于服务器、嵌入式系统、超级计算机、桌面计算等领域。
HZzzzzLu
2024/12/26
1560
权力与优雅:Linux 权限的隐秘诗篇
100个linux命令(3)-权限管理
文件权限附属在文件所有者 u,文件所属组 g 和其他用户o 上。使用字符修改权限需要指明操作谁的权限,另外还要使用"+"或"-"指定增加权限还是删除权限,也可以使用"="。
懒人的小脑
2019/01/09
9860
100个linux命令(3)-权限管理
用户和组账号概述 Linux基于用户身份对资源访问进行控制 用户帐号: 超级用户root、普通用户、 程序用户 超级用户,即root用户,类似于Windows系统中的Administrator用户
Linux基于用户身份对资源访问进行控制 用户帐号: 超级用户root、普通用户、 程序用户
青灯古酒
2023/10/16
5940
用户和组账号概述 Linux基于用户身份对资源访问进行控制 用户帐号:  超级用户root、普通用户、  程序用户 超级用户,即root用户,类似于Windows系统中的Administrator用户
Linux权限管理
之前在用户管理中提到用户和组的概念,服务器添加多账户的作用之一是可以针对不同用户分配不同的权限,从而根据不同权限限制用户可以访问到的系统资源。那么这次就来说一下Linux权限管理的相关内容,这部分也是非常重要的。如下。
reload
2024/02/04
4090
Linux权限管理
Linux文件权限详解
#前言:我们知道,无论什么东西,涉及到安全性的,比如文件、文件夹、磁盘(就如window系统的磁盘,我们就可以通过bitlocker技术将磁盘给加密锁起来)、服务器,等都需要设置权限管理,以保证安全性,接下来让我们来探讨以下Linux的文件权限
老油条IT记
2020/03/20
5.3K0
【Linux】聊聊Linux的文件权限管理
对于file1.txt,首先是属主权限rwx,只对属主alice账号生效,说明alice对该文件有rwx的全部权限。
一名白帽的成长史
2019/10/08
3.7K0
【Linux】聊聊Linux的文件权限管理
Linux 温习(八): 文件权限
权限的意义在于允许某一个用户或某个用户组以规定的方式去访问某个文件。例如,Apache 服务进程默认由 Apache 用户访问,除了 root 用户以外,其他用户均不能访问相关进程,这样就能通过在文件上设置用户或用户组的访问方式达到限制目的。
陈大剩博客
2023/02/17
7480
Linux 温习(八): 文件权限
Linux用户和权限管理看了你就会用啦
没想到上一篇能在知乎获得千赞呀,Linux也快期末考试了,也有半个月没有写文章了。这篇主要将Linux下的用户和权限知识点再整理一下。
Java3y
2018/07/30
7.1K1
Linux用户和权限管理看了你就会用啦
Linux的文件系统(3)
文件系统(File system)泛指储存在计算机上的文件和目录。文件系统可以有不同的格式,叫做文件系统类型(file system types)。这些格式决定信息是如何被储存为文件和目录。某些文件系统类型储存重复数据,某些文件系统类型加快硬盘驱动器的存取速度。
py3study
2020/01/14
3.1K0
推荐阅读
相关推荐
深入解析Linux权限管理机制:安全与高效的基石
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档