Чи можна змінити право власності на файл без доступу root?


21

Якщо Користувач A володіє file.txt, чи може користувач A змінити право власності на файл на Користувача B без доступу root? Коли я запускаю файл file.txt chown B як користувач A, я отримую помилку, дозволену операції. Мені здається, що оскільки користувач A володіє файлом, він повинен мати можливість змінити право власності, але я не бачу способу це зробити. Дякую за допомогу!


4
Ви можете покласти інкримінуючі дані у файл та змінити його право власності, щоб когось обрамувати :) Я думаю, що це один аргумент проти того, щоб дозволити те, що ви пропонуєте.
roadmr

1
Невелике доповнення: AFAIU ви можете змінити групу , що володіє файлу , який ви володієте, при умови , що ви є членом групи ви мінливого до .
Matthijs Kooijman

Відповіді:


7

Якщо Користувач A є власником file.txt, він не може змінити право власності на file.txtдозвіл root / sudo. Це особливість, а не помилка. І одна з багатьох причин, чому старійшини вирішили застосувати цю особливість, була пояснена в коментарі до вашого питання дорожнім

Підсумок: Ви можете змінити дозволи файлу, використовуючи, chmodякщо ви є власником цього файлу без дозволів root / sudo, але ви не можете змінити право власності на файл або користувач, або групу (використовуючи будь-який chownабо chgrp) файлу, навіть якщо ви є власник файлу без дозволів root / sudo. Це особливість, а не помилка.


2
Частина цього неправильна. Користувачі, що не входять до кореня, можуть змінювати групу інших груп, до яких вони входять. Спробуйте touch t; ls -l t; chgrp lpadmin t; ls -l t(якщо припустити, що ви в групі lpadmin). Дивіться також мою відповідь та пов'язане питання.
Марк Стосберг

1
Старійшини неправильно зрозуміли. Якщо я користувач A і я також користувач B, то я повинен мати можливість змінити право власності з A на B, якщо я увійшов як A, і я також маю пароль B або навпаки.
аішу

@aishu У принципі це можна зробити, скопіювавши файл у форматі B, видаливши його як A. Не дуже практично для великих файлів.
Хольгер Бьонке

4

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

Пов'язане запитання: chown дозволений користувачеві, який не користується коренем?


2

якщо у вас є доступ до користувача B, ви можете просто скопіювати файл під час входу в систему як B. Якщо у вас також є доступ до користувача A, ви можете увійти та видалити вихідний файл. І, нарешті, перейменуйте скопійований файл у оригінальне ім’я (знову ж таки B), залишивши вас, по суті, тим самим файлом, яким володіє інший користувач.

Очевидно, це не файл SAME, але якщо ви дбали лише про вміст файлу, це робить трюк


1

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

наприклад 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.