Если пользователь A владеет файлом file.txt, может ли пользователь A сменить владельца файла на пользователя B без корневого доступа? Когда я запускаю chown B file.txt от имени пользователя A, я получаю сообщение «Операция не разрешена». Мне кажется, что, поскольку пользователь A владеет файлом, он должен иметь возможность сменить владельца, но я не вижу способа сделать это. Спасибо за помощь!
Нет, вы не можете изменить владельца файла без доступа, но если вы являетесь владельцем файла, вы можете изменить права доступа к файлу с помощью chmod
и изменить группу с chgrp
на другую группу, членом которой вы являетесь. ,
Смежный вопрос: chown разрешен не root-пользователю?
Если у вас есть доступ к пользователю B, вы можете просто скопировать файл, войдя в систему как B. Если у вас также есть доступ к пользователю A, вы можете войти в систему и удалить исходный файл. И, наконец, переименуйте скопированный файл в исходное имя (снова как B), в результате чего у вас останется практически тот же файл, принадлежащий другому пользователю.
Очевидно, это не один и тот же файл, но если вы заботитесь только о содержимом файла, это поможет.
Вы можете изменить владельца файла или папки без 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
Если пользователь A владеет file.txt
, он не может изменить владельца file.txt
без прав доступа root / sudo. Это особенность, а не ошибка. И одна из многих причин, по которой старейшины решили использовать эту функцию, была объяснена в комментарии к вашему вопросу roadmr
Итог: Вы Вы можете изменить права доступа к файлу, используя chmod
, если вы являетесь владельцем этого файла без прав root / sudo, но вы не можете изменить владельца файла или пользователя (используя chown
или chgrp
) файла. даже если вы владелец файла без прав root / sudo. Это особенность, а не ошибка.