프로그래밍 방식으로 생성 된 폴더가 속한 소유자 / 그룹을 지정하는 방법


0

먼저 약간의 배경 설명 : Windows 7 컴퓨터에서 Drupal 사이트 구축을하고 있습니다. 드루팔 (Drupal은 간단히 이미지 캐싱을 허용하는 이미지 모듈을 가지고 있습니다. 이미지 스타일을 만들 때 모듈은 디렉토리를 만듭니다. 예를 들어 스타일을 만들면 my_image_style자동으로 폴더가 만들어 sites/default/files/img/styles/my_image_style/and/some/other/folders/beneath집니다. 그러나 생성 된 디렉토리에는 Administrators:System권한 이있는 owner : group 이 d--------+있습니다. 그 밖의 모든 것, 뿌리까지 줄곧가는 것입니다 chrisrockwell:None. 아파치 (이것은 WAMP5 설정이다)도있다 chrisrockwell:None.

Drupal 모듈은이 디렉토리에 파일을 생성해야하지만 권한 문제로 인해 만들 수 없습니다.

그래서이 설정에서 생성 된 디렉토리가 속한 그룹 : 사용자를 지정하는 방법은 무엇입니까?

효과가 있는지 나는 잘 모르겠지만 cygwin에서 거의 모든 일을한다.

추가 정보가 필요하거나 다른 사이트에서 더 적합한 지 알려주십시오.

업데이트 : 전체 사이트 디렉토리를 chmod 777이라면, 권한이 거부 된 유일한 폴더는 Drupal의 스크립트에 의해 생성 된 image_style 폴더입니다.


참고로, d---------+권한이 없다는 의미는 아닙니다. +수단 간단한 권한으로 표시 할 수없는 디렉토리와 연관된 액세스 목록이 있음.
Darth Android

@DarthAndroid 나는 Windows ACL과 관련이 있다고 생각하고 있습니다. chmod -R 777 전체 디렉토리를 관리자로 실행하는 경우에도 권한은 여전히 ​​-rw-r-r--입니다. 나는 ACL에 대해 많이 모른다. 그래서 문제를 해결하고있다.
Chris Rockwell

나는 모든 사용자, 모든 그룹,이 특정 디렉토리에 대한 모든 권한을 제공하는 데까지 아무런 소용이 없었다.
Chris Rockwell

답변:


0

Cygwin 발언

이는 답변이 아닌 해결 방법입니다.

최근에 Cygwin에서 비슷한 문제가 발생했습니다. 원인은 Windows 사용자 및 그룹이 cygwin 사용자 및 그룹에 매핑되는 방식이 잘못 설정된 것 같습니다. 특히 "파일 속성"대화 상자의 "보안"탭에 OWNER 및 GROUP과 같은 "그룹 또는 사용자 이름"항목이 포함되어 있습니다. 나는 이것들이 윈도우에 의해 지원되지 않는다고 가정한다.

mkpasswd문제를 해결하기 위해 유틸리티를 살펴보고 Windows ACL을 읽는 것이 좋습니다. 그러나 지금까지 Windows ACL을 기본값으로 재설정하여 모든 파일 사용 권한 오류를 없앨 수있었습니다.

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 또는 Administrator 사용자가 파일을 올바르게 "소유"하며 기본 Windows 프로그램은 평소와 같이이 파일을 읽고 쓸 수 있습니다.


답변 시도

그 외에도 umask 를 언급해야합니다. 사용자 환경 (또는 프로그램의 pocess)에 설정되며 이후에 생성되는 파일 및 폴더의 권한을 제어합니다.

eg (bash)

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


감사합니다. 감사합니다. 귀하의 해결 방법은 현재의 문제를 해결했으며이 모듈로 돌아갈 수있게 해줍니다. Cygwin 대신 cmd에서 .exe를 실행해야 효과가 나타납니다. 감사합니다!
크리스 로크웰

언급하지 마라. Cygwin이 Windows 사용 권한을 파괴하게 만드는 원인을 파악했다면, 나는 주석을 주셔서 감사하겠습니다.
Ярослав Рахматуллин

1

Windows에서 다른 응용 프로그램과 비슷한 문제가 발생하여 관리자 권한으로 실행 중일 때 그룹을 잘못 설정했습니다. 원래 디렉토리 생성 문제를 해결하는 방법을 모르지만 Cygwin의 모든 디렉토리에 대해 소유자와 그룹을 재 할당 할 수 있습니다 chown.

chown -R chrisrockwell:none my_image_style

고마워, 나는 이미 디렉토리를 chown'd했다. chrisrockwell : None이 현재 owner : 그룹이더라도 Drupal 모듈은 여전히 ​​읽기 / 쓰기가 불가능합니다.
Chris Rockwell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.