如果我创建一个文件,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