是否可以在没有root用户访问权限的情况下更改文件的所有权?


21

如果用户A拥有file.txt,则用户A可以在没有root用户访问权限的情况下将文件所有权更改为用户B吗?当我以用户A的身份运行chown B file.txt时,出现操作不允许错误。在我看来,由于用户A拥有该文件,因此他们应该能够更改所有权,但是我看不到这样做的方法。谢谢您的帮助!


4
您可以将包含数据的数据放入文件中,然后更改其所有权以构架某人:)我想这是反对允许您提出建议的一个论点。
roadmr 2012年

1
小附加功能:在AFAIU中,您可以更改自己拥有的文件的所有者组,前提是您是要更改的文件组的成员。
Matthijs Kooijman 2014年

Answers:


7

如果用户A拥有file.txt,则在file.txt没有root用户访问/ sudo权限的情况下,他无法更改的所有权。这是功能,不是错误。道路长官在对您的问题的评论中解释了为什么长者选择使用此功能的众多原因之一

底线:你可以改变使用该文件的权限,chmod如果你是无根/须藤权限文件的所有者,但你不能改变所有权,无论是用户或组(使用chownchgrp),文件的,即使你是没有root / sudo权限的文件的所有者。这是功能,不是错误。


2
这部分是错误的。非root用户可以将其所属的其他组更改为该组。尝试touch t; ls -l t; chgrp lpadmin t; ls -l t(假设您属于lpadmin组)。另请参阅我的答案和链接的问题。
Mark Stosberg '16

1
长老弄错了。如果我是用户A,我也是用户B,那么我应该能够将所有权从A更改为B,如果我以A身份登录,并且我也具有密码B,反之亦然。
爱寿

@aishu原则上可以通过将文件复制为B,然后将其删除为A来实现。
HolgerBöhnke,


2

如果您有权访问用户B,则可以在以B身份登录的同时复制该文件。如果您还可以访问用户A,则可以登录并删除原始文件。最后,将复制的文件重命名为原始名称(再次为B),从而使您拥有实质上相同的文件,但该文件由其他用户拥有。

显然不是SAME文件,但是如果您只关心文件的内容,那么就可以了


1

您可以在没有sudo的情况下更改文件或文件夹的所有权,只要您对事物具有读/写权限,并且只能将所有者更改为YOU,而不能更改为任意用户。诀窍是简单地复制所有内容,然后删除原件,然后将副本移到原处。不幸的是,这涉及到对所有内容进行完整复制,但是您会怎么做。

例如chuser.sh:

#!/bin/bash

TMP="some_temporary_filename_this_is_dumb"

RECURSIVE=""
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"

case $key in
    -r|--recursive)
    RECURSIVE="-r"
    shift # past argument
    ;;
    *)    # unknown option
    POSITIONAL+=("$1") # save it in an array for later
    shift # past argument
    ;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters

cp -d --preserve=all $RECURSIVE $1 $TMP || exit 1
rm $RECURSIVE $1
mv $TMP $1
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.