我在Ubuntu 12.04上复制文件到一个目录时遇到了问题。我在主目录下创建了一个目录,这样我想复制到的路径是。
/home/sixven/camp_sms/inputs
但是,当ini在终端运行以下命令,创建一个样本文件,如下所示。
francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt
touch: can not make `touch' on «test_file.txt»: permission denied
我不能直接复制该目录下的文件。我如何用chown
& chmod
命令分配权限来复制文件?
我不知道该用哪个用户和组。
首先你必须知道,Ubuntu中目录的默认权限是644,这意味着你不能在你不是所有者的目录中创建文件。
你试图以user:francisco-vergara
的身份在/home/sixven/camp_sms/inputs
目录下创建一个文件,而这个目录的所有者是user:sixven
。
因此,如何解决这个问题:。
1.你可以改变该目录的权限,使其他人能够在里面创建文件。
sudo chmod -R 777 /home/sixven/camp_sms/inputs
这个命令将递归地改变该目录的权限,使所有其他用户可以在里面创建/修改和删除文件和目录。
2.你可以改变这个目录的所有者,让user:francisco-vergara
成为所有者。
sudo chown -R francisco-vergara:francisco-vergara /home/sixven/camp_sms/inputs
但这样一来,`user:sixven'就不能再在这个文件夹中写东西了,因此你可能会在一个循环的无限循环中移动。
所以我建议你使用选项1。
或者如果这个目录将被两个用户访问,你可以做以下的技巧。
将该目录的所有权改为 "user:francisco-vergara",并保留组的所有权 "group:sixven"。
sudo chown -R francisco-vergara /home/sixven/camp_sms/inputs
像这样,两个用户仍然可以使用该目录。
但正如我之前所说,**使用选项1是最简单和最有效的。
默认的UMASK 022(在Ubuntu中),所以/home/username的权限变成了755。你以用户francisco-vergara
登录,并试图在用户sixyen家中创建文件:即/home/sixven
,它没有对其他用户的写入权限,只有sixven
的用户/组有写入权限。
如果你想在该目录下有写入权限,那么你需要成为sixven
组的一部分,使用usermod -G sixyen francisco-vergara
或chmod -R 777 /home/sixven
(不要使用它,这是不好的做法)。