É possível alterar a propriedade de um arquivo sem acesso root?

21

Se um Usuário A possuir file.txt, o Usuário A poderá alterar a propriedade do arquivo para Usuário B sem acesso root? Quando executo um chown B file.txt como usuário A, recebo um erro de Operação não permitida. Parece-me que, como o Usuário A é o proprietário do arquivo, ele deve poder alterar a propriedade, mas não vejo uma maneira de fazê-lo. Obrigado pela ajuda!

Daniel
fonte
4
Você pode colocar dados incriminadores em um arquivo e alterar sua propriedade para enquadrar alguém :) Acho que esse é um argumento contra permitir o que você sugere.
roadmr
11
Além pequeno: AFAIU você pode alterar o grupo proprietário de um arquivo que você possui, desde que você é um membro do grupo que você está mudando para .
Matthijs Kooijman
relacionado: unix.stackexchange.com/questions/27350/…
Ciro Santilli escreveu:

Respostas:

7

Se o usuário A possuir file.txt, ele não poderá alterar a propriedade do file.txtsem acesso root / permissão sudo. Este é um recurso e não um bug. E uma das muitas razões pelas quais os idosos escolheram incluir esse recurso foi explicada em um comentário à sua pergunta por roadmr

Conclusão: você pode alterar as permissões do arquivo usando chmodse for o proprietário desse arquivo sem permissões de root / sudo, mas não puder alterar a propriedade, usuário ou grupo (usando um chownou chgrp), de um arquivo, mesmo que esteja o proprietário do arquivo sem permissões de root / sudo. Este é um recurso e não um bug.

Nitin Venkatesh
fonte
2
Parte disso está errado. Usuários não-root podem alterar o grupo em que outros grupos são membros. Tente touch t; ls -l t; chgrp lpadmin t; ls -l t(supondo que você esteja no grupo lpadmin). Veja também minha resposta e pergunta vinculada.
Mark Stosberg
11
Os anciões entenderam errado. Se eu sou usuário A e também sou usuário B, devo poder alterar a propriedade de A para B, se estiver logado como A e também tiver a senha de B ou vice-versa.
aishu 21/05/19
@aishu Você pode, em princípio, fazer isso copiando o arquivo como B e excluindo-o como A. Porém, não é muito prático para arquivos grandes.
Holger Böhnke
4

Não, você não pode alterar o proprietário de um arquivo sem acesso, mas, se você possui o arquivo, pode alterar as permissões do arquivo chmode alterar o grupo chgrppara outro grupo do qual você seja membro.

Pergunta relacionada: chown é permitido ao usuário não root?

Mark Stosberg
fonte
2

se você tiver acesso ao usuário B, poderá copiar o arquivo enquanto estiver conectado como B. Se você também tiver acesso ao usuário A, poderá efetuar login e excluir o arquivo original. E, finalmente, renomeie o arquivo copiado para o nome original (novamente como B), deixando você essencialmente com o mesmo arquivo, de propriedade de um usuário diferente.

Obviamente não é o mesmo arquivo, mas se você se importa apenas com o conteúdo do arquivo, isso faz o truque

kuvic
fonte
1

Você pode alterar a propriedade de um arquivo ou pasta sem o sudo, desde que tenha permissões de leitura / gravação e só possa alterar o proprietário para VOCÊ, e não para um usuário arbitrário. O truque é simplesmente copiar o que for, excluir o original e depois mover sua cópia para o seu lugar. Infelizmente, isso envolve fazer uma cópia completa de tudo, mas o que você faz.

por exemplo, 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
Scott
fonte