Linux常用命令:文件的权限管理

Linux系统中,每个文件或目录都有一定的权限,用来控制不同的用户对它们的访问和操作。

1.权限说明

文件的权限可以分为三类:所有者(owner)、组(group)和其他(other)

每类权限又可以分为三种:读(read)、写(write)和执行(execute)

文件的权限可以用一个10位的字符串来表示,其中第一位表示文件类型,后面位表示三类权限的三种权限。

例如,一个普通文件的权限可能是-rw-r–r–,表示所有者可以读写,组和其他只能读。一个目录的权限可能是drwxr-xr-x,表示所有者可以读写执行,组和其他只能读执行。

文件的权限可以用数字来表示,每种权限对应一个数字,读为4,写为2,执行为1,没有权限为0。三类权限的数字相加就是该类权限的数字,例如,读写为6,读执行为5,执行为1。文件的权限可以用三个数字来表示,分别表示所有者、组和其他的权限,例如,644表示所有者读写,组和其他只能读,755表示所有者读写执行,组和其他只能读执行。

2.chmod命令

chmod命令的作用是修改文件或目录的权限,可以使用数字或符号来指定权限。chmod命令的语法格式如下:

chmod [选项] [权限] [文件]...

其中,选项可以是以下之一:

  • -c:显示修改权限的文件的信息。
  • -f:忽略不存在的文件或无法修改的文件。
  • -R:递归地修改目录及其子目录和文件的权限。
  • -v:显示所有修改权限的文件的信息。

如果使用数字来指定权限,权限可以是一个三位或四位的数字,分别表示所有者、组、其他或特殊权限的权限。

特殊权限包括设置用户ID(suid)、设置组ID(sgid)和粘滞位(sticky bit)

设置用户ID表示执行该文件时,以文件所有者的身份执行。设置组ID表示执行该文件或进入该目录时,以文件或目录所属组的身份执行。

粘滞位表示只有文件所有者或超级用户(root)才能删除或重命名该目录下的文件。特殊权限的数字分别为4、2和1,如果不指定特殊权限,可以省略第一位数字。

如果使用符号来指定权限,权限可以是以下的格式:

[类别][操作][权限]

其中,类别可以是以下之一:

  • u:所有者。
  • g:组。
  • o:其他。
  • a:所有,即所有者、组和其他。
  • +:添加权限。
  • -:删除权限。
  • =:设置权限。

其中,操作可以是以下之一:

  • +:添加权限。
  • -:删除权限。
  • =:设置权限。

其中,权限可以是以下之一:

  • r:读。
  • w:写。
  • x:执行。
  • s:设置用户ID或设置组ID。
  • t:粘滞位。

可以使用逗号分隔多个权限,例如,u+r,g+w表示给所有者添加读权限,给组添加写权限。

例如,假设有一个文件file.txt,它的权限是-rw-r–r–,如果我们想要修改它的权限为-rwxr-xr-x,可以使用以下命令:

$chmod 755 file.txt

$ls -l file.txt
-rwxr-xr-x 1 user user 79 Feb 26 09:23 file.txt

也可以使用以下命令:

$chmod u+x,g+x,o+x file.txt

$ls -l file.txt
-rwxr-xr-x 1 user user 79 Feb 26 09:23 file.txt

如果我们想要修改它的权限为-rwsr-xr-x,即设置用户ID,可以使用以下命令:

$chmod 4755 file.txt

$ls -l file.txt
-rwsr-xr-x 1 user user 79 Feb 26 09:23 file.txt

也可以使用以下命令:

$chmod u+s file.txt

$ls -l file.txt
-rwsr-xr-x 1 user user 79 Feb 26 09:23 file.txt

如果我们想要修改它的权限为-rwxr-xr-t,即设置粘滞位,可以使用以下命令:

$chmod 1755 file.txt

$ls -l file.txt
-rwxr-xr-t 1 user user 79 Feb 26 09:23 file.txt

也可以使用以下命令:

$chmod o+t file.txt

$ls -l file.txt
-rwxr-xr-t 1 user user 79 Feb 26 09:23 file.txt

3.ln命令

ln命令的作用是创建文件或目录的链接,可以是硬链接或软链接。硬链接是指不同的文件名指向同一个文件,它们共享相同的索引节点(inode)和数据块。软链接是指一个文件名指向另一个文件名,它们有不同的索引节点和数据块,但是软链接的数据块只包含另一个文件名的路径。ln命令的语法格式如下:

ln [选项] [源文件] [目标文件]

其中,选项可以是以下之一:

  • -f:强制创建链接,覆盖已存在的目标文件。
  • -i:交互式创建链接,询问是否覆盖已存在的目标文件。
  • -s:创建软链接,而不是硬链接。
  • -v:显示创建链接的信息。

如果没有指定目标文件,ln命令会使用源文件的文件名作为目标文件的文件名。如果指定了多个源文件,目标文件必须是一个已存在的目录,ln命令会在该目录下创建与源文件同名的链接。

例如,假设有一个文件file.txt,它的内容如下:

$cat file.txt
This is a file.

如果我们想要创建一个硬链接link1.txt,可以使用以下命令:

$ln file.txt link1.txt

$ls -l file.txt link1.txt
-rw-r--r-- 2 user user 14 Feb 26 09:23 file.txt
-rw-r--r-- 2 user user 14 Feb 26 09:23 link1.txt

可以看到,file.txt和link1.txt的权限、所有者、组、大小和修改时间都相同,它们的链接数都是2,表示有两个文件名指向同一个文件。

如果我们修改file.txt的内容,link1.txt的内容也会跟着变化,反之亦然,因为它们共享同一个数据块:

$echo "This is a new line." >> file.txt

$cat file.txt
This is a file.
This is a new line.

$cat link1.txt
This is a file.
This is a new line.

如果我们删除file.txt,link1.txt仍然可以访问,因为它们共享同一个索引节点:

$rm file.txt

$ls -l link1.txt
-rw-r--r-- 1 user user 29 Feb 26 09:23 link1.txt

$cat link1.txt
This is a file.
This is a new line.

如果我们想要创建一个软链接link2.txt,可以使用以下命令:

$ln -s file.txt link2.txt

$ls -l file.txt link2.txt
-rw-r--r-- 1 user user 29 Feb 26 09:23 file.txt
lrwxrwxrwx 1 user user  8 Feb 26 09:23 link2.txt -> file.txt

可以看到,file.txt和link2.txt的权限、所有者、组、大小和修改时间都不同,它们的链接数也不同,file.txt的链接数是1,link2.txt的链接数是2,表示有两个文件名指向link2.txt。link2.txt的大小是8,表示它的数据块只包含file.txt的路径。

如果我们修改file.txt的内容,link2.txt的内容也会跟着变化,因为它指向file.txt:

$echo "This is another line." >> file.txt

$cat file.txt
This is a file.
This is a new line.
This is another line.

$cat link2.txt
This is a file.
This is a new line.
This is another line.

如果我们删除file.txt,link2.txt就无法访问,因为它指向的文件不存在了:

$rm file.txt

$ls -l link2.txt
lrwxrwxrwx 1 user user 8 Feb 26 09:23 link2.txt -> file.txt

$ cat link2.txt
cat: link2.txt: No such file or directory

以上就是Linux常用命令:文件的权限管理的介绍,希望对你有所帮助。如果你有任何问题或建议,欢迎在评论区留言。谢谢!

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TiYong

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

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

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

打赏作者

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

抵扣说明:

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

余额充值