Linux文件与目录的默认权限和隐藏权限

🐇明明跟你说过:个人主页

🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅

🔖行路有良友,便是天堂🔖

目录

一、Linux的起源与发展

二、文件默认权限(umask)

三、文件的隐藏属性(chattr)

四、文件类型查看(file)

五、脚本文件的查找(which)

六、文件查找(whereis)

七、atime、ctime、mtime


一、Linux的起源与发展


1991年,芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)开始编写一个新的操作系统内核,这个内核最初被称为“Freax”。他的初衷只是想学习操作系统内核的开发,并为自己的个人计算机编写一个操作系统。然而,当他将这个内核发布在Internet上并开放源代码后,全球各地的程序员开始参与到这个项目中来,共同完善这个内核。最终,这个内核被命名为Linux,这个名字是由Linus Torvalds的名字和Unix操作系统的名字组合而成的。

Linux从一开始就坚持源代码的公开和免费使用,任何人都可以对其进行修改和分发。这种开放性和自由性吸引了大量的开发者和用户,使得Linux逐渐成长并成熟起来。如今,Linux已经发展成为一个性能稳定、功能强大的多用户网络操作系统,支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。同时,Linux也有上百种不同的发行版,如基于社区开发的Debian、ArchLinux,以及基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

二、文件默认权限(umask)

在Linux系统中,默认权限(也称为umask)是用来控制新创建文件和目录的权限的。umask值会从文件和目录的初始权限中减去。

通常,umask值是由三个数字组成,分别表示文件所有者、文件所属组和其他用户的权限。每个数字都可以是0到7之间的值,对应不同的权限设置。具体如下:

  • 第一个数字表示文件所有者的权限。
  • 第二个数字表示文件所属组的权限。
  • 第三个数字表示其他用户的权限。

umask的值是由各个权限的相应位数相加得到的。例如,如果umask值为022,则表示文件所有者的权限不包括写权限,而文件所属组和其他用户的权限不包括写和执行权限。

在Linux系统中,umask值通常以八进制表示。因此,022表示文件默认权限为755(即-rwxr-xr-x)。

要查看当前系统的umask值,可以在终端中运行以下命令:

umask


要更改umask值,可以使用umask命令加上所需的umask值。例如,要将umask值设置为022,可以运行以下命令:

umask 022


这将更改当前会话中新创建文件和目录的默认权限。要永久更改umask值,可以将其添加到shell配置文件(如~/.bashrc或~/.bash_profile)中。

三、文件的隐藏属性(chattr)

文件的隐藏属性(chattr)通常与Linux系统相关,其中chattr命令用于修改文件或目录的扩展属性。这些扩展属性通常不受传统的文件权限系统(如chmod)所控制。通过chattr命令,用户可以改变文件的一些特殊属性,如不可删除、不可更改、压缩等,从而帮助用户更好地管理文件,并增强文件的安全性和稳定性。

在Linux系统中,可以使用chattr命令来设置文件的隐藏属性。这些隐藏属性可以帮助保护文件免受意外修改或删除。

以下是一些常用的chattr命令选项:

  • +i:将文件设置为不可修改。一旦设置了这个属性,文件将无法被修改、删除、重命名或链接,直到取消这个属性。
  • -i:取消文件的不可修改属性。
  • +a:将文件设置为只追加。一旦设置了这个属性,文件只能追加数据,无法修改或删除已有内容。
  • -a:取消文件的只追加属性。
  • +u:启用文件的不可恢复删除属性。一旦设置了这个属性,删除文件后将无法恢复。
  • -u:取消文件的不可恢复删除属性。

要设置文件的隐藏属性,可以使用chattr命令并指定要设置的属性。例如,要将文件设置为不可修改,可以运行以下命令:

chattr +i filename


要取消文件的不可修改属性,可以运行以下命令:

chattr -i filename


chattr命令通常需要root权限才能执行。确保在修改文件属性之前了解其影响,并小心操作。

四、文件类型查看(file)

在Linux系统中,可以使用file命令查看文件的类型。该命令会根据文件内容的特征来确定文件类型,并输出相应的描述信息。

使用file命令的基本语法如下:

file 文件路径


例如,如果要查看名为example.txt的文件类型,可以运行以下命令:

file example.txt


命令执行后,将会输出该文件的类型信息,例如文本文件、二进制文件、目录等。此外,还可能显示更详细的信息,例如文本文件的字符编码、可执行文件的体系结构等。

下面是一些示例输出:

对于文本文件:

example.txt: ASCII text


对于可执行文件:
 

example: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, not stripped


对于目录:

example_dir: directory


使用file命令可以帮助我们快速了解文件的类型,从而更好地处理和管理文件。

五、脚本文件的查找(which)

在Linux系统中,which命令用于查找给定命令的可执行文件路径。如果命令存在于系统的PATH变量指定的目录中,则which会输出该命令的完整路径。

which命令的基本语法如下:

which 命令名称


例如,要查找ls命令的位置,可以运行以下命令:

which ls


如果ls命令存在于系统PATH中,则将输出类似以下内容:

/bin/ls


如果命令不存在,则不会有任何输出。

六、文件查找(whereis)

在Linux系统中,whereis命令是一个用来查找二进制文件、源代码文件和man手册页的命令。与which命令不同的是,whereis不仅查找可执行文件,还查找与命令相关的其他文件,如源代码和手册页。

whereis命令常用于在系统中查找指定命令的位置以及其相关文件和帮助文档的位置。它会搜索特定命令的可执行文件、源代码文件以及man页面。

whereis命令的基本语法如下:

whereis 命令名称


例如,要查找ls命令的位置,可以运行以下命令:

whereis ls


如果ls命令存在于系统中,则将输出类似以下内容:

ls: /bin/ls /usr/share/man/man1/ls.1.gz


输出结果显示了ls命令的可执行文件路径和其对应的man页面路径。

七、atime、ctime、mtime

在Linux系统中,文件系统中的每个文件都有三个时间戳,它们分别是:

  • Access Time(atime):表示文件最后一次被访问或读取的时间。当执行读取文件操作时,系统会更新atime。可以使用ls -lu命令来查看文件的atime。
  • Change Time(ctime):表示文件的状态最后一次被修改的时间。当文件的所有者、权限或链接数发生变化时,系统会更新ctime。可以使用ls -lc命令来查看文件的ctime。
  • Modify Time(mtime):表示文件内容最后一次被修改的时间。当执行写入文件操作时,系统会更新mtime。可以使用ls -l命令来查看文件的mtime。

这些时间戳在文件系统中存储为UNIX时间戳格式,即自1970年1月1日午夜(UTC)以来经过的秒数。这些时间戳可以帮助用户跟踪文件的访问、修改和状态变化情况。

💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺

🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!! 

  • 28
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Linux系统中,每个文件都具有权限属性,包括文件的所有者、所属用户组和其他用户的权限。除了这些明确的权限之外,还有一些隐含的权限控制文件的访问。 第一个隐含权限是"隐藏权限",也称为特殊权限。它用于给文件目录添加一些特殊的功能。其中最常见的特殊权限是设置"SUID"和"SGID"位。当一个文件具有SUID设定时,它在执行过程中将暂时获取文件所有者的权限。这对于一些需要用户特权才能执行的程序非常有用。当一个文件具有SGID设定时,它在执行过程中将暂时获取文件所属组的权限。这对于一些需要共享访问权限目录非常有用。 第二个隐含权限是"粘贴位",也称为"sticky bit"。它主要用于保护目录中的文件免受删除的风险。当一个目录设置了粘贴位时,只有文件的所有者才能删除该文件,其他用户无法删除。这对于一些共享目录非常有用,可以防止其他用户不小心删除其他人的文件。 另外一个隐含权限是"ACL",也称为访问控制列表。它允许用户更细粒度地控制文件的访问权限。通常情况下,文件权限是通过文件所有者、所属用户组和其他用户的权限来控制的。但是通过ACL,可以为特定的用户或用户组提供特定的权限,覆盖了默认权限设置。 总之,Linux文件的隐含权限包括隐藏权限(如SUID、SGID)、粘贴位和ACL。这些隐含权限可以提供更灵活和安全的文件访问控制,允许用户根据需要设置特殊的权限

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明明跟你说过

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值