linux-用户与权限管理-sudo 权限管理

news2024/9/21 14:29:18

Linux 用户与权限管理概述

在Linux操作系统中,用户和权限管理是确保系统安全与稳定运行的关键组成部分。每个Linux系统中,用户被分配不同的角色和权限,基于这些权限执行不同的任务。权限管理的核心是文件和目录的访问控制,以及如何授予用户以执行特定命令的权限。


Linux 用户管理

1. 用户类型

Linux系统中的用户大致分为三类:

  • 超级用户(root用户):拥有系统的全部权限,可以执行所有的操作,包括系统文件修改、用户管理等敏感操作。
  • 普通用户:拥有受限的权限,通常只能够访问自己拥有的文件和运行属于自己权限范围的程序。
  • 系统用户:为系统服务和守护进程(如nobodywww-data等)创建的用户,它们通常没有登录权限,专门用于运行系统进程。
2. 用户相关命令
  • useradd:创建新用户。

    sudo useradd username
    

    添加新用户后,通常还会为该用户设置密码:

    sudo passwd username
    
  • usermod:修改用户属性,例如修改用户的默认shell、主目录、组等。

    sudo usermod -s /bin/bash username
    
  • userdel:删除用户,可以选择是否同时删除用户的主目录。

    sudo userdel -r username
    
  • id:查看当前用户的UID、GID和所归属的组。

    id username
    

Linux 权限管理

1. 文件权限基础

在Linux系统中,每个文件和目录都关联着三个权限主体:

  • 文件所有者(Owner)
  • 文件所在组(Group)
  • 其他用户(Other)

每个权限主体对应三类权限:

  • 读取(r):表示可以读取文件内容,或列出目录中的文件。
  • 写入(w):表示可以修改文件内容,或在目录中创建、删除文件。
  • 执行(x):表示可以执行文件,或进入目录。

文件权限可以通过ls -l命令查看,输出结果类似于以下形式:

-rwxr-xr--

这一串权限字符串可以分为四部分:

  • 第一个字符表示文件类型(-代表普通文件,d代表目录,l代表符号链接等)。
  • 接下来的九个字符分成三组,每组三个字符,分别表示文件所有者、文件所在组、其他用户的权限。
2. 修改文件权限
  • chmod命令:用于修改文件或目录的权限。

    使用符号表示法修改权限:

    chmod u+rwx,g+rx,o+r filename
    

    也可以使用八进制表示法:

    chmod 755 filename
    
  • chown命令:用于修改文件的所有者或所在组。

    chown new_owner:new_group filename
    
  • chgrp命令:仅修改文件的所属组。

    chgrp new_group filename
    

Sudo 权限管理

1. 什么是sudo

sudo(superuser do)是Linux系统中用于以超级用户权限执行命令的工具。与直接切换到root用户不同,sudo可以在当前会话中暂时提升权限,执行特定的命令而不需要完全切换用户。这一机制提高了系统的安全性,因为用户不需要知道root密码,也不会长时间以超级用户的身份登录系统。

2. sudoers文件

sudo权限通过/etc/sudoers文件进行管理。该文件定义了哪些用户或用户组可以使用sudo,以及具体的权限范围。

查看sudoers文件可以使用如下命令:

sudo visudo

通过visudo命令编辑/etc/sudoers文件是一种安全的方式,它在保存文件时会进行语法检查,防止错误的配置导致权限问题。

3. 配置sudo权限

sudoers文件的语法非常灵活,允许为特定用户配置精细的权限。例如:

username ALL=(ALL:ALL) ALL

这条配置的含义是允许用户username在所有主机上以所有用户身份运行所有命令。

  • ALL:表示主机范围(即适用于所有主机)。
  • ALL=(ALL:ALL):第一个ALL表示命令可以以任何用户身份运行,(ALL:ALL)中的第一个ALL表示目标用户,第二个ALL表示目标组。
  • 最后的ALL表示允许执行所有命令。

如果我们希望限制某用户只能执行某些命令,比如只允许运行/usr/sbin/reboot,可以这样配置:

username ALL=(ALL) /usr/sbin/reboot
4. 用户组与sudo

在大多数Linux发行版中,用户加入sudo组后,便可以拥有sudo权限。可以使用以下命令将用户添加到sudo组:

sudo usermod -aG sudo username

该命令的作用是将用户username添加到sudo组,从而赋予其sudo权限。

5. 免密码执行sudo

在某些场景下,管理员可能希望某些用户在执行特定命令时不需要输入密码。这可以通过在sudoers文件中添加NOPASSWD选项实现,例如:

username ALL=(ALL) NOPASSWD: /usr/sbin/reboot

这意味着用户username在执行/usr/sbin/reboot命令时,无需输入密码。

6. 限制sudo命令执行

sudoers文件还可以用于限制用户只能执行某些命令。假设我们希望限制用户只能执行shutdown命令,可以这样配置:

username ALL=(ALL) /sbin/shutdown

这条规则意味着username只能以超级用户身份运行/sbin/shutdown命令,不能运行其他命令。


安全性考虑

虽然sudo提供了灵活的权限管理,但不当的配置可能会带来安全隐患。以下是一些安全性建议:

  1. 最小权限原则:只为用户分配执行工作所需的最低权限。
  2. 限制可执行的命令:避免给用户全局的sudo权限,限制他们只能执行某些必要的命令。
  3. 审计日志sudo会记录用户执行的所有命令。定期检查/var/log/auth.log中的日志可以帮助管理员识别异常行为。
  4. 分离角色:对于大型系统,尽量将用户的职责分离,例如,系统管理员和数据库管理员应拥有不同的权限集。

总结

Linux系统的用户与权限管理是保障系统安全的核心组成部分。通过合理配置文件权限和sudo工具,可以为用户提供足够的操作权限,同时防止权限滥用。熟练掌握这些工具和技术,不仅可以提高工作效率,还能够有效地保护系统免受潜在的安全威胁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2152570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux文件IO(六)-多次打开同一个文件

大家看到这个小节标题可能会有疑问,同一个文件还能被多次打开?事实确实如此,同一个文件可以被多次打开,譬如在一个进程中多次打开同一个文件、在多个不同的进程中打开同一个文件,那么这些操作都是被允许的。本小节就来…

PyRosetta打分函数介绍

在 PyRosetta 中,蛋白质结构的能量是通过打分函数(ScoreFunction)来评估的,这些打分函数基于 Rosetta 的能量方程。Rosetta 的能量函数是一种加权的分项能量表达式,包括不同的能量项来描述蛋白质的构象、相互作用和能量。核心能量函数的形式如下: 在 PyRosetta 中,打分函…

神经网络推理加速入门——一个例子看懂流水

之前的两篇文章介绍了流水这一技术,它用来进行程序的性能加速,本篇通过一个生活中的小例子,让大家更直观的了解什么是流水。 举个例子 早晨从起床到上班出门,我们一般会做以下几件事:刷牙、烧水、喝水、出门。 如果…

应届生必看 | 毕业第一份工作干销售好不好?

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330&scene21#wechat_redirect 《网安面试指南》…

都2024年了,看谁还不会用AI作图?这个全方位的系统教程真的别错过了!

大家好,我是画画的小强 如果给我们现在所处的时代一个标签,相信很多人都会选择人工智能。 其实,关于 AI 的讨论已经不局限在科学家和算法工程师之间,更多的是在各行各业的从业者之间,甚至也出现在了高考试卷中。 以…

多旋翼无人机维修、组装、调试技术详解

多旋翼无人机作为现代航拍、农业植保、物流运输等领域的重要工具,其性能的稳定性和操作的便捷性对于任务的完成至关重要。因此,掌握多旋翼无人机的维修、组装与调试技术,对于无人机操作员及维修人员来说至关重要。本文将详细介绍这三个方面的…

96 kHz、24bit 立体声音频ADC芯片GC5358描述

概述: GC5358 是一款高性能、宽采样率、立体声音频模数转换器。其采样率范围是8KHz~96KHz,非常适合从消费级到专业级的音频应用系统。单端模拟输入不需要外围器件。GC5358 音频有两种数据格式:MSB对齐和 I2S 格式,和各种如 DTV、D…

将Java程序打包成EXE程序

Java制作可执行jar 方式一:mainClass与lib分离 1)将Java程序依赖的所有jar都拷贝在lib目录下,并添加到classpath中 2)运行时指定MainClass pom.xml 这个pom.xml生成的jar可双击直接运行,但是因为没有将其依赖的jar…

焦化行业的变革力量:智能巡检机器人

根据相关数据,2024年1-2月份,焦炭产量为8039.5万吨,同比增长2.1%,这表明,我国焦化行业仍是全球最大的焦炭生产国和消费国,其市场规模占据了重要地位。焦化企业主要集中在山西省,其合计焦炭产能约…

基础漏洞——SSRF

目录 一.原理 二.引起ssrf的函数 三.这些函数具体作用 (1)File_get_content() (2)Fsockopen() (3)Curl_exec() 四.常见的业务场景(可能出现的漏洞的地方,漏洞挖掘&#xff09…

FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频

Android早期的MediaPlayer控件对于网络视频的兼容性很差,所以后来单独推出了Exoplayer库增强支持网络视频,在《Android Studio开发实战:从零基础到App上线(第3版)》一书第14章的“14.3.3 新型播放器ExoPlayer”就详细介绍了Exoplayer库的详细…

stack和queue(一)

接下来讲解一些stack栈和queue的简单使用 stack的概念 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行 元素的插入与提取操作。 特性是先进先出 后进后出 构造一个栈堆 int main() {deque<int>…

树莓派配置Qt+OpenCV

本次教程使用的树莓派镜像&#xff1a;树莓派镜像带图像界面下载 Qt的安装&#xff1a; 在命令行依次输入以下命令安装Qt&#xff1a; sudo apt-get updatesudo apt-get upgrade sudo apt-get install qtbase5-dev qtchooser sudo apt-get install qt5-qmake qtbase5-dev-t…

threejs加载高度图渲染点云,不支持tiff

问题点 使用的point来渲染高度图点云&#xff0c;大数据图片无效渲染点多&#xff08;可以通过八叉树过滤掉无效点增加效率&#xff0c;这个太复杂&#xff09;&#xff0c;但是胜在简单能用 效果图 code 代码可运行&#xff0c;无需npm <!DOCTYPE html> <html la…

MySQL聚合统计和内置函数

【数据库】MySQL聚合统计 王笃笃-CSDN博客https://blog.csdn.net/wangduduniubi?typeblog显示平均工资低于2000的部门和它的平均工资 mysql> select deptno,avg(sal) deptavg from emp group by deptno; --------------------- | deptno | deptavg | --------------…

0x08 MotionEye 视频监控组件 list 信息泄漏洞 CVE-2022-25568

参考&#xff1a; MotionEye 视频监控组件 list 信息泄漏洞 CVE-2022-25568 | PeiQi文库 (wgpsec.org) 一、漏洞描述&#xff1a; motionEye是用Python写的motion的Web前端&#xff0c;它可以监视视频信号并检测运动。它可以与多种类型的摄像机配合使用,也可以与电影文件一起…

PMP--二模--解题--41-50

文章目录 11.风险管理--风险代表对将来问题的预判&#xff0c;问题代表对过去问题事件的跟踪&#xff1b;两者联系&#xff1a;风险发生后会变成问题&#xff0c;而问题可能导致新的风险。41、 [单选] 在项目会议期间&#xff0c;一个团队发现三个月前关闭的问题仍然处于活跃状…

解决 Prettier ESLint 错误

解决 Prettier ESLint 错误 在 Vue.js 项目中使用 ESLint 和 Prettier 时&#xff0c;你可能会遇到类似以下的错误&#xff1a; frontend\src\views\dashboard\MobileConfigPanel.vue1:25 error Delete ␍ …

使用IDA Pro动态调试Android APP

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 关于 android_server android_server 是 IDA Pro 在 Android 设备上运行的一个调试服务器。 通过在 Android 设备上运行android_server&#xff0c;IDA Pro …

SpringBoot项目同时集成Mybatis和Mybatis-plus框架

1. 背景 Mybatis-plus可以生成CRUD&#xff0c;减少开发中SQL编写量&#xff0c;但是某些情况下我们需要多表关联查询&#xff0c;这时候Mybatis可以手写SQL的优势就体现出来了&#xff0c;在实际开发中&#xff0c;项目里面一般都是Mybatis和Mybatis-Plus公用&#xff0c;但是…