Permissions NTFS : cas d'école...

Permissions NTFS : cas d'école... - Win NT/2K/XP - Windows & Software

Marsh Posté le 13-02-2012 à 10:41:54    

Bonjour à tous  :hello:  
 
Je suis devant une problématique que j'ai quelques peu de mal à résoudre...
 
J'ai un parc de 300 machines avec un serveur de fichier sous Samba... Les clients sont sous winxp pro sp3. Mis à part une connexion sur le compte admin, tous les autres comptes ont l'interdiction d'écriture sur c:\windows pour éviter tout soucis.
 
Je souhaite mettre en place une information numérique dynamique (elle changera toutes les semaines) en amont de l'authentification sur les sessions samba. En clair, je veux appliquer un .bmp avec un peu de texte à la place du fond bleu en arrière plan de la fenetre de login de la machine, juste avant l'ouverture du bureau windows... Ainsi, les personnes, avant de se connecter, pourront visualiser le message informatif. (j'avais auparavant fait cela sur les fonds d'écran des bureaux des comptes mais avec la multitude de raccourcis qu'on certaines personnes, cela devenait illisible et pénible)
 
Donc, pour ce projet, il me faut injecter via les profils samba, la clé de base de registre qui va bien pour indiquer le nom de fichier du bmp (pas de problèmes là dessus) mais il y a ensuite un élément bloquant : le .bmp de référence de la base de registre doit obligatoirement être copié sur c:\windows pour qu'il puisse s'appliquer correctement.
J'ai donc crée un .bat en logon d'ouverture de session pour que le fichier soit copié automatiquement à chaque ouverture... Le hic, c'est que cela ne fonctionne qu'en compte admin puisque les permissions ntfs des autres comptes interdisent la copie du .bmp dans c:\windows.
 
J'ai bien essayé d'injecter un .bat avec la commande cacls mais celle-ci ne répond pas correctement dans la mesure où mon script s'exécute sur les comptes avec autorisations bridés...
 
Pour le moment donc, il me reste la solution à la con : passer sur les 300 machines me loguer en admin pour autoriser une bonne fois pour toute la permission d'écriture sur c:\windows\*.bmp pour tout le monde... Là, et définitivement par la suite, mon projet fonctionnera correctement...
 
Ce que je cherche à faire, comme vous l'aurez compris, c'est automatiser la chose de façon à éviter de passer sur tous les postes... N'étant pas expert en GPO, loin de là, je sèche un peu...
 
Si une bonne âme voulait bien m'éclaire, je lui en serait reconnaissant  ;)

Reply

Marsh Posté le 13-02-2012 à 10:41:54   

Reply

Marsh Posté le 13-02-2012 à 14:02:03    

Je n'ai pas la solution à ton problème mais perso je lancerai un petit vbs avec le script d'ouverture de session. C'est très propre, il n'y a aucune permission à changer et le message se modifie très simplement.
 
message.vbs
msgbox("Bonjour . Le service informatique vous souhaite une bonne journée." )
 
Ça oblige juste les utilisateurs à cliquer sur le bouton OK pour faire disparaitre la fenêtre une dois leur session ouverte. Rien d'insurmontable.


Message édité par atreides59 le 13-02-2012 à 14:09:37
Reply

Marsh Posté le 13-02-2012 à 14:12:51    

Certes c'est une idée mais cela reste à mon sens non exploitable dans la mesure où les messages seront assez longs (3 ou 4 phrases)
 
Par ailleurs, un simple popup informatif comme cela : souvent, on clique pour le fermer sans le lire...
 
Mais merci pour l'idée sinon ;)
 
Je pense qu'il y a une solution du côté des gpo mais je n'arrive pas à m'en sortir tout seul...

Reply

Marsh Posté le 13-02-2012 à 16:01:13    

modification des paramètres de sécurité sur le fichier BMP (en partant du principe que le nom du fichier sera toujours le même...) je vois pas où est le souci.
Tu pourras faire ta copie de fichier quand bon te semblera.

Reply

Marsh Posté le 13-02-2012 à 17:00:52    

Le souci est qu'il faut que je passe sur les 300 postes pour faire la même manip et que je voudrais l'automatiser de façon à ce que l'opération soit réalisée via un script lorsqu'une personne se connecte sur son compte...

Reply

Marsh Posté le 14-02-2012 à 08:40:27    

bah suffit de faire un xcacls ou setacl dans le script de login :)
http://en.wikipedia.org/wiki/Cacls

Reply

Marsh Posté le 14-02-2012 à 10:11:00    

Oui, j'étais sur cette voie :)
Seulement, le hic c'est qu'avec ces outils, si tu les exécute sur un compte limité, il te fait péter un magnifique "accès refusé".

 

Et comme le script de login se lance sur des sessions avec des droits très restreints, je suis piégé : la commande ne fonctionne pas...

 

La commande fonctionne sur une session admin avec tous les droits mais ça voudrait dire qu'il faudrait que je passe sur 300 postes lancer la session admin (une seule fois suffira puisque la permission appliquée sera définitive) pour que le script tourne, ce que je voudrais éviter...

 

La problématique reste toujours entière : comment donner une permission ntfs en script de logon sur un compte utilisateur très limité en droits ?


Message édité par neoulous le 14-02-2012 à 10:12:19
Reply

Marsh Posté le 14-02-2012 à 11:39:22    

as tu testé ta solution sur un pc limité avant de la déployer ?


---------------
Mieux vaut apprendre à un homme à pêcher avant de l'avoir tué.
Reply

Marsh Posté le 14-02-2012 à 12:38:19    

Bien sûr, j'ai fait tous mes tests comme ça !
 
Cela fonctionne bien sauf le "petit" défaut d'être obligé de passer sur chaque poste quoi :o
 
En gros, je ne sais pas si ça existe, mais il me faudrait dans mon .bat, une commande qui me permette d'avoir les droits d'administrateur machine alors que le compte est limité, juste le temps de lancer mon script avec cacls...

Reply

Marsh Posté le 14-02-2012 à 13:17:38    

C'est pour ça que j'ai un compte local admin avec un même mot de passe sur l'ensemble du parc, qui me permet de passer l'authentification en script :)
 
Pour toi, je vois 2 solutions :  
- soit psexec / runas associé à un script qui va sur l'ensemble des PC de ton AD.
- soit tu changes les droits temporairement des scripts de login.
 
Je connais la solution 1 mais je vais chercher la solution 2 qui me parait plus fun :)
 
Edit Solution 2 : Effectivement, il ne faut pas oublier que les droits du script de login sont les mêmes que les droits de l'utilisateur qui se connecte :
 
What permissions are required for Logon scripts to run?
Logon scripts run with the credentials of the user. It is recommended that the “Domain Users” group shall be given permission to any resources used by either of these scripts. For example, if the logon script writes to a log file, the group “Domain Users” should be given read/write access to the file or the folder where the log file is located. Most users have limited privileges on the local computer, so logon scripts will have the same limited privileges.

 
http://www.petri.co.il/setting-up- [...] r-2008.htm
 
Ca veut dire qu'il faut mettre tous les comptes dans le groupe administrateurs, et cela temporairement... bof bof
 
Solution 1 : Si je te file un script en VBS, vas-tu t'en sortir ? Car j'ai codé comme un pied et il faut que tu l'adaptes à ton besoin...

Message cité 1 fois
Message édité par akizan le 14-02-2012 à 13:45:06
Reply

Marsh Posté le 14-02-2012 à 13:17:38   

Reply

Marsh Posté le 14-02-2012 à 14:11:29    

akizan a écrit :

C'est pour ça que j'ai un compte local admin avec un même mot de passe sur l'ensemble du parc, qui me permet de passer l'authentification en script :)
 
Pour toi, je vois 2 solutions :  
- soit psexec / runas associé à un script qui va sur l'ensemble des PC de ton AD.
- soit tu changes les droits temporairement des scripts de login.
 
Je connais la solution 1 mais je vais chercher la solution 2 qui me parait plus fun :)
 
Edit Solution 2 : Effectivement, il ne faut pas oublier que les droits du script de login sont les mêmes que les droits de l'utilisateur qui se connecte :
 
What permissions are required for Logon scripts to run?
Logon scripts run with the credentials of the user. It is recommended that the “Domain Users” group shall be given permission to any resources used by either of these scripts. For example, if the logon script writes to a log file, the group “Domain Users” should be given read/write access to the file or the folder where the log file is located. Most users have limited privileges on the local computer, so logon scripts will have the same limited privileges.

 
http://www.petri.co.il/setting-up- [...] r-2008.htm
 
Ca veut dire qu'il faut mettre tous les comptes dans le groupe administrateurs, et cela temporairement... bof bof
 
Solution 1 : Si je te file un script en VBS, vas-tu t'en sortir ? Car j'ai codé comme un pied et il faut que tu l'adaptes à ton besoin...


 
D'abord, merci pour ton aide ;)
 
Pour la solution n°2 : j'ai bien étudié l'article et cela me parait difficilement réalisable dans mon cas... Concrètement, j'ai un serveur de fichiers sambaedu en lenny et c'est un réseau très particulier qui injecte quantités de templates au login : ça fout carrément la merde pour cette solution.
 
Pour la solution n°1 : déjà, en vbs, j'y capte que dalle (donc pas sur que je saurai le finaliser) et pas sûr que le logon du samba soit foutu de le lancer...
 
En fait, je mon côté, j'ai travaillé sur une autre solution dont je n'ai pas parlé ici : un déploiement via wpkg...
 
En gros, puisqu'à l'ouverture, le module de wpkg possède tous les droits d'admin, je pars du principe qu'avec lui, tout est possible...
Je lui injecte donc un .xml dans la tronche pour qu'il sache quoi faire :
 

Citation :

<?xml version="1.0" encoding="UTF-8" ?>  
- <packages>
- <!--  
 
 
  -->  
- <package id="Ouverture_Session_cdi" name="Ouverture_Session_essai" reboot="false" priority="0" revision="1">
- <!--  
 
 
 
  -->  
 
  -->  
  <check type="registry" condition="exists" path="HKEY_USERS\.DEFAULT\Software\Microsoft\Screensavers\essai\" />  
 
  -->  
  <install cmd="reg.exe import %Z%\packages\ouverturesession\ouverturesession_essai.reg > NUL" />  
 
  -->  
  <install cmd="%ComSpec% /c if not exist "%SYSTEMROOT%\essai.BMP" xcopy "%Z%\packages\ouverturesession\essai.BMP" "%SYSTEMROOT%\" /Q /Y > NUL" />  
 
  -->  
  <remove cmd="reg.exe delete "HKEY_USERS\.DEFAULT\Software\Microsoft\Screensavers\essai\" /F > NUL" />  
  </package>
  </packages>


 
Ensuite, j'injecte un .reg dans le template pour que mon arrière plan d'avant login s'applique, j'en ai profité pour balancer un message via l'écran de veille...
 

Citation :

Windows Registry Editor Version 5.00
 
[HKEY_USERS\.DEFAULT\Software\Microsoft\Screensavers\essai]
 
[HKEY_USERS\.DEFAULT\Software\Microsoft\Screensavers\Text3D]
"AllScreensSame"=dword:00000000
"SurfaceType"=dword:00000000
"Specular"=dword:00000000
"SurfaceColor"=dword:00777777
"CustomTexture"=""
"CustomEnvironment"=""
"UseCustomColor"=dword:00000000
"UseCustomTexture"=dword:00000000
"UseCustomEnvironment"=dword:00000000
"MeshQuality"=dword:000001f4
"Size"=dword:00000005
"RotationSpeed"=dword:00000004
"RotationStyle"=dword:00000003
"DisplayString"="Bienvenue au essai !"
"DisplayTime"=dword:00000000
"FontWeight"=dword:00000190
"FontHeight"=dword:ffffffa0
"FontItalic"=dword:00000000
"FontCharSet"=dword:01020300
"FontPitchFamily"=dword:6f004342
"FontFace"="Comic Sans MS"
 
[HKEY_USERS\.DEFAULT\Software\Microsoft\Screensavers\Text3D\Screen 1]
"Leave Black"=dword:00000000
"Disable Hardware"=dword:00000000
"Width"=dword:00000000
"Height"=dword:00000000
"Format"=dword:00000000
"Adapter ID"=hex:e0,0e,b7,d7,40,43,cf,11,b0,63,28,2a,ae,c2,c8,35
 
[HKEY_CURRENT_USER\Software\Microsoft\Screensavers\Text3D]
"AllScreensSame"=dword:00000000
"SurfaceType"=dword:00000000
"Specular"=dword:00000000
"SurfaceColor"=dword:00777777
"CustomTexture"=""
"CustomEnvironment"=""
"UseCustomColor"=dword:00000000
"UseCustomTexture"=dword:00000000
"UseCustomEnvironment"=dword:00000000
"MeshQuality"=dword:000001f4
"Size"=dword:00000005
"RotationSpeed"=dword:00000004
"RotationStyle"=dword:00000003
"DisplayString"="Bienvenue à l'essai !"
"DisplayTime"=dword:00000000
"FontWeight"=dword:00000190
"FontHeight"=dword:ffffffa0
"FontItalic"=dword:00000000
"FontCharSet"=dword:01020300
"FontPitchFamily"=dword:6f004342
"FontFace"="Comic Sans MS"
 
[HKEY_CURRENT_USER\Software\Microsoft\Screensavers\Text3D\Screen 1]
"Leave Black"=dword:00000000
"Disable Hardware"=dword:00000000
"Width"=dword:00000000
"Height"=dword:00000000
"Format"=dword:00000000
"Adapter ID"=hex:e0,0e,b7,d7,40,43,cf,11,b0,63,28,2a,ae,c2,c8,35

[HKEY_USERS\.DEFAULT\Control Panel\Desktop]
"ScreenSaveTimeOut"="300"
"SCRNSAVE.EXE"="sstext3d.scr"
"Wallpaper"="C:\\WINDOWS\\essai.BMP"
 
[HKEY_CURRENT_USER\Control Panel\Desktop]
"ScreenSaveTimeOut"="300"
"SCRNSAVE.EXE"="sstext3d.scr"


 
 
Seul gros souci, je me chie toujours dessus parce que cela ne fonctionne toujours pas : mon essai.bmp n'est toujours pas copié dans c:\windows si le compte est ouvert par un utilisateur lambda...
Par contre, si j'ouvre ma session admin, le wpkg fonctionne niquel : normal, ce crétin a les full droits
 
ça fait chier : j'en suis toujours au même point : ce sont ces foutues permissions ntfs qui m'empechent de placer un bmp dans c:\windows.
Car avant l'intégration au domaine samba, les postes sous xp n'ont aucune permissions d'écriture sur c:\windows pour un utilisateur du domaine samba.
 
Si les droits ntfs en c:\windows\*.bmp ne sont pas libérés de part une session utilisateur bridée, je serai systématiquement dans l'impossibilité de déployer mon truc de façn automatique.

Reply

Marsh Posté le 14-02-2012 à 14:25:47    

Pour mon script, tu le lances une fois et basta, ton ACL sera réglée définitivement, aucun besoin de le lancer à l'ouverture du PC.
En gros, tu dis, tous les PC dans la fourchette adresseIP1 à adresseIP254, met moi les droits sur le fichier BMP et pis c'est tout...
 
C'était ça mon idée en fait.

Reply

Marsh Posté le 14-02-2012 à 14:49:09    

Ah bah ma foi, dans ce cas je suis preneur...
Si je comprends bien, je me logue sur un poste du réseau en admin, je lance ton script et tous les pc allumés se voient attribuer les bonnes permissions sans que je passe dessus ?
Si c'est ça, c'est tip top, le fichier qui serait injecté serait dans c:\windows\plume.bmp (ce fichier existe déjà mais l'autre, le mien, écraserait donc celui-ci régulièrement).
 
;)

Reply

Marsh Posté le 14-02-2012 à 15:06:27    

neoulous a écrit :

Ah bah ma foi, dans ce cas je suis preneur...
Si je comprends bien, je me logue sur un poste du réseau en admin, je lance ton script et tous les pc allumés se voient attribuer les bonnes permissions sans que je passe dessus ?
Si c'est ça, c'est tip top, le fichier qui serait injecté serait dans c:\windows\plume.bmp (ce fichier existe déjà mais l'autre, le mien, écraserait donc celui-ci régulièrement).
 
;)


 
Voila oui.
Tu me prépare la commande xcacls/setacl ?

Reply

Marsh Posté le 14-02-2012 à 16:55:59    

ça marche : en fait, la commande va ressembler à ça
 
xcacls c:\windows\*.bmp /G tout le monde:RWED;RW /E
 
 
Sinon, avec cacls, j'avais fait ça et ça marchait aussi :
 
cacls c:\windows\*.bmp /E /G "tout le monde":F
 
;)

Reply

Marsh Posté le 15-02-2012 à 09:57:44    

J'utilise le cacls car le xcacls, il est pas par défaut sur XP.
Autre question, les postes distants, le parefeu est désactivé ?
 
Et je t'envoi par quel biais le script ?

Reply

Marsh Posté le 15-02-2012 à 12:40:41    

Pare feu désactivé, oui.
 
Je te MP pour mon adresse mail...
 
Merci encore ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed