Estou tendo problemas para editar este arquivo no Windows 7:
C:\Program Files (x86)\CMake 2.8.7\share\cmake-2.8\Modules\FindJNI.cmake
Se eu o editar no Cygwin (vi) ou no TextPad, esses dois programas verão as alterações e, portanto, serão gravados no disco em algum lugar . Mas se eu "digitar" o arquivo em um shell do cmd do DOS, parece que o arquivo não foi alterado.
Uma coisa que notei é que, no shell do cmd, o proprietário é Administradores, mas no shell do Cygwin, o proprietário é Dan:
C:\Program Files (x86)\CMake 2.8.7\share\cmake-2.8\Modules>dir /Q FindJ*
Volume in drive C is Windows7_OS
Volume Serial Number is 92CA-8707
Directory of C:\Program Files (x86)\CMake 2.8.7\share\cmake-2.8\Modules
12/30/2011 09:45 AM 1,480 BUILTIN\Administrators FindJasper.cmake
12/30/2011 09:45 AM 7,951 BUILTIN\Administrators FindJava.cmake
12/30/2011 09:45 AM 10,632 BUILTIN\Administrators FindJNI.cmake
12/30/2011 09:45 AM 1,669 BUILTIN\Administrators FindJPEG.cmake
4 File(s) 21,732 bytes
0 Dir(s) 132,524,654,592 bytes free
Dan@home /c/Program Files (x86)/CMake 2.8.7/share/cmake-2.8/Modules
$ ls -al FindJ*
-rwx------+ 1 Dan None 10636 Jan 30 13:57 FindJNI.cmake
-rwx------+ 1 Administrators None 1669 Dec 30 09:45 FindJPEG.cmake
-rwx------+ 1 Administrators None 1480 Dec 30 09:45 FindJasper.cmake
-rwx------+ 1 Administrators None 7951 Dec 30 09:45 FindJava.cmake
Como isso pode ser? É como se houvesse dois arquivos diferentes com o mesmo nome no mesmo diretório.
Respostas:
Devido aos recursos de segurança introduzidos no Windows Vista ( UAC ), qualquer programa que não seja Administrador que tente gravar em locais protegidos, como "Arquivos de Programas", obterá suas gravações capturadas e redirecionadas para um local "amigável" alternativo.
O programa que criou o arquivo poderá vê-lo, mas a maioria dos outros programas não.
A Wikipedia afirma (e destaquei a seção relevante):
Então, em teoria, seu arquivo alterado está realmente sendo gravado em
C:\Users\YourUserName\AppData\Local\VirtualStore\Program Files (x86)\CMake 2.8.7\share\cmake-2.8\Modules
A única maneira de contornar essa restrição é desabilitar completamente o UAC , o que não é recomendado por razões de segurança.
A melhor solução é que, na verdade, o cmake esteja no seu caminho e esteja usando um local não protegido, como em algum lugar dentro do seu perfil de usuário.
fonte
Modify
permissões ao arquivo / diretório que está causando problemas aoUsers
grupo de usuários, indo para a guia segurança do arquivo / pasta.A pasta Arquivos de programa é protegida pelos direitos de administrador. No Windows XP e versões anteriores, a maioria das pessoas trabalhava como Administrador o tempo todo. Muitos programas supuseram que esse era o caso e fizeram todo o trabalho na pasta Arquivos de Programas.
Quando o Windows Vista foi lançado, eles interromperam essa prática, forçando os aplicativos a usar:
Isso quebrou muitos aplicativos antigos. Para permitir que aplicativos mais antigos continuem usando pastas apenas do administrador, o Windows criou uma loja virtual para manter os arquivos alterados. Dê uma olhada em:
Você encontrará seus arquivos lá. Você também pode usar o Explorer abrindo a pasta e pressionando o botão Arquivos de compatibilidade na parte superior da janela.
fonte
Eu tive um problema semelhante. Logo após mudar para o Windows 7 (do XP), eu estava tentando descompactar um arquivo dentro
C:\Program Files
dele e ele continuava me dando um erro de Acesso negado.Depois de muitas lutas, descobri que tinha de me apropriar de toda a pasta antes de poder alterar as permissões para permitir que o grupo de Administradores tivesse acesso total - o que, na minha opinião, deveria ter.
Para se apropriar de uma pasta: clique com o botão direito do mouse na pasta e vá para
Properties
, clique naSecurity
guia, clique na guia e, emAdvanced
seguidaOwner
, clique emEdit
. Marque "Substituir proprietário nos sub-recipientes e objetos", selecione o novo proprietário (por exemplo, o grupo "Administradores") e digaOK
.fonte
Users
grupo permissões de modificação. No entanto, você não deve ter acesso total aos arquivos de programa. O padrão de todos os administradores serem uma má opção de design e eles tentaram corrigi-lo no Vista.