如果我拥有一个文件,为什么需要更改写入权限?

如果我拥有一个文件,为什么需要更改写入权限?

如果我创建一个文件,sudo vim test然后在我的帐户中打开它(没有sudo),为什么当我尝试修改文件时编辑器会抱怨(即设置了只读选项)?

ls -l我是业主,业主有rwx

为什么我无法写入文件?

答案1

如果您创建的文件的sudo vim test所有者将是 root,而不是您,因此如果稍后您想要编辑该文件,您需要将所有者从 root 更改为您或更改权限。

看:

jordim@bucketlist-196008:~/test$ sudo vim test
jordim@bucketlist-196008:~/test$ ls -l
total 8
(...)
-rw-r--r-- 1 root   root      2 Feb 22 15:43 test
(...)

创建的文件属于root:root,只有root对其有读写权限。该组的其余用户以及其他组的任何其他用户只能读取。

问题是,如果您需要稍后以普通用户身份编辑该文件,为什么要使用“sudo”创建该文件?

答案2

当您使用 创建文件时sudo command,文件所有者是root

例子:

$ sudo vim test
$ ls -lsa test
4 -rw-r--r-- 1 root root 5 Feb 22 16:43 test

当您尝试使用常规帐户(不是root)更新(写入)文件时,您将无法写入文件(除非文件权限对每个人都是可写的)

例子:

$ echo "testing 123..." > test
bash: test: Permission denied

相关内容