sudo tar การเปลี่ยนแปลงการแตกไฟล์เป็นเจ้าของให้ผู้ใช้


10

ฉันใช้คำสั่งนี้:

$ sudo tar xvzf nexus-latest-bundle.tar.gz

ไฟล์ที่แตกออกมานั้นเป็นของผู้ใช้ที่ไม่รู้จัก (1001):

drwxr-xr-x 8     1001     1001      4096 Dec 16 18:37 nexus-2.12.0-01
drwxr-xr-x 3     1001     1001      4096 Dec 16 18:47 sonatype-work

ไม่ควรจะเป็นเจ้าของรากภายใต้การกำหนดค่าปกติหรือไม่

ฉันกำลังทำงานกับการติดตั้ง linux ที่จำลองจาก AWS AMI

คำตอบ:


15

เมื่อแตกไฟล์เป็นรูท tar จะใช้ความเป็นเจ้าของดั้งเดิม คุณสามารถลบล้างสิ่งนั้นโดยใช้--no-same-ownerตัวเลือก (หรือ-o)

ไฟล์ tar ของคุณอ้างถึงผู้ใช้ / กลุ่มซึ่งไม่มีอยู่ในระบบที่คุณแตกไฟล์

หากคุณแยกไฟล์ด้วยตัวคุณเอง (ผู้ใช้ที่ไม่มีสิทธิพิเศษ) คุณสามารถสร้างไฟล์ได้ด้วยตัวเองเท่านั้น

คู่มือ GNU tarพูดว่า:

--same-owner
เมื่อแตกไฟล์เก็บถาวร tar จะพยายามรักษาเจ้าของที่ระบุในไฟล์เก็บถาวร tar โดยมีตัวเลือกนี้อยู่ นี่คือพฤติกรรมเริ่มต้นสำหรับ superuser ตัวเลือกนี้มีผลสำหรับผู้ใช้ทั่วไปเท่านั้น ดูในส่วนการจัดการแอตทริบิวต์ของแฟ้ม


1
ตกลงดังนั้นสิ่งนี้จะเกิดขึ้นเฉพาะเมื่อเป็นรูทเพราะถ้าฉันรันคำสั่งโดยไม่ใช้ sudo: 'tar xzvf nexus-latest-bundle.tar.gz' แสดงว่าเจ้าของมีการตั้งค่าเป็นผู้ใช้ปัจจุบันของฉันหรือไม่
raspacorp

2
@raspacorp: ในฐานะผู้ใช้ที่ไม่ใช่รูทคุณไม่มีสิทธิ์สร้างไฟล์ที่มีความเป็นเจ้าของนอกเหนือจากของคุณเอง ดังนั้นเมื่อจำเป็นไฟล์ต่างๆก็ถูกสร้างขึ้นพร้อมกับคุณในฐานะเจ้าของ
Nate Eldredge

1

บุคคลที่สร้างไฟล์ tar มี ID ผู้ใช้และ ID กลุ่มที่มีประสิทธิภาพ (UID: GID) ที่ 1001: 1001 เนื่องจากtarโดยค่าเริ่มต้นรักษาความเป็นเจ้าของและสิทธิ์เมื่อคุณขยายคุณจะได้รับค่าเหล่านี้ หากคุณมีผู้ใช้ที่มี UID: GID 1001: 1001 ในระบบของคุณไฟล์เหล่านี้จะเป็นของผู้ใช้รายนั้น

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