Linux用户与权限管理详解

一口Linux 2024-12-25 11:45

击左上方蓝色“一口Linux”,选择“设为星标

第一时间看干货文章 

【干货】嵌入式驱动工程师学习路线
【干货】Linux嵌入式知识点-思维导图-免费获取
【就业】一个可以写到简历的基于Linux物联网综合项目
【就业】找工作简历模版




一、用户的管理

在 Linux 中,用户分为以下几种类型

  • 超级用户(root):拥有系统的最高权限,可以执行所有操作
  • 普通用户:权限受到限制,只能访问被授权的资源
  • 系统用户:系统进程运行时所使用的用户(如 nobodydaemon),通常不能登录系统

1、添加用户

useradd是Linux系统中用于创建新用户的基本命令。

基本语法

useradd [options] username
1

常用选项

  • -d:指定用户的主目录(默认主目录是 /home/用户名
  • -g:指定用户所属的初始组(默认组名是用户名
  • -G:为用户分配附加的组
  • -u:指定用户 ID(默认系统会自动分配)

常用示例

  1. 添加用户testuser

    useradd testuser
    1
  2. 添加用户zhangsan并设置该用户的主目录

    useradd -d /usr/zhangsan zhangsan
    1
  3. 添加lisi用户,该用户的主目录/usr/lisi,所属主组dev,附加组test

    useradd -d /usr/lisi -g dev -G test lisi
    1

2、设置用户密码

创建用户后,需要为其设置密码,否则用户无法登录。

基本语法

passwd username
1

常用示例

  • 为用户testuser设置密码()

    passwd testuser
    1
  • 系统会提示输入两次密码以进行确认

3、切换用户

su是switch user(切换用户)的缩写,主要用于在终端中切换到另一个用户(通常是root)执行操作。

基本语法

su [username]
1

常用示例

  1. 切换到普通用户testuser

    su testuser
    1

    输入testuser的密码后,会切换到该用户

  2. 切换到root用户(如果你是普通用户)

    su - # 切换到 root 用户,并加载 root 的完整环境
    1

    或者直接:

    su
    # 或
    su root  # 切换到 root 用户,但不加载目标用户的完整环境
    123

    输入root用户的密码后,切换到超级用户,前者加载root完整环境,后者保留当前用户环境

  3. 切换用户并加载其登录环境(推荐

    su - username
    1

    ---login参数,会加载目标用户的完整登录环境(包括环境变量、工作目录等)

  4. 退出当前用户

    exit
    1

    或按快捷键:

    Ctrl + D
    1

    切换到其他用户后,可以使用以下命令返回到上一个用户

快速验证当前用户

  1. 使用whoami查看当前用户名
  1. 使用id查看当前用户信息

4、修改用户

修改用户就是对用户名,用户主目录,用户组等进行修改。

基本语法

usermod [options] username
1

常用选项

  • -l:指定新的用户名
  • -d:指定新用户的主目录
  • -g:指定新用户属于哪个组(主组)
  • -G:指定新用户分配附加的组

常用示例

  1. 修改用户名(将zhangsan修改为lis)

    usermod -l lis zhangsan  
    1
  2. 修改主目录

    # -m 选项很重要,当有了这个选项之后,目录不存在时会新建该目录。
    usermod -d /usr/zhangsan2 -m zhangsan
    12
  3. 修改所属组

    usermod -g dev1 zhangsan
    1
  4. 锁定用户

    usermod -L zhangsan
    1
  5. 解锁用户

    usermod -U zhangsan
    1

5、删除用户

  • 删除用户并连同主目录一块删除

    userdel -r zhangsan
    1
  • 默认情况下,专属用户组会被自动删除,非专属组不会删除

6、sudo命令

sudo允许普通用户以超级用户(root)或其他用户的身份执行命令。它是提升权限的一种安全方式,避免直接使用root登录。

基本语法

sudo [选项] [命令]
1

常用选项

选项作用示例
-i模拟登录目标用户(默认 root),加载完整的登录环境sudo -i
-u 以指定用户()的身份运行命令。默认为 rootsudo -u www-data whoami
-k立即失效当前用户的 sudo 缓存,要求下次使用 sudo 时重新输入密码sudo -k
-l列出当前用户可以使用的 sudo 权限sudo -l
-v验证用户的 sudo 权限,但不运行任何命令(重新输入密码时可用)sudo -v
--edit-e以编辑模式打开文件(以 sudo 权限)sudo -e /etc/fstab
  • 默认情况下,sudo 在输入密码后会缓存一段时间(通常是15分钟
  • 在缓存时间内,重复执行sudo命令无需再次输入密码

常用示例

  1. sudo权限运行单个命令

    sudo apt update   # 更新系统软件包信息
    1
  • 特点:临时获得root权限,运行结束后权限释放
  • 切换到root用户

    sudo -i
    1
    • 作用:切换到root,加载root用户的完整登录环境(类似su -
    • 适用场景:需要长时间以root身份运行多个命令
  • 以指定用户运行命令

    sudo -u www-data whoami
    1
    • 作用:以www-data用户的身份执行命令

    sudo配置文件(/etc/sudoers

    • sudoers 文件是 sudo 权限的配置文件,定义了哪些用户或用户组可以执行哪些命令

    常见规则示例

    # 允许用户 `user1` 以 `root` 权限执行任何命令
    user1 ALL=(ALL:ALL) ALL

    # 允许用户 `user2` 在不输入密码的情况下运行所有命令
    user2 ALL=(ALL:ALL) NOPASSWD: ALL

    # 允许用户 `user3` 只运行特定命令
    user3 ALL=(ALL:ALL) /usr/bin/systemctl restart apache2

    # 允许用户组 `admin` 执行所有命令
    %admin ALL=(ALL:ALL) ALL
    1234567891011

    sudosu 的区别

    特点sudosu
    作用提升权限执行单个命令或切换到root切换到另一个用户(默认是root)
    密码使用使用当前用户的sudo密码使用目标用户的密码(如root密码)
    权限控制通过/etc/sudoers进行细粒度控制需要知道目标用户密码,没有细粒度权限控制
    安全性更安全(避免暴露root密码,且支持日志审计较不安全(需要启用并暴露root密码)
    适用场景执行单次提权命令、管理系统长期以root用户身份工作

    二、用户组的管理

    在Linux系统中,用户组管理是用户管理的重要部分。通过对用户组的管理,可以方便地设置用户权限,组织用户,以及控制对资源的访问。

    • 用户组的添加、修改和删除实际上就是对/etc/group文件的更新

    • 使用root账户查看当前系统的用户组有哪些

      • lighthouse:组名,组的的名称
      • x:密码占位符,通常为 x,实际密码存储在/etc/gshadow文件中
      • 1001:组的ID
      • lighthouse:组内用户列表,属于该组的用户
    • 查看当前登录的账户属于哪一组

    • 查看某个用户属于哪一组

    1、添加用户组

    使用groupadd命令可以创建一个新的用户组。

    基本语法

    groupadd [选项] 用户组名
    1

    常用示例

    1. 创建一个名为developers的用户组

      groupadd developers
      1
    2. 指定组ID创建用户组

      groupadd -g 1001 developers
      1

    2、修改用户组

    使用groupmod命令修改组的信息,包括组名和组ID。

    常用示例

    1. 将组developers的名字改为devteam

      groupmod -n devteam developers
      1
    • -n:指定新的组名
  • 将组developers的GID修改为2000

    groupmod -g 2000 developers
    1
  • 将用户john的主组修改为developers

    usermod -g developers john
    1
  • 将用户john添加到admins附加组

    usermod -aG admins john
    1
    • -a:追加用户到附加组(不加 -a 会覆盖用户当前的附加组)
    • -G:指定附加组列表

    3、删除用户组

    • 删除一个名为developers的用户组

      groupdel developers
      1
    • 如果系统中有文件或目录属于该组,删除组后文件可能会显示为无效的组ID

    三、文件权限

    1、查看文件属性

    • 使用命令 ls -lll可以查看文件的详细属性信息

    示例

    $ ls -l
    -rw-r--r--  1 user group  1234 Dec 22 12:00 example.txt
    12

    输出的每一部分的含义如下:

    字段示例值含义
    文件类型和权限-rw-r--r--文件类型和权限(文件、目录、符号链接等)
    硬链接数量1指向该文件的硬链接数量
    所有者(用户)user文件所属用户
    所属组group文件所属组
    文件大小1234文件大小,以字节为单位
    修改时间Dec 22 12:00文件的最后修改时间
    文件名example.txt文件的名称

    2、文件类型

    • 文件类型由第一个字符决定
    字符文件类型说明
    -普通文件常见的文本文件、二进制文件等
    d目录文件夹
    l符号链接指向另一个文件的快捷方式
    b块设备文件存储设备(如硬盘、光盘)
    c字符设备文件终端设备等
    s套接字文件用于进程间通信
    p命名管道(FIFO)用于进程间通信的特殊文件

    3、文件权限

    • 文件权限由rwx组合表示,分为三组
    1. 所有者(User):文件的拥有者
    2. 所属组(Group):文件所属的用户组
    3. 其他用户(Other):系统中所有其他用户

    权限表示

    字符权限说明
    r读取(read)查看文件内容或列出目录内容
    w写入(write)修改文件内容或在目录中创建/删除文件
    x执行(execute)运行文件(脚本或程序)或进入目录
    -无权限无法执行对应操作

    权限结构

    • 权限由10个字符组成
      • 第 1 个字符:文件类型(如 -d 等)
      • 后 9 个字符:文件权限,分为三组(所有者、组、其他用户)
    示例解释
    -rw-r--r--普通文件,所有者可读写,组用户和其他用户只读
    drwxr-xr-x目录,所有者可读写执行,组用户和其他用户可读执行
    -rwx------普通文件,仅所有者可读写执行

    4、修改文件权限

    • 权限可以通过chmod命令修改

    语法

    chmod [模式] 文件名
    1

    方式 1:使用数字表示权限

    • 每种权限用一个数字表示
    权限数字
    r4
    w2
    x1
    -0

    示例

    • chmod 755 file
      • 所有者:rwx(4+2+1=7)
      • 组用户:r-x(4+1=5)
      • 其他用户:r-x(4+1=5)

    方式 2:使用符号表示权限

    • 符号表示法
      • u:所有者
      • g:组用户
      • o:其他用户
      • a:所有用户
      • +:增加权限
      • -:移除权限
      • =:设置权限

    示例

    chmod u+x file    # 给所有者增加执行权限
    chmod g-w, o-w file    # 删除同组人员和其他组人员写的权限
    chmod o=r file    # 将其他用户权限设置为只读
    123

    5、修改文件所有者和所属组

    • 使用chownchgrp命令修改文件所有者和所属组

    常用示例

    1. 修改所有者

      chown 新所有者 文件名
      1

      示例:

      chown user2 file
      1
    2. 修改所属组

      chgrp 新组 文件名
      1

      示例:

      chgrp developers file
      1
    3. 同时修改所有者和组

      chown 新所有者:新组 文件名
      1

      示例:

      chown user2:developers file

    end



    一口Linux 


    关注,回复【1024】海量Linux资料赠送


    精彩文章合集

    文章推荐

    【专辑】ARM
    【专辑】粉丝问答
    【专辑】所有原创
    专辑linux入门
    专辑计算机网络
    专辑Linux驱动
    【干货】嵌入式驱动工程师学习路线
    【干货】Linux嵌入式所有知识点-思维导图


    一口Linux 写点代码,写点人生!
    评论
    • 汽车行业的变革正愈演愈烈,由交通工具到“第三生活空间”。业内逐渐凝聚共识:汽车的下半场在于智能化。而智能化的核心在于集成先进的传感器,以实现高等级的智能驾驶乃至自动驾驶,以及更个性、舒适、交互体验更优的智能座舱。毕马威中国《聚焦电动化下半场 智能座舱白皮书》数据指出,2026年中国智能座舱市场规模将达到2127亿元,5年复合增长率超过17%。2022年到2026年,智能座舱渗透率将从59%上升至82%。近日,在SENSOR CHINA与琻捷电子联合举办的“汽车传感系列交流会-智能传感专场”上,艾
      艾迈斯欧司朗 2024-12-20 19:45 323浏览
    • Supernode与艾迈斯欧司朗携手,通过Belago红外LED实现精准扫地机器人避障;得益于Belago出色的红外补光功能,使扫地机器人能够大大提升其识别物体的能力,实现精准避障;Belago点阵照明器采用迷你封装,兼容标准无铅回流工艺,适用于各种3D传感平台,包括移动设备、物联网设备和机器人。全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股票代码:AMS)近日宣布,与国内领先的多行业三维视觉方案提供商超节点创新科技(Supernode)双方联合推出采用艾迈斯欧司朗先进Belago红
      艾迈斯欧司朗 2024-12-20 18:55 211浏览
    • 光耦固态继电器(SSR)作为现代电子控制系统中不可或缺的关键组件,正逐步取代传统机械继电器。通过利用光耦合技术,SSR不仅能够提供更高的可靠性,还能适应更加复杂和严苛的应用环境。在本文中,我们将深入探讨光耦固态继电器的工作原理、优势、挑战以及未来发展趋势。光耦固态继电器:如何工作并打破传统继电器的局限?光耦固态继电器通过光电隔离技术,实现输入信号与负载之间的电气隔离。其工作原理包括三个关键步骤:光激活:LED接收输入电流并发出与其成比例的光信号。光传输:光电传感器(如光电二极管或光电晶体管)接收
      腾恩科技-彭工 2024-12-20 16:30 169浏览
    • 随着工业自动化和智能化的发展,电机控制系统正向更高精度、更快响应和更高稳定性的方向发展。高速光耦作为一种电气隔离与信号传输的核心器件,在现代电机控制中扮演着至关重要的角色。本文将详细介绍高速光耦在电机控制中的应用优势及其在实际工控系统中的重要性。高速光耦的基本原理及优势高速光耦是一种光电耦合器件,通过光信号传递电信号,实现输入输出端的电气隔离。这种隔离可以有效保护电路免受高压、电流浪涌等干扰。相比传统的光耦,高速光耦具备更快的响应速度,通常可以达到几百纳秒到几微秒级别的传输延迟。电气隔离:高速光
      晶台光耦 2024-12-20 10:18 230浏览
    • ALINX 正式发布 AMD Virtex UltraScale+ 系列 FPGA PCIe 3.0 综合开发平台 AXVU13P!这款搭载 AMD 16nm 工艺 XCVU13P 芯片的高性能开发验证平台,凭借卓越的计算能力和灵活的扩展性,专为应对复杂应用场景和高带宽需求而设计,助力技术开发者加速产品创新与部署。随着 5G、人工智能和高性能计算等领域的迅猛发展,各行业对计算能力、灵活性和高速数据传输的需求持续攀升。FPGA 凭借其高度可编程性和实时并行处理能力,已成为解决行业痛点的关
      ALINX 2024-12-20 17:44 222浏览
    • 耳机虽看似一个简单的设备,但不仅只是听音乐功能,它已经成为日常生活和专业领域中不可或缺的一部分。从个人娱乐到专业录音,再到公共和私人通讯,耳机的使用无处不在。使用高质量的耳机不仅可以提供优良的声音体验,还能在长时间使用中保护使用者听力健康。耳机产品的质量,除了验证产品是否符合法规标准,也能透过全面性的测试和认证过程,确保耳机在各方面:从音质到耐用性,再到用户舒适度,都能达到或超越行业标准。这不仅保护了消费者的投资,也提升了该公司在整个行业的产品质量和信誉!客户面临到的各种困难一家耳机制造商想要透
      百佳泰测试实验室 2024-12-20 10:37 279浏览
    • 国产数字隔离器已成为现代电子产品中的关键部件,以增强的性能和可靠性取代了传统的光耦合器。这些隔离器广泛应用于医疗设备、汽车电子、工业自动化和其他需要强大信号隔离的领域。准确测试这些设备是确保其质量和性能的基本步骤。如何测试数字隔离器测试数字隔离器需要精度和正确的工具集来评估其在各种条件下的功能和性能。以下设备对于这项任务至关重要:示波器:用于可视化信号波形并测量时序特性,如传播延迟、上升时间和下降时间。允许验证输入输出信号的完整性。频谱分析仪:测量电磁干扰(EMI)和其他频域特性。有助于识别信号
      克里雅半导体科技 2024-12-20 16:35 202浏览
    • 光耦合器,也称为光隔离器,是用于电气隔离和信号传输的多功能组件。其应用之一是测量电路中的电压。本文介绍了如何利用光耦合器进行电压测量,阐明了其操作和实际用途。使用光耦合器进行电压测量的工作原理使用光耦合器进行电压测量依赖于其在通过光传输信号的同时隔离输入和输出电路的能力。该过程包括:连接到电压源光耦合器连接在电压源上。输入电压施加到光耦合器的LED,LED发出的光与施加的电压成比例。光电二极管响应LED发出的光由输出侧的光电二极管或光电晶体管检测。随着LED亮度的变化,光电二极管的电阻相应减小,
      腾恩科技-彭工 2024-12-20 16:31 221浏览
    •                                                窗        外       年底将近,空气变得格外寒冷,估计这会儿北方已经是千里
      广州铁金刚 2024-12-23 11:49 177浏览
    • 百佳泰特为您整理2024年12月各大Logo的最新规格信息。——————————USB▶ 百佳泰获授权进行 USB Active Cable 认证。▶ 所有符合 USB PD 3.2 标准的产品都有资格获得USB-IF 认证——————————Bluetooth®▶ Remote UPF Testing针对所有低功耗音频(LE Audio)和网格(Mesh)规范的远程互操作性测试已开放,蓝牙会员可使用该测试,这是随时测试产品的又一绝佳途径。——————————PCI Express▶ 2025年
      百佳泰测试实验室 2024-12-20 10:33 203浏览
    我要评论
    0
    点击右上角,分享到朋友圈 我知道啦
    请使用浏览器分享功能 我知道啦