วิธีระบุเจ้าของ / กลุ่มของโฟลเดอร์ที่สร้างโดยทางโปรแกรมไว้


0

พื้นหลังเล็กน้อยก่อน: ฉันกำลังสร้างเว็บไซต์ Drupal บนเครื่อง Windows 7 Drupal มีโมดูลภาพซึ่งในระยะสั้นช่วยให้สามารถแคชรูปภาพได้ เมื่อคุณสร้างสไตล์ของภาพโมดูลจะสร้างไดเรกทอรี ตัวอย่างเช่นถ้าคุณสร้างรูปแบบโดยอัตโนมัติจะสร้างโฟลเดอร์my_image_style sites/default/files/img/styles/my_image_style/and/some/other/folders/beneathอย่างไรก็ตามไดเรกทอรีที่สร้างขึ้นมีเจ้าของ: กลุ่มที่มีสิทธิ์Administrators:System ทุกสิ่งทุกอย่างไปตลอดทางถึงรากd--------+ chrisrockwell:NoneApache (นี่คือการตั้งค่า WAMP5) เช่นchrisrockwell:Noneกัน

โมดูล Drupal จำเป็นต้องสร้างไฟล์ในไดเรกทอรีนี้ แต่ทำไม่ได้เนื่องจากปัญหาการอนุญาต

ดังนั้นในการตั้งค่านี้ฉันจะระบุผู้ใช้: กลุ่มไดเรกทอรีที่สร้างขึ้นได้อย่างไร

ฉันไม่แน่ใจว่ามันมีผลกระทบหรือไม่ แต่ฉันทำทุกอย่างภายใน cygwin เป็นส่วนใหญ่ (เคลื่อนที่ไปมาเปิดเป็นกลุ่ม)

โปรดแจ้งให้เราทราบหากคุณต้องการข้อมูลเพิ่มเติมหรือเหมาะกับเว็บไซต์อื่น

UPDATE: ถ้าฉัน chmod 777 ทั้งไดเรกทอรีไซต์โฟลเดอร์เดียวที่ฉันได้รับอนุญาตถูกปฏิเสธคือโฟลเดอร์ image_style ที่สร้างขึ้นโดยสคริปต์ของ Drupal


หมายเหตุd---------+ไม่ได้หมายความว่าไม่มีการอนุญาต +หมายความว่ามีรายการที่เกี่ยวข้องกับการเข้าถึงไดเรกทอรีที่ไม่สามารถแสดงผลเป็นสิทธิ์ที่เรียบง่าย
Android Darth

@DarthAndroid ฉันคิดว่ามันเกี่ยวข้องกับ Windows ACL's แม้ว่าฉันจะ chmod -R 777 ไดเรกทอรีทั้งหมดทำงานเป็นผู้ดูแลสิทธิ์ยังคง -rw-r - r-- ฉันไม่รู้อะไรเกี่ยวกับ ACL มากนักดังนั้นฉันจึงมีปัญหาในการแก้ไขปัญหา
Chris Rockwell

ฉันไปไกลถึงให้ผู้ใช้ทุกคนทุกกลุ่มควบคุมไดเรกทอรีนี้โดยเฉพาะเพื่อประโยชน์
Chris Rockwell

คำตอบ:


0

หมายเหตุ Cygwin

นี่เป็นวิธีแก้ปัญหาแทนที่จะเป็นคำตอบ

ฉันเพิ่งพบปัญหาที่คล้ายกันกับ Cygwin สาเหตุที่ดูเหมือนจะเป็นการกำหนดค่าที่ผิดในวิธีที่ผู้ใช้ windows และกลุ่มถูกแมปกับผู้ใช้และกลุ่ม cygwin โดยเฉพาะฉันเห็นว่าแท็บ "ความปลอดภัย" ในกล่องโต้ตอบ "คุณสมบัติไฟล์" มีรายการ "กลุ่มหรือชื่อผู้ใช้" เช่น OWNER และ GROUP ฉันถือว่าหน้าต่างเหล่านี้ไม่รองรับ

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

wraptor: ~/tmp/su/find-xargs
$ icacls.exe . /reset /t
processed file: .
processed file: .\.search-dirs
processed file: .\.test
processed file: .\dirz
processed file: .\foo
processed file: .\moo
processed file: .\sensors
processed file: .\.test\test.java
processed file: .\dirz\3.java
processed file: .\foo\2.java
processed file: .\moo\1.java
processed file: .\sensors\light.java
Successfully processed 12 files; Failed processing 0 files

หลังจากนี้บางครั้งก็จำเป็นต้องสำรวจลำดับชั้นและรีเซ็ตบิตสิทธิ์:

find . -type d -exec chmod 755 {} +
find . -type f -exec chmod 644 {} +

หลังจากขั้นตอนเหล่านี้ไฟล์เป็น "เจ้าของ" อย่างถูกต้องโดย windows-me หรือผู้ใช้ผู้ดูแลระบบและโปรแกรม windows ดั้งเดิมสามารถอ่านและเขียนไฟล์เหล่านี้ได้ตามปกติ


พยายามตอบคำถาม

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

เช่น (ทุบตี)

umask 0022

สิ่งนี้จะทำให้ไฟล์และโฟลเดอร์ทั้งหมดถูกสร้างด้วยสิทธิ์ 644 และ 755

เช่น (หลาม)

$ cat moo.py
import os
for _ in ('0022', '0002', '0077'):
        os.umask(int(_, 8))
        with open('moo.f-%s' % _, 'w') as f:
                f.writelines("moo\nfoo")

$ python moo.py; ll moo.f-*
-rw-rw-r-- 1 1K 2013-07-24 07:46 moo.f-0002
-rw-r--r-- 1 1K 2013-07-24 07:46 moo.f-0022
-rw------- 1 1K 2013-07-24 07:46 moo.f-0077

PHP มีฟังก์ชั่นumask "เหมือนกัน"

ข้อมูลเพิ่มเติมที่นี่: man 3p umask


ฉันจะดู umask - ขอบคุณ การทำงานของคุณแก้ไขปัญหาปัจจุบันของฉันและอนุญาตให้ฉันกลับไปทำงานกับโมดูลนี้ได้ ฉันจะทราบว่าฉันต้องเรียกใช้. exe จาก cmd มากกว่า cygwin เพื่อให้มีผล ขอบคุณมาก!
Chris Rockwell

อย่าพูดถึงมัน :) ถ้าคุณคิดว่าสิ่งที่ทำให้ Cygwin กับการปิดบังหน้าต่างการอนุญาตนั้นฉันขอขอบคุณสำหรับความคิดเห็น
ЯрославРахматуллин

1

ฉันเห็นปัญหาที่คล้ายกันกับแอปพลิเคชันอื่น ๆ ใน Windows การตั้งกลุ่มผิดเมื่อทำงานในฐานะผู้ดูแลระบบ ฉันไม่ทราบวิธีแก้ไขปัญหาการสร้างไดเรกทอรีดั้งเดิม แต่คุณสามารถมอบหมายเจ้าของและกลุ่มสำหรับไดเรกทอรีทั้งหมดใน cygwin โดยใช้chown:

chown -R chrisrockwell:none my_image_style

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