Windows บอกว่าสิทธิ์การเข้าถึงถูกปฏิเสธสำหรับไฟล์ที่ฉันเป็นเจ้าของ


4

ดังนั้นเมื่อเร็ว ๆ นี้ Windows ได้ตัดสินใจที่จะหลอกหลอนฉันและทำให้มันเป็นไปไม่ได้ที่จะยอมรับกับที่เก็บ git ของฉัน

มันทำให้ฉันมีข้อผิดพลาดนี้ในคอมไพล์ (ใน Cygwin):

$ git commit -a
error: insufficient permission for adding an object to repository database .git/objects

error: NVG510Fixer/NVG510Fixer/Resources/layout/WarningConfirmation.axml: failed to insert into database
error: unable to index file NVG510Fixer/NVG510Fixer/Resources/layout/WarningConfirmation.axml
fatal: updating files failed

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

ป้อนคำอธิบายรูปภาพที่นี่

Windows กำลังทำอะไรอยู่! ฉันเป็นผู้ดูแลระบบ คอมพิวเตอร์เครื่องนี้ไม่ได้เข้าร่วมกับโดเมน ฉันจะไม่สามารถเข้าถึงไฟล์ที่ฉันสามารถเข้าถึงได้เมื่อไม่กี่นาทีที่ผ่านมา!?


คุณแน่ใจหรือไม่ว่าพรอมต์ Cygwin ถูกเปิดด้วยการเข้าถึงของผู้ดูแลระบบ?
Ankit

คำตอบ:


5

ใช้takeownคำสั่งจากบรรทัดคำสั่งการจัดการ มีความเป็นไปได้ที่จะลบการFull Accessอนุญาตไปยังกลุ่มผู้ดูแลระบบหากเป็นไปได้ว่าเวอร์ชัน GUI ไม่สามารถเปลี่ยนการอนุญาตได้ แต่คำสั่งบรรทัดคำสั่งยังคงสามารถทำได้

takeown /f C:\dev\nvg510controls\.git /r /d Y

หากคุณต้องการความหรูหราเป็นพิเศษคุณสามารถกำหนดสิทธิ์ผ่านทางบรรทัดคำสั่งได้เช่นกัน

icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F)

หากคำสั่งเหล่านั้นไม่ทำงานให้ดาวน์โหลดPsExecและทำตามคำสั่ง

psexec -i -s icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F) 

ที่จะทำงานicaclsในฐานะผู้ใช้ระบบแทนผู้ใช้ผู้ดูแลระบบ


พยายามทำสิ่งนี้ในสถานการณ์ที่คล้ายคลึงกันและ "ข้อผิดพลาด: การเข้าถึงถูกปฏิเสธ"
John

1
@ John แล้วคุณไม่ได้เรียกใช้จากบรรทัดคำสั่งการบริหาร คุณต้องแน่ใจว่าคุณเลือก "Run As Administrator" เมื่อคุณเปิดพรอมต์คำสั่ง
Scott Chamberlain

ฉันได้รับการเข้าถึงถูกปฏิเสธเช่นกันและฉันแน่นอนในพรอมต์คำสั่งของผู้ดูแลระบบ
Jason Southwell

@ JasonSouthwell ในสถานการณ์นั้นมีโอกาสที่ไฟล์จะได้รับการปกป้องในแบบที่ผู้ใช้ระบบเท่านั้นที่สามารถแก้ไขได้ ในสถานการณ์นั้นให้ใช้PsExecและทำคำสั่งpsexec -i -s icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F)ที่จะทำงานicaclsในฐานะผู้ใช้ SYSTEM
Scott Chamberlain

ฉันลองแล้วไม่เห็นอะไรเลย ฉันคิดออกว่า ในกรณีของฉันมันเป็นโฟลเดอร์ที่ยังคงเปิดอยู่ในเปลือกทุบตี Windows 10 Anniversary Edition ที่ไหนสักแห่งบนเดสก์ทอปของฉัน เห็นได้ชัดว่าเมื่อ git พยายามที่จะลบโฟลเดอร์มันยังคงเปิดอยู่ที่นั่นและทำให้โฟลเดอร์อยู่ในสถานะที่ถูกลืม cd'ing จากโฟลเดอร์ใน bash ทำให้โฟลเดอร์หายไปโดยอัตโนมัติ แปลกฉันไม่เห็นทุบตีถือล็อคในโฟลเดอร์นั้นว่า
Jason Southwell

2

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

ปัญหาพบว่าในเซิร์ฟเวอร์ใหม่ตัวตรวจสอบไวรัสระดับองค์กรเห็นกิจกรรมมากมายในไดเรกทอรี. git จากกระบวนการ Git ทำเครื่องหมาย Git ว่าเป็นกระบวนการที่น่าสงสัยและหยุดการอนุญาตให้เข้าถึงไฟล์ใด ๆ


0

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


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