当前位置: 首页 > article >正文

Linux权限管理:从用户切换到文件权限

在Linux系统中,权限管理是确保系统安全和资源合理分配的核心机制。它通过用户和用户组的管理、文件权限的设置以及特殊权限的使用,实现了对系统资源的精细控制。

一、用户切换:su 和 sudo

1. 用户切换命令 su

su(switch user)命令用于切换用户身份。默认情况下,su 切换到超级用户(root),但也可以切换到其他用户。

  • 切换到超级用户

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

    su username  # 切换到指定用户
2. 提权命令 sudo

sudo 允许普通用户以超级用户或其他用户的身份执行命令。它比直接使用 su 更安全,因为不需要知道目标用户的密码。

  • 以超级用户权限运行命令

    sudo command
  • 以指定用户身份运行命令

    sudo -u username command

二、文件权限管理

1. 权限类型

Linux文件权限分为三类:所有者(User)、所属组(Group)和其他用户(Other)。每类权限包括:

  • 读权限(r):允许查看文件内容或目录列表。

  • 写权限(w):允许修改文件内容或在目录中创建/删除文件。

  • 执行权限(x):允许运行文件或进入目录。

2. 查看文件权限

使用 ls -l 命令查看文件权限:

-rw-r--r-- 1 user group 1234 Dec 22 12:00 example.txt
  • 第一个字符表示文件类型(- 表示普通文件,d 表示目录)。

  • 接下来的 9 个字符分为三组,分别表示所有者、所属组和其他用户的权限。

3. 修改文件权限

使用 chmod 命令修改文件权限。

  • 符号模式

    chmod u+x file  # 为所有者添加执行权限
    chmod g-w,o-w file  # 删除所属组和其他用户的写权限
  • 数字模式

    chmod 644 file  # 所有者可读写,所属组和其他用户可读
    chmod 755 file  # 所有者可读写执行,所属组和其他用户可读执行
4. 修改文件所有者和所属组

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

  • 修改所有者

    chown newuser file
  • 修改所属组

    chgrp newgroup file
  • 同时修改所有者和所属组

    chown newuser:newgroup file

三、特殊权限

1. Setuid 和 Setgid
  • Setuid(SUID):允许用户以文件所有者的权限运行文件。

    chmod u+s file  # 设置 SUID
    chmod 4755 file  # 数字模式设置 SUID
  • Setgid(SGID):允许用户以文件所属组的权限运行文件。

    chmod g+s file  # 设置 SGID
    chmod 2755 file  # 数字模式设置 SGID
2. 粘滞位(Sticky Bit)

粘滞位用于公共目录,防止用户删除其他用户的文件。

chmod o+t directory  # 设置粘滞位
chmod 1777 directory  # 数字模式设置粘滞位

四、默认权限与 umask

  • 默认权限:文件和目录在创建时的默认权限由 umask 控制。

  • 查看当前 umask

    umask
  • 设置 umask

    umask 0022  # 设置默认权限为 644

五、用户和用户组管理

1. 创建和删除用户
  • 创建用户

    useradd username
  • 删除用户

    userdel username
2. 创建和删除用户组
  • 创建用户组

    groupadd groupname
  • 删除用户组

    groupdel groupname
3. 管理用户组成员
  • 将用户添加到用户组

    usermod -aG groupname username
  • 从用户组中移除用户

    gpasswd -d username groupname

六、访问控制列表(ACL)

ACL 提供了更灵活的权限管理,允许为特定用户或组设置独立的权限。

  • 设置 ACL

    setfacl -m u:username:rwx file
  • 查看 ACL

    getfacl file

通过以上内容,你可以全面了解Linux权限管理的核心概念和操作方法。无论是用户切换、文件权限调整,还是特殊权限的使用,Linux都提供了强大的工具来确保系统的安全性和灵活性。


http://www.kler.cn/a/515968.html

相关文章:

  • 电子应用设计方案102:智能家庭AI鱼缸系统设计
  • 分子动力学模拟里的术语:leap-frog蛙跳算法和‌Velocity-Verlet算法
  • Spark Streaming的核心功能及其示例PySpark代码
  • 【线性代数】列主元法求矩阵的逆
  • 软件测试入门—用例设计中的场景图和状态迁移图
  • kotlin的协程的基础概念
  • 【MYSQL】mysql 常用命令
  • java基础学习——jdbc基础知识详细介绍
  • JS-Web API -day06
  • Vue2 项目二次封装Axios
  • MYSQL学习笔记(五):单行函数(字符串、数学、日期时间、条件判断、信息、加密、进制转换函数)讲解
  • 如何选择TVS二极管?
  • Vue - toRefs() 和 toRef() 的使用
  • 准备知识——波纹度和粗糙度区别与联系
  • 【力扣】1312. 让字符串成为回文串的最少插入次数
  • 法律与认知战争:新时代的战略博弈
  • 8.2 从看图识字到智能解读:GPT-4 with Vision 开启多模态 AI 新纪元
  • Ubuntu下载zenodo文件Ubuntu download zenodo
  • springboot基于微信小程序的手机银行系统
  • 如何区分AI智能体、自动化工作流和PRA?
  • 《Openlayers零基础教程》第十八课:Canvas绘制圆—绘制两个圆
  • 【Trunk接口配置】
  • 【React】 react路由
  • 探索前端新技术:Svelte 与创新前端开发范式
  • 语音转文字的先驱-认识Buzz的前世今生
  • kconfig语法里,怎么实现二选一配置?