บ่อยครั้งที่ฉันพบไฟล์ที่ฉันจำเป็นต้องเป็นเจ้าของ ปกติฉันจะใช้cacls
สำหรับการเปลี่ยนสิทธิ์ ntfs แต่ดูเหมือนจะไม่ได้เป็นเจ้าของ ภายใต้ระวัง * chown me:me <file>
ฉันจะทำงานบางอย่างเช่น มีหน้าต่างที่เทียบเท่าchown
หรือไม่
บ่อยครั้งที่ฉันพบไฟล์ที่ฉันจำเป็นต้องเป็นเจ้าของ ปกติฉันจะใช้cacls
สำหรับการเปลี่ยนสิทธิ์ ntfs แต่ดูเหมือนจะไม่ได้เป็นเจ้าของ ภายใต้ระวัง * chown me:me <file>
ฉันจะทำงานบางอย่างเช่น มีหน้าต่างที่เทียบเท่าchown
หรือไม่
คำตอบ:
subinaclเป็นเครื่องมือไฟฟ้าของ Windows ดูแลระบบสำหรับการทำทุกอย่างเกี่ยวกับการเป็นเจ้าของและ ACL คุณสามารถเปลี่ยนความเป็นเจ้าของให้กับผู้อื่นที่ไม่ใช่แค่คุณ ( คุณไม่สามารถทำได้ด้วย GUI )
subinacl /file test.txt /setowner=domain\foo
สิ่งนี้ช่วยให้คุณตั้งค่าการอนุญาตให้กับผู้ใช้ที่คุณต้องการโดยไม่ต้องเป็นผู้ดูแลระบบ (เพราะฉันเชื่อว่าต้องใช้ takeown.exe)
คุณกำลังมองหา "TAKEOWN.EXE" ซึ่งเป็นครั้งแรกใน Windows Server 2003 เป็นองค์ประกอบมาตรฐานและฉันเชื่อว่ารายการชุดทรัพยากรก่อน มันมีอยู่ใน Windows 7 และอาจเป็นระบบที่ใหม่กว่า
takeown /f <some-file-or-folder> /r
/r
ดำเนินการซ้ำในทุกลูกของโฟลเดอร์ที่ระบุ ซึ่งแตกต่างจากsubinacl
คุณต้องเข้าสู่ระบบเป็นผู้ใช้ที่คุณกำลังพยายามที่จะเป็นเจ้าของกับ; หรือคุณสามารถกำหนดความเป็นเจ้าของให้กับกลุ่ม "ผู้ดูแลระบบ" ได้
นี่คือสำเนาของเอกสารประกอบดังที่เก็บรักษาไว้ในSS64 :
ไวยากรณ์ TAKEOWN [/ s คอมพิวเตอร์ [/ u [โดเมน] ชื่อผู้ใช้ [/ p [รหัสผ่าน]]] / f ชื่อไฟล์ [/ a] [/ r [/ d {Y | N}]]
Key / s Computer ชื่อหรือที่อยู่ IP ของคอมพิวเตอร์ระยะไกล (ห้ามใช้แบ็กสแลช) default = คอมพิวเตอร์เฉพาะที่ พารามิเตอร์นี้ใช้กับไฟล์และโฟลเดอร์ทั้งหมดที่ระบุในคำสั่ง
/ u [โดเมน] ชื่อผู้ใช้เรียกใช้สคริปต์ด้วยสิทธิ์ของบัญชีผู้ใช้ที่ระบุ default = สิทธิ์ของระบบ
/ p [รหัสผ่าน] รหัสผ่านของบัญชีผู้ใช้ที่ระบุในพารามิเตอร์ / u
/ f FileName ชื่อไฟล์, เส้นทาง UNC หรือรูปแบบชื่อไดเรกทอรี ยอมรับอักขระตัวแทน *
/ a ให้สิทธิ์การเป็นเจ้าของกลุ่มผู้ดูแลระบบแทนผู้ใช้ปัจจุบัน
/ r ทำการดำเนินการซ้ำในไฟล์ทั้งหมดในไดเรกทอรีและไดเรกทอรีย่อยที่ระบุ
/ d {Y | N} ไม่แสดงพรอมต์การยืนยันที่ปรากฏขึ้นเมื่อผู้ใช้ปัจจุบันไม่มีสิทธิ์ "รายการโฟลเดอร์" ในไดเรกทอรีที่ระบุและใช้ค่าเริ่มต้นแทน: Y: รับสิทธิ์เป็นเจ้าของไดเรกทอรี N: ข้ามไดเรกทอรี โปรดทราบว่าคุณต้องใช้ตัวเลือกนี้ร่วมกับตัวเลือก / r หากไม่ได้ระบุพารามิเตอร์ / a ความเป็นเจ้าของไฟล์จะถูกกำหนดให้กับผู้ใช้ที่เข้าสู่ระบบคอมพิวเตอร์ในปัจจุบัน
รูปแบบผสมที่ใช้ (? และ *) ไม่สนับสนุนโดยคำสั่ง takeown
หลังจากเปลี่ยนเจ้าของสำหรับไฟล์ / โฟลเดอร์แล้วคุณสามารถกำหนดสิทธิ์แบบเต็มให้กับไฟล์และอ่านหรือลบได้ในภายหลัง
เป็นเจ้าของและสิทธิ์ทั้งหมดของโฟลเดอร์และทุกอย่างภายใน:
takeown /F somedir /A /R
icacls somedir /grant:r User:F /T
ตรวจสอบให้แน่ใจว่าได้เริ่ม Command Prompt ในฐานะผู้ดูแลระบบ!
ฉันต้องเริ่ม Command Prompt ในฐานะผู้ดูแลระบบมันทำงานให้ฉันใน Windows 8.1 ด้วยความลำบากใจของ Windows 8.1 ฉันต้องค้นหา "command" คลิกขวาที่ไอคอน Command Prompt สำหรับฉันเพื่อดูตัวเลือก "Run as Administrator" ฉันมีพรอมต์คำสั่งตรึงที่แถบงานของฉัน แต่การคลิกขวาที่มันจะไม่แสดงตัวเลือก "เรียกใช้ในฐานะผู้ดูแลระบบ"
ใน Windows 10 คุณควรใช้ "Run as Administrator" เป็นตัวเลือกคลิกขวา
ไวยากรณ์ Takeown :
takeown [/s <Computer> [/u [<Domain>\]<User name> [/p [<Password>]]]] /f <File name> [/a] [/r [/d {Y|N}]]
takeown อ้างอิง
Icacls ไวยากรณ์ :
icacls <FileName>[/GRANT [: r] <Sid>: <Perm> [...]] [/ Denegar <Sid>: <Perm> [...]] [/Remove [:g|:d]] <Sid> [...]] [/ t] [/ c] [/ l] [/ q] [/ setintegritylevel <Level>: <Policy> [...]]Icacls <Directory>[/ sustituir <SidOld><SidNew>[...]] [/ restore <ACLfile>[/ c] [/ l] [/q]]
icacls อ้างอิง
ฉันรู้ว่านี่เป็นโพสต์เก่าจริงๆแต่มีวิธีการติดตั้งใน Windows 7 และใหม่กว่า (อาจเป็นใน Windows Vista แต่ฉันไม่แน่ใจ) เรียกใช้ต่อไปนี้จากพรอมต์คำสั่งที่เพิ่มขึ้นในโฟลเดอร์ที่คุณต้องการรีเซ็ต /t
บอกicacls
ให้ดำเนินการซ้ำแล้วซ้ำอีก
icacls .\* /setowner %UserDomain%\%UserName% /t
icacls .\* /reset /t
คำสั่งแรกจะรีเซ็ตเจ้าของเป็นผู้ที่เคยเข้าสู่ระบบผ่านตัวแปรสภาพแวดล้อม แน่นอนสามารถใช้ชื่อเฉพาะแทนได้
คำสั่งที่สองจะบังคับให้มีการอนุญาตให้นำต้นไม้ลงในโฟลเดอร์และไฟล์ย่อยทั้งหมดอีกครั้ง
หวังว่าสิ่งนี้จะช่วยให้ใครบางคนในอนาคต
คุณอาจต้องการดูที่SetACLซึ่งเป็นมีดกองทัพสวิสของการจัดการสิทธิ์ นี่คือตัวอย่างของวิธีการกำหนดความเป็นเจ้าของของไฟล์ทั้งหมดในไดรฟ์ C: ถึง "ผู้ดูแลระบบ" และลบการป้องกันการสืบทอดจากวัตถุลูกทั้งหมดในครั้งเดียว:
SetACL.exe -on "C:\\" -ot file -actn setprot
-op "dacl:np;sacl:nc"
-rec cont_obj
-actn setowner -ownr "n:S-1-5-32-544;s:y"
-silent
นอกจากนี้คุณยังสามารถเพิ่ม
ใน Windows Server 2003 R2 (และใหม่กว่า) คุณสามารถใช้ประโยชน์จากเครื่องมือในตัวicacls.exeเพื่อเปลี่ยนความเป็นเจ้าของจากบรรทัดคำสั่งรวมทั้งการจัดการ cacls.exe แบบดั้งเดิมทั้งหมดที่ขยาย ...
โปรดทราบว่าค่าเริ่มต้นของ icacls.exe เป็นโหมด "แก้ไข" ในขณะที่ cacls.exe ใช้ค่าเริ่มต้นเป็นโหมด "แทนที่" - เป็นการต้อนรับการเปลี่ยนแปลงสำหรับพวกเราที่ถูกกัด (มากกว่าหนึ่งครั้ง) โดยความแตกต่างเล็กน้อยของ cacls!
อีกทางเลือกหนึ่งคือfileacl มันมีขนาดเล็กและสามารถตั้งค่า / ยกเลิกการตั้งค่าสถานะ "สืบทอด / ไม่สืบทอด" บนวัตถุซึ่งแตกต่างจากหน้าต่างส่วนใหญ่ utils
ฉันพบวิธีแก้ปัญหาโดยใช้เครื่องมือ Windows: cacls
cacls <file or directory> /E /T /G <user>:F
takeown /f *.jpg
icacls *.jpg /grant "Everyone":F
(โปรดทราบว่าอาจไม่มีอยู่ใน Windows "ทุกคน" ที่ไม่ใช่ภาษาอังกฤษเช่นในภาษาเยอรมัน Windows จะใช้งานได้กับ "Jeder" - คนเกียจคร้านจริง ๆ ที่ Windows แปลตัวเลือกคำสั่ง!)