千家信息网

linux文件权限管理方法的示例分析

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关linux文件权限管理方法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为什么需要权限管理?1.计算机资源有限,我们需要合理的
千家信息网最后更新 2026年11月03日linux文件权限管理方法的示例分析

这篇文章将为大家详细讲解有关linux文件权限管理方法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

为什么需要权限管理?

1.计算机资源有限,我们需要合理的分配计算机资源。

2.Linux是一个多用户系统,对于每一个用户来说,个人隐私的保护是十分重要的

目录的 rwx 权限

当前用户:vagrant:vagrant

创建 testdir 目录,进入 testdir 目录内。创建文件 test。

$ mkdir testdir$ cd testdir$ touch test

修改 testdir 权限为 000,尝试执行 ls testdir

$ chmod 000 testdir$ ls testdir/ls: cannot open directory testdir/: Permission denied

修改 testdir 权限为 400,尝试执行 ls testdir

$ chmod 400 testdirls -l testdir/ls: cannot access testdir/test: Permission deniedtotal 0-????????? ? ? ? ? ? test

结果:能够读取目录下文件列表,但是看不到具体文件信息(权限、大小、用户组、时间等),尽管当前用户是 /testdir/test 的拥有者且具有 rwx 权限。

拥有目录的 r 权限可以读取目录下的文件列表。

继续,尝试进入 testdir 目录。

$ cd testdir/-bash: cd: testdir/: Permission denied

看来 r 权限并不能让我们具有进入目录。

我们增加一个 x 权限试试。

~$ chmod 500 testdir/~$ cd testdir/~/testdir$ ls -ltotal 0-rw-rw-r-- 1 vagrant vagrant 0 Nov 19 08:16 test

成功进入。

拥有目录的 x 权限能够让我们进入到目录下。在此工作目录下,我们可以查看文件列表及文件的属性信息。

尝试删除 test 文件或者新建文件 test1。

~/testdir$ rm testrm: cannot remove 'test': Permission denied~/testdir$ touch test1touch: cannot touch 'test1': Permission denied

拥有目录的 r x 权限并不能允许我们改变目录的内容。目录里的文件列表可以看做是目录的内容。

拥有目录的 w 权限可以对目录的内容进行增删。

~/testdir$ chmod 700 .~/testdir$ rm test~/testdir$ touch test1~/testdir$ ls -ltotal 0-rw-rw-r-- 1 vagrant vagrant 0 Nov 19 08:30 test1

umask

在上面的例子里,我们创建的新文件的权限是 664(-rw-rw-r--),为什么默认权限会是 664,我如果想改变新文件的默认权限怎么办?

控制台输入 umask:

$ umask0002

umask 是权限的补码。文件的默认权限是 666 - umask。

如果我们创建的文件不想让其他用户有 r 权限,则修改补码为 0006 即可。

~/testdir$ umask 0006~/testdir$ touch test2~/testdir$ ls -l | grep test2-rw-rw---- 1 vagrant vagrant 0 Nov 19 08:38 test2

为什么文件的默认权限不是 777 - umask 呢?因为新建的文件默认不具有可执行权限,所以只考虑 rw 权限的话,这波操作自然是 666 了。

目录默认具有 x 权限,当 umask 是 0002 时,创建的目录的默认权限应该是 777 - 0002 = 775:

~/testdir$ mkdir dir1~/testdir$ ls -l | grep dir1drwxrwxr-x 2 vagrant vagrant 4096 Nov 19 08:39 dir1

特殊权限

SUID

一般来说文件权限是 rwx。我们查看一下 passwd(修改密码命令)的权限:

~/testdir$ ls -l /usr/bin/passwd-rwsr-xr-x 1 root root 47032 May 16 2017 /usr/bin/passwd

细心点你会发现它的用户权限的 x 位竟然是 s。这个权限叫 SUID,仅对二进制程序有效。

当用户具有该文件的执行权限时,执行该文件会短暂的获取该文件所有者权限的支持。

比如:所有用户的密码存在 /etc/shadow 这个文件里,且该文件的权限默认是 -r-------- root root,仅root 用户具有强制写入权限,那为什么普通用户还能修改自己的密码呢?就是因为 passwd 命令具有 SUID 权限,用户执行该命令时会获得文件所有者 root 的权限支持,从而修改自己的密码。

SGID

当 group 的 x 位置变成 s 时,说明该文件具有 SGID 权限。

SGID 权限对二进制程序有效。类似 SUID,用户在具有文件的 x 权限时,执行该文件,会获取该文件所属用户组的权限支持。

除了二进制程序外,SGID也可以设置在目录上。

若用户对该目录具有 SGID 权限:

用户在此目录下的有效用户组将会变成该目录的用户组。

如果用户具有该目录的 w 权限,则用户在此目录下创建的文件的用户组与此目录的用户组相同。

该权限对于项目开发很重要。

SBIT

该权限目前只对目录有效:

当用户对此目录具有 w,x 权限,用户在该目录下创建文件夹或目录后,仅自己和 root 才有权限删除该文件。

Others 的 x 权限位若为 t,则说明文件夹具有 SBIT 权限。

比如 /tmp 目录:

$ ls -l / | grep tmpdrwxrwxrwt 4 root root 4096 Nov 19 09:09 tmp$ sudo -s# touch testroot@vagrant-ubuntu-trusty-64:/tmp# exitexitvagrant@vagrant-ubuntu-trusty-64:/tmp$ rm testrm: remove write-protected regular empty file 'test'? yrm: cannot remove 'test': Operation not permitted

如何设置以上三种权限

如果在普通的权限设置的"三个数字"前再加一个数字,那前面这个数字就代表这几个权限了:

  • 4 为 SUID

  • 2 为 SGID

  • 1 为 SBIT

比如:

# chmod 777 /tmp# ls -l / | grep tmpdrwxrwxrwx 4 root root 4096 Nov 19 09:17 tmp# chmod 1777 /tmp# ls -l / | grep tmpdrwxrwxrwt 4 root root 4096 Nov 19 09:17 tmpEnd。

关于"linux文件权限管理方法的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

权限 文件 目录 用户 用户组 有效 内容 密码 尝试 管理 二进制 命令 数字 程序 篇文章 支持 方法 示例 分析 普通 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 互联网科技网 易互联网科技有限公司 广州互联网络科技有限公司 奇酷互联网络科技公司 互联网科技缩写 互联网高科技股票 镁科技互联网资讯平台 互联网巨头投资的硬核科技 开启互联网科技时代小说 科技赋能互联网健康 青岛中康互联网医疗科技有限公司 深圳国际航运科技和互联网 互联网时代科技改变生活 互联网科技创新服务 新兴科技互联网创新大赛颁奖典礼 广州市恰铎互联网科技有限公司 东莞新华互联网科技学校 济南小医互联网科技有限公司招聘 株洲百竞科技的互联网营销顾问 互联网扶贫科技 远信互联网科技 米客互联网科技 互联网科技类展会 卫星互联网科技股票 科技互联网的核心竞争力 宇信科技在杭州互联网排第几 银川新华互联网科技学校原画 广州三三互联网科技有限公司 北京军民互联网科技公司
0