在Linux中更改文件夹的所有权

65
我在我的子域名中有一个文件夹,该文件夹是通过WHM创建的,因此子域名的所有者不是主域名的所有者。
我想将子域名中的一个文件夹的所有者更改为域名所有者。我尝试了这个,但是当我使用winscp检查时,它显示所有者为500。
  chown users:user /home/xyz/somnething/photo/

我也尝试过从winscp进行更改,但是winscp没有这个选项,所以我使用putty以root身份登录,并运行了上述命令,但是没有起到帮助作用,我无法从主域名上传任何文件到子域名,因为返回了"permission denied"错误。
$ ls -l /home/xyz/somnething/photo/
total 8 
drwxr-xr-x 2 sujit sujit 4096 Feb 21 23:39 ./ 
drwxr-x--- 5 rohan nobody 4096 Feb 22 02:28 ../ 

我想将Rohan的所有权转让给Sujit,以便Sujit在其域名下的子域名Rohan上具有上传文件的权利。
更新: 现在所有权转移到500。

1
chown -R username:group directory - underscore
1
@samitha 它正在给出以下错误信息:chown:无效的组:`sujit:group' - sachin
1个回答

119

使用chown来改变所有权,使用chmod来改变权限。

使用-R选项将权限应用于目录内的所有文件。

请注意,这两个命令也适用于目录。 -R选项还会更改目录中所有文件和子目录的权限。

例如:

sudo chown -R username:group directory

将更改目录中所有文件和目录以及目录本身的所有者(用户和组)。

sudo chown username:group directory

只会更改文件夹目录的权限,而不会影响目录中的文件和文件夹。

你需要使用sudo将所有权从root更改为你自己。

编辑:

请注意,如果您使用chown user: file(注意省略了组),它将使用该用户的默认组。

此外,您可以使用以下命令更改文件或目录的组所有权:

chgrp group_name file/directory_name

更改所有权的对象必须是该组的成员。

您可以按照以下方式查找文件所在的组

# ls -l file
-rw-r--r-- 1 root family 0 2012-05-22 20:03 file

# chown sujit:friends file

用户500只是一个普通用户。通常情况下,用户500是系统上的第一个用户,最近的更改(对/etc/login.defs的更改)已经在许多发行版中将最小用户ID更改为1000,因此通常1000现在是第一个(非root)用户。

你可能看到的是一个已经从旧状态升级到新状态的系统,仍然有一些进程在UID 500上运行。你可以通过首先检查你的发行版是否确实现在应该使用1000来进行更改,如果是,则自己修改login.defs文件,然后重新编号/etc/passwd中的用户账户,并且chown/chgrp他们的所有文件,通常在/home/中,然后重新启动系统。

但是,回答你的问题,很可能你不需要太担心这个问题。它会显示为“500”而不是用户名,因为/etc/passwd中没有一个用户设置了UID为500。

另外,你可以使用id命令来显示你当前的数字,我愿意打赌它将返回1000给你。


7
如果你只提供了用户名,则用户所有权将更改,而组所有权不变。所以尝试使用sudo chown -R username directory命令。 - Jayesh Bhoi
1
@sachin 如果你不知道组名,就删除:group。同时请查看我的更新答案。 - Jayesh Bhoi
我可以在WinSCP中看到该文件夹的所有者名称已更改为500。 - sachin
@sachin 你可以按如下方式找到你的文件组 ls -l /home/xyz/somnething/photo/ - Jayesh Bhoi
总共8个: drwxr-xr-x 2 sujit sujit 4096年2月21日23:39 ./ drwxr-x--- 5 rohan nobody 4096年2月22日02:28 ../ 我想将rohan的所有权转让给sujit,这样我就可以从sujit域上传文件到子域rohan。 - sachin
显示剩余11条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接