Apakah mungkin mengubah kepemilikan file tanpa akses root?

21

Jika Pengguna A memiliki file.txt, dapatkah Pengguna A mengubah kepemilikan file menjadi Pengguna B tanpa akses root? Ketika saya menjalankan chown B file.txt sebagai pengguna A, saya mendapatkan kesalahan operasi tidak diizinkan. Sepertinya saya karena Pengguna A memiliki file, mereka harus dapat mengubah kepemilikan, tetapi saya tidak melihat cara untuk melakukannya. Terima kasih untuk bantuannya!

Daniel
sumber
4
Anda bisa memasukkan data yang memberatkan ke dalam file dan mengubah kepemilikannya untuk membingkai seseorang :) Saya kira itu adalah satu argumen yang menentang mengizinkan apa yang Anda sarankan.
roadmr
1
Selain kecil: AFAIU Anda dapat mengubah kelompok memiliki file yang Anda miliki, asalkan Anda seorang anggota kelompok Anda berubah ke .
Matthijs Kooijman
terkait: unix.stackexchange.com/questions/27350/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Jawaban:

7

Jika Pengguna A memiliki file.txt, ia tidak dapat mengubah kepemilikan file.txttanpa akses root / izin sudo. Ini adalah fitur dan bukan bug. Dan salah satu dari banyak alasan mengapa para penatua memilih untuk memasukkan fitur ini, telah dijelaskan dalam komentar untuk pertanyaan Anda oleh roadmr

Bottom-line: Anda dapat mengubah izin file menggunakan chmodjika Anda adalah pemilik file itu tanpa izin root / sudo tetapi Anda tidak dapat mengubah kepemilikan, baik pengguna atau grup (menggunakan salah satu chownatau chgrp), dari file meskipun Anda pemilik file tanpa izin root / sudo. Ini adalah fitur dan bukan bug.

Nitin Venkatesh
sumber
2
Bagian dari ini salah. Pengguna non-root dapat mengubah grup grup lain yang menjadi anggotanya. Coba touch t; ls -l t; chgrp lpadmin t; ls -l t(Anggap Anda berada di grup lpadmin). Lihat juga jawaban saya dan pertanyaan terkait.
Mark Stosberg
1
Sesepuh salah. Jika saya pengguna A dan saya juga pengguna B, maka saya harus dapat mengubah kepemilikan dari A ke B, jika saya masuk sebagai A dan saya juga memiliki kata sandi B atau sebaliknya.
aishu
@ aishu Pada prinsipnya Anda dapat melakukannya dengan menyalin file sebagai B kemudian menghapusnya sebagai A. Namun tidak terlalu praktis untuk file besar.
Holger Böhnke
4

Tidak, Anda tidak dapat mengubah pemilik file tanpa akses, tetapi jika Anda memiliki file tersebut, Anda dapat mengubah izin file dengan chmoddan dapat mengubah grup dengan chgrpke grup lain Anda anggota.

Pertanyaan Terkait: chown diizinkan untuk pengguna non root?

Mark Stosberg
sumber
2

jika Anda memiliki akses ke pengguna B, Anda bisa menyalin file saat login sebagai B. Jika Anda juga memiliki akses ke pengguna A, Anda kemudian bisa masuk dan menghapus file asli. Dan akhirnya ganti nama file yang disalin, ke nama asli (sekali lagi sebagai B), meninggalkan Anda dengan file yang pada dasarnya sama, dimiliki oleh pengguna yang berbeda.

Jelas bukan file SAMA, tetapi jika Anda hanya peduli dengan isi file, ini triknya

kuvic
sumber
1

Anda dapat mengubah kepemilikan file atau folder tanpa sudo, selama Anda telah membaca / menulis izin untuk hal itu, dan Anda hanya dapat mengubah pemiliknya kepada ANDA, bukan menjadi pengguna yang sewenang-wenang. Caranya adalah dengan hanya menyalin apa pun itu, hapus yang asli lalu pindahkan salinan Anda ke tempatnya. Sayangnya, ini melibatkan penyalinan lengkap segala sesuatu, tetapi apa yang Anda lakukan.

mis. 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
sumber