มี Windows เทียบเท่ากับ Linux chmod
เพื่อเปลี่ยนการอนุญาตของไฟล์หรือไม่
มี Windows เทียบเท่ากับ Linux chmod
เพื่อเปลี่ยนการอนุญาตของไฟล์หรือไม่
คำตอบ:
Greg กล่าวถึง attrib
- แต่attrib
ไม่ใกล้เคียงchmod
- attrib
สามารถตั้งค่าคุณสมบัติอ่านอย่างเดียว / ซ่อนของไฟล์เดียว - มันไม่ได้ให้การควบคุมที่ละเอียดเหมือนที่icacls
ทำ
icacls
ตั้งค่า / รีเซ็ตรายการควบคุมการเข้าถึงดังนั้นคุณสามารถให้ / ปฏิเสธสิทธิ์สำหรับ SID และกลุ่มแต่ละรายการ มันค่อนข้างซับซ้อนแม้ว่า
นี่คือตัวอย่างที่ผมได้บันทึกไว้ในของฉันเค้า GitHub ; จะรีเซ็ตความเป็นเจ้าของและรายการควบคุมการเข้าถึงสำหรับไฟล์ทั้งหมดในโฟลเดอร์และมีประโยชน์อย่างยิ่งในการแก้ไขปัญหาที่น่ารำคาญ "คุณต้องได้รับอนุญาตจาก .. เพื่อดำเนินการนี้" โดยเฉพาะอย่างยิ่งเมื่อทำการย้ายไฟล์จากการติดตั้งก่อนหน้า
icacls * /reset /t /c /q
รีเซ็ตจะแทนที่อันที่มีอยู่ด้วยรายการเริ่มต้น
/t
ทำหน้าที่วนซ้ำในทุกไฟล์โฟลเดอร์ & โฟลเดอร์ย่อย
/q
จะไม่แสดงข้อความความสำเร็จใด ๆ ที่
/c
ดำเนินต่อไปกับไฟล์ที่เหลือแม้จะมีข้อผิดพลาดเกิดขึ้น
คุณสามารถทำสิ่งต่าง ๆ เช่นสำรองข้อมูล ACL ที่มีอยู่ & นำไปใช้กับทุกสิ่งได้ ลองดูที่ss64ซึ่งอธิบายถึงตัวเลือก & สวิตช์ต่าง ๆ ที่ดีมาก
cmd
ที่คุณได้รับโดยการกดปุ่ม [Win] + [R] ขาดสิ่งเหล่านี้ สำหรับความต้องการพิเศษเช่นนี้ฉันมีช็อตคัต "Admin shell" โดยมี "Execute as administrator" (หรือคล้ายกัน; ฉันใช้ระบบ Windows ของเยอรมนี) (และมีพื้นหลังสีแดงเข้ม)
มี (เศร้า) ไม่สามารถเทียบเท่าแน่นอนเนื่องจาก Linux และ DOS / Windows ใช้คุณลักษณะสำหรับวัตถุประสงค์ที่แตกต่างกันและ (ตามที่ Chathuranga กล่าวก่อนหน้านี้) รูปแบบความปลอดภัยแตกต่างกัน:
H
) และ "system" ( S
) ซึ่งไม่มีเทียบเท่าใน Linux ที่นั่นไฟล์ถูกซ่อนไว้โดยการเติมชื่อด้วยจุด ( .
)A
แอตทริบิวต์"เก็บถาวร" ( ) ของ Windows เช่นกันx
แอตทริบิวต์"ปฏิบัติการ" ( ) Linux ในแอตทริบิวต์ไฟล์ DOS / WindowsD
) แอตทริบิวต์ ( แต่ก็ไม่สามารถเปลี่ยนแปลงได้อยู่แล้ว)ดอสแอตทริบิวต์แฟ้มR
(อ่านอย่างเดียว) เป็นผู้หนึ่งที่อาจได้รับการพิจารณาให้มีการเทียบเท่า: แอตทริบิวต์นี้ชุดคือประมาณเหมือนw
แอตทริบิวต์ทั้งหมดเป็นหายไป; แต่สิทธิ์ในการเปลี่ยนแอททริบิวนี้ขึ้นอยู่กับ ACL
อาจเป็นเรื่องดีที่จะมีchmod
/ chown
เทียบเท่าบน Windows อาจจะเขียนด้วยภาษาสคริปต์บางอย่างซึ่งในทางกลับกันattrib
และcacls
(หรือผู้สืบทอด) แต่ฉันไม่มี
CAP_LINUX_IMMUTABLE
) ในขณะที่การเข้าถึงแอททริบิวต์ชุดใน Windows นั้นมีทั้งหมดหรือไม่มีอะไรเลย มันเป็นข้อผิดพลาดทั่วไปในการใช้งานของchmod
สำหรับ Windows ที่จะใช้คำสั่งนี้เพื่อตั้งค่าคุณลักษณะไฟล์อ่านอย่างเดียว น่าเสียดายที่ระบบนั้นได้รับแจ้งตามที่โปรแกรมเมอร์ผู้พัฒนาพวกเขาเท่านั้น
chattr
คำสั่งนั้น แต่คุณไม่ได้หมายความว่าฉันจะ "สร้างความสับสนให้กับคุณสมบัติของไฟล์และการอนุญาต" ใช่ไหม AFAICS ทุกคำที่ฉันเขียนเกี่ยวกับคุณสมบัติของDOSยังคงถูกต้อง
chattr
ยกเว้น Windows มีแอตทริบิวต์ของไดเรกทอรีเนื่องจากไม่มี inode
chmod
ใน Windows เพราะไม่มีอะไรเหมือนแอตทริบิวต์ "mode" ของไฟล์ แอตทริบิวต์ชุดไฟล์มาตรฐานของ Windows ไม่มีส่วนเกี่ยวข้องกับสิ่งนี้ คุณลักษณะอ่านอย่างเดียวไม่ใช่สิทธิ์ของไฟล์ โดยพื้นฐานแล้วมันบอกว่าไฟล์นั้นเขียนด้วยหินดังนั้นความพยายามทั้งหมดในการแก้ไขมันจะต้องล้มเหลว แอตทริบิวต์ของไฟล์ "ไม่เปลี่ยนรูป" ของ Linux นั้นคล้ายกัน Windows ใช้ ACL สำหรับการอนุญาตเท่านั้นดังนั้น icacls.exe และสิ่งที่คล้ายกันคือคำสั่งที่คล้ายกันในหัวข้อของการอนุญาต
icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C
ทำงานเหมือนเครื่องรางเพื่อเปลี่ยนการอนุญาตในโฟลเดอร์สำหรับผู้ใช้โดเมน ข้อมูลเพิ่มเติมเกี่ยวกับและcacls
icacls
attrib
คำสั่งเป็นคู่ที่ใกล้เคียงที่สุดสำหรับสิ่งพื้นฐานมาก (อ่านอย่างเดียวธงถาวร) cacls
จากนั้นก็มีคำสั่ง ACL (รายการควบคุมการเข้าถึง) สุดท้าย แต่ไม่ท้ายสุดเนื่องจาก Windows เป็นไปตาม Posix จริงจึงมีแฟล็กที่เหมือนยูนิกซ์อยู่ หากคุณติดตั้งชุดเครื่องมือ Cygwin, chmod
คุณจะได้รับ (เล็กน้อยนอกหัวข้อเนื่องจากคุณกำลังมองหาคำสั่งเทียบเท่ายูนิกซ์การดาวน์โหลดและติดตั้ง Cgygwin อาจเป็นสิ่งที่น่าสนใจสำหรับคุณ)
ฉันใช้คำสั่ง Windows takeown.exe
เพื่อเปลี่ยนการอนุญาตใช้ไฟล์เป็น id ผู้ใช้ที่ล็อกอินปัจจุบันของฉัน: http://technet.microsoft.com/en-us/library/cc753024.aspx
ไม่มีสิ่งใดที่เรียกว่า chmod ใน windows เพราะโมเดลความปลอดภัยของ Windows นั้นแตกต่างจาก Linux คุณสามารถใช้attrib
คำสั่งเพื่อเปลี่ยนคุณสมบัติของวัตถุ (แต่พวกเขามีต่อคุณสมบัติระดับโลกมากขึ้น)
สำหรับฉันการแก้ปัญหาคือการติดตั้ง Cygwin และเพิ่มโฟลเดอร์ bin ลงในเส้นทางของระบบ จากนั้นหากคุณเรียกใช้ "chmod" ในบรรทัดคำสั่งมันจะทำงาน แม้ว่าฉันจะยังไม่ได้ตรวจสอบความถูกต้อง