누군가가 Delphi 2006에서 파일 권한을 설정하는 방법을 말해 줄 수 있습니까? 내 응용 프로그램에서 INI 파일을 만들려면 TINIFile.Create를 사용하고 있습니다. 문제는 관리자로 Windows에 로그온 한 상태에서 파일을 만든 다음 응용 프로그램을 표준 사용자로 실행하고 INI 파일을 덮어 쓰려고하면이 작업을 수행 할 수있는 권한이 없다는 것입니다. 파일을 AllUsers \ ApplicationData \ MyProduct 폴더에 저장합니다. 이 폴더에 대한 사용 권한을 설정하고 싶습니다. AllUsers에게 MyProduct 폴더에 대한 모든 권한을 부여해야합니다. 가능하면 WindowsAPI를 통해이 작업을 수행 할 수 있다면 좋을 것입니다. 왜냐하면 C++ 및 C#에서도이 작업을 수행해야하기 때문입니다. 나는 정말 어떤 도움을 주셔서 감사합니다. 감사!Windows에서 사용자 액세스 권한 설정
답변
델파이 (관리자)의 올바른 코드를 사용하여 모든 종류의 권한을 변경할 수 있지만 더 나은 응용 프로그램 구조는 앱에 권한이 있다고 가정하지 않는 것입니다 (사용자 모드로 실행한다고 가정합니다). 대신 앱을 설치하는 설치 프로그램 (예 : Inno Setup)을 사용하여 적합한 Ini 파일 템플릿을 필요한 데이터 폴더에 복사하십시오. 파일 복사 줄에서 "사용 권한 : 사용자 수정"을 사용하여 원하는 사용 권한을 지정할 수 있습니다.
JEDI 라이브러리를 사용할 수 있습니다. 다음은 Christian Wimmer의 블로그 "Setting file security with JWSCL"입니다.
나는 비슷한 문제가 있습니다.
다른 환경에서도이 작업을 수행해야하므로 제안 사항이 있습니다.
외부 설치 프로그램을 사용하여 응용 프로그램을 설치하십시오. 그것은 많은 이점을 가지고 있으며 그 중 하나는 설치하는 동안 File \ Directory \ Registry 권한을 구성 할 것입니다. 물론 관리자 계정으로 설치를 실행해야하지만 사용자가 응용 프로그램에 필요한 권한을 갖게됩니다.
Inno Setup라고하는 훌륭한 설치 프로그램을 추천 해 드릴 수 있습니다.
대부분 응용 프로그램 폴더에 ini 파일을 만들지 않습니까? 그러한 연습을 피해야합니다. 대신 ini 파일을 users \ YourUser \ AppData \ Roaming \ YourProduct에 만듭니다.
이 질문에 AllUsers \ ApplicationData \ MyProduct 디렉터리에 대한 내용이 명확하게 나와 있습니다. 로밍 프로필은 시스템 전역 데이터 파일과 아무 관련이 없습니다. – mghie
"어떻게하는지"에 대한 정답은 "전혀하지 마라"입니다.
MyProduct 폴더 또는 ini 파일에 대해 "모든 사용자에게 쓰기 허용"을 설정하면 보안을 위반하게됩니다. 이제는 모든 사용자가 다른 사용자에게 영향을 줄 수 있으므로 허용해야하는 것이 아닙니다.
모든 사용자 은 자신의 세계에만 영향을 주어야합니다.. 다른 사용자의 세계에는 영향을주지 않아야합니다. 이 권한은 관리자를 위해 예약되어 있습니다.
왜 이렇게 나쁜가요? Obsiosly.
정확한 길은 약 일 것입니다. 다음과 같이하십시오 :
- 응용 프로그램의 설치 프로그램은 AllUsers 폴더에 ini 파일을 넣을 수 있지만 파일 사용 권한을 변경하지 마십시오. 이 파일은 기본 읽기 전용 옵션입니다.
- 응용 프로그램에서 AllUsers 폴더와 현재 사용자 폴더의 설정을 읽어야합니다. 설정을 저장해야하는 경우 AllUsers가 아닌 사용자 폴더에 기록해야합니다. 그렇게하면 각 사용자마다 고유 한 환경 설정/설정이 적용됩니다.
- "강력한 사람"이 모든 사용자에 대해 설정을 적용 할 수 있도록하려면 관리자 여야합니다.AllUsers에서 파일을 편집 할 수 있으므로 모든 사용자의 설정에 영향을줍니다.
어떤 설정이 더 높은 우선 순위 (전역 또는 로컬)인지 결정해야합니다. 따라서, 동시에 (a) 각 사용자에 대한 로컬 설정과 (b) 사용자 설정 적용/무시 기능을 동시에 가질 수 있습니다.
"지옥으로가는 길"을 계속 옮기려고 결정한 경우 - JEDI/JWSCL 방식을 사용하는 것이 좋습니다 (SimaWB의 대답 참조). – Alex
- 1. 사용자 액세스/권한 클래스
- 2. 사용자 지정 코드 액세스 권한
- 3. 레일 사용자 -> 역할 -> 권한 설정
- 4. 액세스 권한
- 5. Powershell을 사용하여 Reporting Services에서 사용자 권한 설정
- 6. 적절한 Trac 권한 설정
- 7. ASP.NET MVC3 - 사용자 권한 및 액세스
- 8. Web.Config 폴더 액세스 권한
- 9. svn 설정 권한 문제
- 10. drupal의 페이지 접근 권한 설정
- 11. web.config의 권한 정보 액세스
- 12. 사용자 입력 후 배치 파일을 사용하여 사용 권한 설정
- 13. 사용자 권한
- 14. 사용자 권한
- 15. 파일 권한 설정
- 16. 목록 필드 권한 설정
- 17. ASP.NET - 캐싱 사용자 권한
- 18. 개인 회원의 액세스 권한
- 19. Subversion Merge 액세스 권한
- 20. publish_stream 권한 & APP 액세스 정보?
- 21. 모든 액세스 권한이있는 Everyone이 소유 할 디렉터리의 사용 권한 설정
- 22. ShellExecuteEx를 기다리는 중 (Windows 프로세스에서 액세스 권한 설정)
- 23. Windows에서 emacs 글꼴 설정
- 24. Windows에서 cron 작업 설정
- 25. Drupal 익명 사용자 권한 문제
- 26. 사용자 역할 및 권한
- 27. ShellExecuteEx + runas + 파일 액세스 권한
- 28. 파이썬 사용자 권한
- 29. Windows에서 iPhone에 액세스
- 30. 사용자 권한 Django 서빙 미디어
+1 정확히 - 항상 수행해야 할 작업에 대해 가장 낮은 권한으로 응용 프로그램을 만듭니다. 기본적으로이 디렉토리를 만들고 보안을 수정하는 응용 프로그램을 만들 수 있습니다. 더 이상 아무것도 아니며 설치 프로그램에서 호출됩니다. –