Можно ли сменить владельца файла без root-доступа?

Если пользователь A владеет файлом file.txt, может ли пользователь A сменить владельца файла на пользователя B без корневого доступа? Когда я запускаю chown B file.txt от имени пользователя A, я получаю сообщение «Операция не разрешена». Мне кажется, что, поскольку пользователь A владеет файлом, он должен иметь возможность сменить владельца, но я не вижу способа сделать это. Спасибо за помощь!

21
задан 23 March 2017 в 23:49

4 ответа

Нет, вы не можете изменить владельца файла без доступа, но если вы являетесь владельцем файла, вы можете изменить права доступа к файлу с помощью chmod и изменить группу с chgrp на другую группу, членом которой вы являетесь. ,

Смежный вопрос: chown разрешен не root-пользователю?

0
ответ дан 23 March 2017 в 23:49

Если у вас есть доступ к пользователю B, вы можете просто скопировать файл, войдя в систему как B. Если у вас также есть доступ к пользователю A, вы можете войти в систему и удалить исходный файл. И, наконец, переименуйте скопированный файл в исходное имя (снова как B), в результате чего у вас останется практически тот же файл, принадлежащий другому пользователю.

Очевидно, это не один и тот же файл, но если вы заботитесь только о содержимом файла, это поможет.

0
ответ дан 23 March 2017 в 23:49

Вы можете изменить владельца файла или папки без sudo, если у вас есть права на чтение / запись для этой вещи, и вы можете изменить владельца только на ВАС, а не на произвольного пользователя. Хитрость заключается в том, чтобы просто скопировать, что бы это ни было, удалить оригинал, а затем переместить свою копию на место. К сожалению, это включает в себя создание полной копии всего, но что вы делаете.

например. 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
0
ответ дан 23 March 2017 в 23:49

Если пользователь A владеет file.txt, он не может изменить владельца file.txt без прав доступа root / sudo. Это особенность, а не ошибка. И одна из многих причин, по которой старейшины решили использовать эту функцию, была объяснена в комментарии к вашему вопросу roadmr

Итог: Вы Вы можете изменить права доступа к файлу, используя chmod, если вы являетесь владельцем этого файла без прав root / sudo, но вы не можете изменить владельца файла или пользователя (используя chown или chgrp) файла. даже если вы владелец файла без прав root / sudo. Это особенность, а не ошибка.

0
ответ дан 23 March 2017 в 23:49

Другие вопросы по тегам:

Похожие вопросы: