Programlı olarak oluşturulan bir klasörün hangi sahibine / grubuna ait olduğu nasıl belirlenir


0

Önce küçük bir arka plan: Windows 7 makinelerinde bazı Drupal site yapımı yapıyorum. Drupal, kısaca görüntü önbelleğe almayı sağlayan bir görüntü modülüne sahiptir. Bir görüntü stili oluşturduğunuzda, modül bir dizin oluşturur. Örneğin, bir stil oluşturursanız my_image_style otomatik olarak bir klasör oluşturur sites/default/files/img/styles/my_image_style/and/some/other/folders/beneath. Ancak, oluşturulan dizinin sahibi: group Administrators:System izinle d--------+. Diğer her şey, kökünden sonuna kadar gidiyor chrisrockwell:None. Apache (bu bir WAMP5 kurulumudur) ayrıca chrisrockwell:None.

Drupal modülünün bu dizinde dosya yaratması gerekiyor, ancak izinler yüzünden yapamıyorum.

Peki, bu kurulumda, hangi kullanıcıya: grup oluşturulmuş bir dizine ait olduğunu nasıl belirleyebilirim?

Etkisi olup olmadığından emin değilim, ama çoğunlukla cygwin içindeki her şeyi yapıyorum (hareket etme, açılış, vim).

Lütfen ek bilgiye ihtiyaç duyduğunuz veya başka bir sitede daha uygun olup olmadığını bana bildirin.

GÜNCELLEME: Tüm site dizinini 777 chmod edersem, izin verilmeyen tek klasör, Drupal'in komut dosyası tarafından oluşturulan image_style klasörüdür.


Not, d---------+ hiçbir iznin olmadığı anlamına gelmez; + basit izinler olarak görüntülenemeyen dizine bağlı bir erişim listesi olduğu anlamına gelir.
Darth Android

@DarthAndroid Bunun Windows ACL'lerle ilgisi olduğunu düşünüyorum. Yönetici olarak çalışan dizinin tamamını -R 777 chmod bile, izinler hala -rw-r - r--. ACL'ler hakkında fazla bir şey bilmiyorum, bu yüzden sorun giderme sorunları yaşıyorum
Chris Rockwell

Her kullanıcıya, her gruba, bu dizin üzerindeki Tam Denetimi boşuna bırakmayacak kadar ileri gittim.
Chris Rockwell

Yanıtlar:


0

Cygwin açıklamaları

Bu bir cevaptan ziyade geçici bir çözümdür.

Geçenlerde Cygwin ile benzer sorunlarla karşılaştım. Nedeni, windows kullanıcılarının ve gruplarının cygwin kullanıcıları ve gruplarıyla nasıl eşleştirildiği konusunda yanlış bir yapılandırma gibi görünüyor. Özellikle, "dosya özellikleri" iletişim kutusundaki "Güvenlik" sekmesinin, OWNER ve GROUP gibi "Grup veya Kullanıcı Adı" girişlerini içerdiğini gördüm. Bunların pencereler tarafından desteklenmediğini farz ediyorum.

İçine bakarak değer olabilir mkpasswd kalıcı bir çözüm bulmak için Windows ACL'lerde yardımcı program ve okuma. Ancak, şu ana kadar Windows ACL'leri aşağıdaki gibi varsayılanlara sıfırlayarak tüm dosya izin hatalarından kurtulabildim:

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

Bundan sonra, bazen hiyerarşiyi aşmak ve izin bitlerini sıfırlamak gerekli olabilir:

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

Bu adımlardan sonra, dosyalar windows-me veya Administrator kullanıcısına doğru "ait" olur ve yerel windows programları bu dosyaları her zamanki gibi okuyabilir ve yazabilir.


Bir cevapta teşebbüs

Onun dışında, umask belirtilmeli. Bir kullanıcı ortamında (veya bir programdaki bir işlem için) ayarlanır ve daha sonra oluşturulan dosya ve klasörlerin izinlerini yönetir.

örneğin (bash)

umask 0022

Bu, tüm dosya ve klasörlerin 644 ve 755 izinleriyle oluşturulmasına neden olur.

örneğin (python)

$ 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 "özdeş" umask işlevi.

Daha fazla bilgi burada: man 3p umask


Umask'a bakacağım - teşekkürler. Etrafınızdaki çalışma şu anki sorunumu çözdü ve bu modül üzerinde çalışmaya dönmeme izin verdi. Etkilenebilmesi için .exe dosyasını cmg'den çalıştırmak zorunda kaldığımı not edeceğim. Çok teşekkürler!
Chris Rockwell

Söylemeyin :) Cygwin'in pencerelerin izinlerini engellemesine neyin yol açtığını anlarsanız, bir yorum için teşekkür ederim.
Ярослав Рахматуллин

1

Yönetici olarak çalışırken grubu yanlış ayarlamak için Windows'taki diğer uygulamalarla benzer sorunları gördüm. Orijinal dizin oluşturma sorununu nasıl çözeceğimi bilmiyorum, ancak sahibini ve grubunu cygwin'deki tüm dizinler için ata chown:

chown -R chrisrockwell:none my_image_style

Teşekkürler, dizini zaten boğmuştum. Chrisrockwell: Yok şimdi sahibi: grup olmasına rağmen, Drupal modülü hala okuyamıyor / yazamıyor.
Chris Rockwell
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.