เป็นไปได้หรือไม่ที่จะเปลี่ยนความเป็นเจ้าของไฟล์โดยไม่ต้องเข้าถึงรูท?


21

หากผู้ใช้ A เป็นเจ้าของ file.txt ผู้ใช้ A สามารถเปลี่ยนความเป็นเจ้าของไฟล์เป็น User B ได้โดยไม่ต้องเข้าถึงรูทหรือไม่? เมื่อฉันเรียกใช้ Chown B file.txt ในฐานะผู้ใช้กฉันได้รับข้อผิดพลาดการดำเนินการที่ไม่ได้รับอนุญาต สำหรับฉันแล้วดูเหมือนว่าเนื่องจากผู้ใช้ A เป็นเจ้าของไฟล์พวกเขาควรจะสามารถเปลี่ยนความเป็นเจ้าของ แต่ฉันไม่เห็นวิธีที่จะทำ ขอบคุณสำหรับความช่วยเหลือ!


4
คุณสามารถใส่ข้อมูลที่ใส่ร้ายในไฟล์และเปลี่ยนความเป็นเจ้าของเป็นเฟรมใครสักคน :) ฉันเดาว่ามันเป็นข้อโต้แย้งหนึ่งที่ยอมให้สิ่งที่คุณแนะนำ
roadmr

1
นอกจากนี้ขนาดเล็ก: AFAIU คุณสามารถเปลี่ยนกลุ่มการเป็นเจ้าของของไฟล์ที่คุณเป็นเจ้าของโดยมีเงื่อนไขว่าคุณเป็นสมาชิกของกลุ่มที่คุณกำลังจะเปลี่ยนไป
Matthijs Kooijman

คำตอบ:


7

หากผู้ใช้ A เป็นเจ้าของfile.txtเขาจะไม่สามารถเปลี่ยนความเป็นเจ้าของสิทธิ์file.txtโดยไม่ต้องใช้สิทธิ์การเข้าถึงรูท / sudo นี่คือคุณสมบัติและไม่ใช่ข้อผิดพลาด และหนึ่งในหลาย ๆ เหตุผลที่ผู้เฒ่าเลือกที่จะนำคุณสมบัตินี้เข้ามาได้รับการอธิบายในความคิดเห็นสำหรับคำถามของคุณโดยroadmr

ด้านล่างบรรทัด:คุณสามารถเปลี่ยนการอนุญาตของไฟล์ที่ใช้chmodหากคุณเป็นเจ้าของไฟล์นั้นโดยไม่มีสิทธิ์ root / sudo แต่คุณไม่สามารถเปลี่ยนความเป็นเจ้าของไม่ว่าจะเป็นผู้ใช้หรือกลุ่ม (ใช้อย่างใดอย่างหนึ่งchownหรือchgrp) แม้ว่าคุณจะเป็น เจ้าของไฟล์ที่ไม่มีสิทธิ์ root / sudo นี่คือคุณสมบัติและไม่ใช่ข้อผิดพลาด


2
เป็นส่วนหนึ่งของความผิดนี้ ผู้ใช้ที่ไม่ใช่รูทสามารถเปลี่ยนกลุ่มกลุ่มอื่นที่เป็นสมาชิกได้ ลองtouch t; ls -l t; chgrp lpadmin t; ls -l t(สมมติว่าคุณอยู่ในกลุ่ม lpadmin) ดูคำตอบและคำถามที่เชื่อมโยงของฉันด้วย
Mark Stosberg

1
ผู้สูงอายุเข้าใจผิด หากผู้ใช้ im และ IM เป็นผู้ใช้ B ด้วยเช่นกันฉันควรเปลี่ยนความเป็นเจ้าของจาก A เป็น B หากลงชื่อเข้าใช้ด้วยชื่อ A และฉันมีรหัสผ่านเป็น B หรือในทางกลับกัน
aishu

@aishu โดยหลักการแล้วคุณสามารถทำได้โดยการคัดลอกไฟล์เป็น B แล้วลบมันเป็น A. แม้ว่าจะไม่ค่อยเป็นประโยชน์สำหรับไฟล์ขนาดใหญ่
Holger Böhnke

4

ไม่คุณไม่สามารถเปลี่ยนเจ้าของไฟล์โดยไม่ต้องเข้าถึง แต่ถ้าคุณเป็นเจ้าของไฟล์คุณสามารถเปลี่ยนการอนุญาตของไฟล์ด้วยchmodและอาจเปลี่ยนกลุ่มด้วยchgrpเป็นกลุ่มอื่นที่คุณเป็นสมาชิก

คำถามที่เกี่ยวข้อง: chown ได้รับอนุญาตให้ผู้ใช้ที่ไม่ใช่รูท?


2

หากคุณมีสิทธิ์เข้าถึงผู้ใช้ B คุณสามารถคัดลอกไฟล์ในขณะที่เข้าสู่ระบบในชื่อ B หากคุณมีสิทธิ์เข้าถึงผู้ใช้ A คุณสามารถเข้าสู่ระบบและลบไฟล์ต้นฉบับได้ และในที่สุดก็เปลี่ยนชื่อไฟล์ที่คัดลอกไปเป็นชื่อเดิม (อีกครั้งเป็น B) ทำให้คุณมีไฟล์เดียวกันเป็นหลักโดยผู้ใช้อื่นเป็นเจ้าของ

เห็นได้ชัดว่าไม่ใช่ไฟล์ SAME แต่หากคุณใส่ใจเฉพาะเนื้อหาของไฟล์สิ่งนี้จะเป็นการหลอกลวง


1

คุณสามารถเปลี่ยนความเป็นเจ้าของไฟล์หรือโฟลเดอร์โดยไม่ต้อง 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.