【Linux】-- Shell命令运行原理和权限详解(二)

简介: 【Linux】-- Shell命令运行原理和权限详解

(2)chown修改文件拥有者

修改文件拥有者:

chown 【参数】 用户名 文件名

选项:

-R 递归修改目录的拥有者

 比如将IP2.log文件的拥有者改为用户Gino,必须在root权限下修改,可以切换为root之后:

再修改文件拥有者:

(3)chgrp修改文件或目录的所属组

修改文件或目录所属组:

chgrp 【参数】 用户组名 文件名

选项:

-R  递归修改文件或目录的所属组

同样也是要有root权限才能修改,如将IP2.log文件的所属组改为Gino:

假如想同时修改拥有者和所属组,依旧要在root权限下:

chown 拥有者:所属组 文件名

例如,想将IP2.log的拥有者和所属组都改为root,那么可以这样改:

(4)umask查看或修改文件掩码

新创建一个文件,访问权限按理来说,应该是777,但是却发现新创建的目录的权限是755:

这是因为创建文件或目录的时候还要受到umask的影响,假设默认权限是mask,实际创建出来的文件权限是mask & ~umask。

查看文件掩码:

umask

查看到系统的umask为0022:

只需要关心后3位,实际创建出来的文件权限是mask & ~umask。凡是在umask中为1的位,都要在起始权限中去掉:

修改文件掩码:

umask 八进制

将文件掩码由022修改为333,发现创建的新目录的权限也与333对应:

但是如果退出后,重新登录,重新创建新目录,就会发现,修改过的掩码失效了,又变成了022。

这是因为掩码设置只在本次登录有效,退出登录就失效了。

(5)目录的权限

可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。

可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中

那么问题来了。只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限,这不矛盾吗?

(6)粘滞位

在root的根目录下,有一个tmp文件夹,这个文件夹下存放的是临时文件,用户在保存文件之前,文件都存放在tmp文件夹中,这个文件夹下存放用户的临时文件,可以看到它的权限有个t:

 

这个文件夹对拥有者和所属组的权限都是rwx,对other的权限是rwt。这个t是什么属性?和r、w、x有什么区别?

先来看下面的例子,root用户在根目录下创建了一个文件夹test,并在这个文件夹中创建了2个文件test1和test2,然后又root用户切换为delia用户,此时发现delia竟然可以删掉test中的文件:

 

这怎么能忍呢?我创建的文件,怎么能够被别人随随便便删掉呢? test目录对other有w和x权限,一旦有w权限,那么也就是other可以对它进行创建文件和删除文件操作。但是不希望一个用户创建的文件被别的用户或删除,那怎么办呢?

在这种场景下,就需要粘滞位,当目录被设置了粘滞位以后,即使用户对该目录有写权限,但是不能删除该目录中其他用户的文件,只有文件的拥有者和root用户才可以删除。这就达到了各个用户可以在目录中读、写、修改、删除文件,但是不能随意删除其他用户文件的目的。

设置粘滞位:

发现设置完粘滞位后,其他用户就不能删除该用户创建的文件了。

因此,当一个目录被设置为"粘滞位"(chmod +t),则该目录下的文件只能由

(1)超级管理员删除

(2)该目录的所有者删除

(3)该文件的所有者删除

相关文章
|
30天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
55 14
Linux 10 个“who”命令示例
|
10天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
32 8
|
19天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
104 20
|
19天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
49 7
|
2月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
37 9
|
2月前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
2月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
170 3
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
141 8
|
2月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
568 6
|
2月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
106 3