วิธีการเป็นเจ้าของไฟล์จากบรรทัดคำสั่ง?


34

บ่อยครั้งที่ฉันพบไฟล์ที่ฉันจำเป็นต้องเป็นเจ้าของ ปกติฉันจะใช้caclsสำหรับการเปลี่ยนสิทธิ์ ntfs แต่ดูเหมือนจะไม่ได้เป็นเจ้าของ ภายใต้ระวัง * chown me:me <file>ฉันจะทำงานบางอย่างเช่น มีหน้าต่างที่เทียบเท่าchownหรือไม่


setACL ที่แย่เกินไปไม่ทำงานกับสคริปต์ด้านบน errormessages บน Win XP, 7 และ 8 และคุณจำเป็นต้องเป็น proffesor เพื่อค้นหาว่ามีอะไรผิดปกติหรือไม่

คำตอบ:


25

subinaclเป็นเครื่องมือไฟฟ้าของ Windows ดูแลระบบสำหรับการทำทุกอย่างเกี่ยวกับการเป็นเจ้าของและ ACL คุณสามารถเปลี่ยนความเป็นเจ้าของให้กับผู้อื่นที่ไม่ใช่แค่คุณ ( คุณไม่สามารถทำได้ด้วย GUI )

subinacl /file test.txt /setowner=domain\foo

สิ่งนี้ช่วยให้คุณตั้งค่าการอนุญาตให้กับผู้ใช้ที่คุณต้องการโดยไม่ต้องเป็นผู้ดูแลระบบ (เพราะฉันเชื่อว่าต้องใช้ takeown.exe)


ไม่ถูกต้องสำหรับwindows xpฉันสามารถดาวน์โหลด SUBINACL.exe (ชุดทรัพยากร Windows 2003) และใช้ใน Windows XP ได้หรือไม่
Kiquenet

แน่นอนคุณสามารถ! นั่นอาจเป็นสิ่งที่ฉันได้รับมา ลองที่นี่
crb

26

คุณกำลังมองหา "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

หลังจากเปลี่ยนเจ้าของสำหรับไฟล์ / โฟลเดอร์แล้วคุณสามารถกำหนดสิทธิ์แบบเต็มให้กับไฟล์และอ่านหรือลบได้ในภายหลัง


เนื้อหาที่เกษียณแล้ว microsoft.com/en-US/download/details.aspx?id=53314
Kiquenet

SS64 มีลิงค์เอกสารที่ดีกว่า: ss64.com/nt/takeown.html
jpaugh

17

เป็นเจ้าของและสิทธิ์ทั้งหมดของโฟลเดอร์และทุกอย่างภายใน:

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 อ้างอิง


1
โปรดระวังว่า icacls ฉายาบนชื่อพา ธ แบบยาว ข้อความแสดงข้อผิดพลาด "ไม่พบไฟล์" เป็นการทำให้เข้าใจผิดเล็กน้อย icalcs ที่แย่ลงยกเลิกการประมวลผลส่วนที่เหลือของต้นไม้โดยไม่มีข้อความ คุณสามารถใช้เคล็ดลับในการสร้างวอลุ่ม SUBST ให้ลึกลงไปในแผนผังเพื่อหลีกเลี่ยงปัญหานี้ได้ในบางครั้ง Takeown.exe ไม่ยอมรับชื่อยาว ๆ
Andrew Dennison

ไม่ถูกต้องสำหรับWindows XP
Kiquenet

8

ฉันรู้ว่านี่เป็นโพสต์เก่าจริงๆแต่มีวิธีการติดตั้งใน Windows 7 และใหม่กว่า (อาจเป็นใน Windows Vista แต่ฉันไม่แน่ใจ) เรียกใช้ต่อไปนี้จากพรอมต์คำสั่งที่เพิ่มขึ้นในโฟลเดอร์ที่คุณต้องการรีเซ็ต /tบอกicaclsให้ดำเนินการซ้ำแล้วซ้ำอีก

icacls .\* /setowner %UserDomain%\%UserName% /t
icacls .\* /reset /t

คำสั่งแรกจะรีเซ็ตเจ้าของเป็นผู้ที่เคยเข้าสู่ระบบผ่านตัวแปรสภาพแวดล้อม แน่นอนสามารถใช้ชื่อเฉพาะแทนได้

คำสั่งที่สองจะบังคับให้มีการอนุญาตให้นำต้นไม้ลงในโฟลเดอร์และไฟล์ย่อยทั้งหมดอีกครั้ง

หวังว่าสิ่งนี้จะช่วยให้ใครบางคนในอนาคต


คำสั่งแรกก็เพียงพอแล้วสำหรับฉัน
เบอนัวต์บลอนชอน

6

คุณอาจต้องการดูที่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นอกจากนี้คุณยังสามารถเพิ่ม


3

ใน Windows Server 2003 R2 (และใหม่กว่า) คุณสามารถใช้ประโยชน์จากเครื่องมือในตัวicacls.exeเพื่อเปลี่ยนความเป็นเจ้าของจากบรรทัดคำสั่งรวมทั้งการจัดการ cacls.exe แบบดั้งเดิมทั้งหมดที่ขยาย ...

โปรดทราบว่าค่าเริ่มต้นของ icacls.exe เป็นโหมด "แก้ไข" ในขณะที่ cacls.exe ใช้ค่าเริ่มต้นเป็นโหมด "แทนที่" - เป็นการต้อนรับการเปลี่ยนแปลงสำหรับพวกเราที่ถูกกัด (มากกว่าหนึ่งครั้ง) โดยความแตกต่างเล็กน้อยของ cacls!


icacls เป็นสิ่งที่ดีเพราะมันรวมอยู่ใน windows รุ่นล่าสุดและอนุญาตให้กำหนดความเป็นเจ้าของให้กับผู้ใช้ใด ๆ
เดวิด


1

อีกทางเลือกหนึ่งคือfileacl มันมีขนาดเล็กและสามารถตั้งค่า / ยกเลิกการตั้งค่าสถานะ "สืบทอด / ไม่สืบทอด" บนวัตถุซึ่งแตกต่างจากหน้าต่างส่วนใหญ่ utils



0
  1. พร้อมรับคำสั่งเปิดในฐานะผู้ใช้ผู้ดูแลระบบและเปลี่ยนเป็นไดเรกทอรีที่มีปัญหา
  2. เป็นเจ้าของไฟล์ทั้งหมดที่นั่น ... ตัวอย่าง: takeown /f *.jpg
  3. ให้สิทธิ์การเข้าถึงแก่ผู้ใช้ที่คุณเลือก ... ตัวอย่าง: icacls *.jpg /grant "Everyone":F(โปรดทราบว่าอาจไม่มีอยู่ใน Windows "ทุกคน" ที่ไม่ใช่ภาษาอังกฤษเช่นในภาษาเยอรมัน Windows จะใช้งานได้กับ "Jeder" - คนเกียจคร้านจริง ๆ ที่ Windows แปลตัวเลือกคำสั่ง!)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.