การเรียกซ้ำที่เริ่มต้นด้วยไดเรกทอรีด้านบนไดเรกทอรีปัจจุบัน


27

ฉันไม่สามารถเข้าสู่บัญชี "admin" ของฉันและAlt+ Ctrl+ F1แสดงให้เห็นว่าไฟล์ทั้งหมดของฉันเป็นของผู้ใช้ "มาตรฐาน" ของฉัน แปลก

ดังนั้นฉันจึงเปลี่ยนเป็น/home/adminและทำ

sudo chown -R admin:admin *

(และ.*เกินไป)

ยิ่งใหญ่

จากนั้นฉันไม่สามารถเข้าสู่ระบบในฐานะผู้ใช้ "มาตรฐาน" ของฉันและปรากฎว่าไฟล์ทั้งหมดใน/home/standardตอนนี้เป็น "admin"

ค่อนข้างตลก ทำไมสิ่งนี้จึงเกิดขึ้น

sudo chown -R standard:standard /home/standard/*

ไม่สิ่งเดียวกันการเปลี่ยนแปลงเช่นเดียวกับ/home/admin/home/standard

ฉันสับสนมากกว่าปกติเพราะฉันพยายามอัปเกรดเป็น 15.04 และมันค่อนข้างทำให้คอมพิวเตอร์ของฉันพังดังนั้นฉันจึงเอาของกลับมาด้วย 14.04 โปรดอดทนกับฉัน


บางทีอาจเป็นลิงค์สัญลักษณ์ไปยังอีก? สิ่งที่ไม่ls -l /homeพูด?
ขับขี่เหล็ก

คำตอบ:


35

ปัญหานี้เกิดขึ้นเนื่องจากคุณทำงาน:

sudo chown -R admin:admin .*

เรารู้ว่า.ระบุไดเรกทอรีปัจจุบันและ..ระบุไดเรกทอรีหลัก เมื่อคุณรันคำสั่งด้วย.*ก็หมายความว่าตรงกับไฟล์ใด ๆ ที่ซ่อนอยู่ในไดเรกทอรีปัจจุบัน (ระบุด้วย.), ไดเรกทอรีปัจจุบันตัวเอง ( .), ไดเรกทอรีหลัก ( ..) ใส่อะไรก็ได้หลังจากนั้น.( *หมายถึง 0 ตัวอักษรขึ้นไป) เป็นผลให้ไดเรกทอรีหลักพร้อมกับทั้งหมดของมันไดเรกทอรีเด็กได้รับchown-ed admin:adminไป

ดูการทดสอบนี้:

test$ ls -al
drwxrwxr-x 4 foo foo 4096 Jun  3 07:15 .
drwxrwxr-x 4 foo foo 4096 Jun  2 18:06 ..
drwxrwxr-x 2 foo foo 4096 Jun  3 07:15 egg
drwxrwxr-x 2 foo foo 4096 Jun  3 07:12 spam

$ sudo chown -R bar:bar spam/.*

test$ ls -al
drwxrwxr-x 4 bar  bar  4096 Jun  3 07:15 .
drwxrwxr-x 4 foo  foo  4096 Jun  2 18:06 ..
drwxrwxr-x 2 bar  bar  4096 Jun  3 07:15 egg
drwxrwxr-x 2 bar  bar  4096 Jun  3 07:12 spam

หากต้องการย้อนกลับคุณต้องไปchownยังไดเรกทอรีที่ได้รับผลกระทบอีกครั้ง

ฉันไม่แน่ใจว่าแผนของคุณคืออะไร แต่นี่คือความคิด:

  • ไปที่chownไดเรกทอรีใด ๆ ซ้ำ ๆ (รวมถึงไฟล์ที่ซ่อนอยู่):

    sudo chown -R foo:foo /spam/egg/
    
  • หากต้องการchownเฉพาะไฟล์ (รวมถึงไฟล์ที่ซ่อนอยู่) ภายในไดเรกทอรีนั้น (ไม่ใช่ไดเรกทอรี):

    (shopt -s dotglob && sudo chown -R foo:foo egg/*)
    
  • หากต้องการchownเฉพาะไฟล์ที่ไม่ได้ซ่อนอยู่ (ไม่มีไดเร็กทอรีเอง):

    sudo chown -R foo:foo egg/*
    

ขอบคุณฉันเข้าใจแล้ว ... duh; P ยังไม่รู้ว่าทำไมเจ้าของถึงเปลี่ยนไปตั้งแต่แรกเว้นแต่ว่ามันจะเกี่ยวข้องกับ Grub อย่างใดฉันก็เลยเกิดข้อผิดพลาดและกระแทกโปรแกรมติดตั้ง 14.04 กับฉัน ผู้ใช้มาตรฐานของฉันคือคนแรกที่ฉันสร้างและต่อมาฉันลดระดับผู้นั้นและสร้างใหม่
DavidP

@DavidP ฉันไม่ชัดเจนว่าคุณกำลังจะไป ..
heemayl

3

ฉันคิดว่ามันเป็นพารามิเตอร์ ". *" สำหรับไฟล์; ที่ตรงกับทุกอย่างที่ขึ้นต้นด้วย "." รวมถึง "." และไฟล์ ".. " ".. " เป็นไดเรกทอรีหลักซึ่งรวมทุกอย่างไว้ข้างใต้

วิธีที่ดีที่สุดคือการสำรองข้อมูลหนึ่งโฟลเดอร์และระบุโฟลเดอร์จริงที่คุณต้องการเปลี่ยน (/ home / admin)

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