热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入理解Linux文件权限:rws、rwt、rwT、rwS及其特殊用途

Linux系统中,文件权限不仅限于常见的777、666等数值表示,还包括特殊的权限位如setuid、setgid和stickybit,这些权限位能够赋予文件或目录额外的功能,增强系统的灵活性和安全性。
在Linux操作系统中,文件权限不仅仅是简单的读、写、执行(rwx)权限,还包括一些特殊权限位,如setuid、setgid和sticky bit,这些权限位可以极大地扩展文件或目录的功能。

每个文件都有一个所有者和一个组标识,这决定了谁可以访问或修改文件。当一个可执行文件设置了setuid位时,任何用户在运行该文件时都会暂时获得文件所有者的权限。例如,`/usr/bin/passwd`命令就设置了setuid位,允许普通用户修改自己的密码,尽管`/etc/passwd`文件通常只能由root用户修改。

```bash
[root@localhost ~]# ls -l /usr/bin/passwd
-r-s--x--x 1 root root 21944 02-12 16:15 /usr/bin/passwd
```

这里的`-r-s--x--x`中的`s`表示setuid位已被设置。

setgid位仅适用于目录,当目录设置了setgid位时,任何用户在这个目录下创建的文件都将继承该目录的组属性,而不是用户的默认组属性。这对于共享工作环境非常有用。

sticky bit通常用于公共目录,防止非文件所有者删除其他用户的文件,即使他们对目录具有写权限。例如,`/tmp`目录通常会设置sticky bit,确保用户可以在其中创建文件,但不能删除不属于自己的文件。

```bash
[root@localhost ~]# ls -ld /tmp
drwxrwxrwt 17 root root 4096 Apr 21 13:18 /tmp
```

设置这些特殊权限位的方法包括使用`chmod`命令,例如:

- `chmod u+s file`:为文件设置setuid位。
- `chmod g+s directory`:为目录设置setgid位。
- `chmod o+t directory`:为目录设置sticky bit。

也可以使用八进制数来设置这些权限位,例如`chmod 4755 file`设置setuid位,`chmod 2755 directory`设置setgid位,`chmod 1755 directory`设置sticky bit。

需要注意的是,不当使用setuid和setgid权限可能会带来安全风险,因此应谨慎使用,并尽量减少这类权限的使用。
推荐阅读
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
author-avatar
昔日重来r_510
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有