Les restrictions I/O sont une nouvelle caractéristique de POV-Ray pour Windows 3.5. Son objectif est de protéger partiellement une machine exécutant POV-Ray d'avoir des lectures et des écritures de fichiers en dehors d'une liste définie de dossiers.
Ce besoin est lié au fait que le langage de POV-Ray est, avec le temps, devenu plus semblable à un langage de script combiné avec un modèle de description de scène. Il est maintenant possible d'écrire du code POV-Ray, et d'ouvrir, créer, lire et écrire des fichiers n'importe où sur le disque dur (selon les permissions du système d'exploitation).
L'idée de base des restrictions I/O est d'essayer de protéger l'utilisateur de scripts qui peuvent avoir été téléchargés depuis une source peu fiable, et qui peuvent essayer de créer ou de modifier des fichiers sensibles.
La restriction I/O capte l'ouverture et la création de fichier dans le code du rendu de POV-Ray, et permet à la version Windows d'autoriser ou de refuser toute opération particulière sur un fichier. Notez, s'il vous plaît, que cela n'affecte que les I/O sur fichier depuis le noyau du code de POV-Ray; c'est à dire, le code qui se charge de l'analyse et du rendu. Il n'affecte pas les fichiers que l'interface Windows peut lire ou écrire. Il ne vous empêche pas de charger un fichier dans un éditeur, ou sauvegarder un fichier depuis l'éditeur, ou toute autre caractéristique installée dans l'interface de Windows et qui ne fait pas partie de l'ensemble des caractéristiques du noyau POV-Ray. (Ces caractéristiques sont celles de POV-Ray qui sont disponibles sur tous les systèmes d'exploitation et plates-formes d'ordinateur pour lesquels une version de POV est disponible).
Nous ne garantissons pas que l'utilitaire de restriction I/O stoppera tout. Il y a toujours la possibilité que, comme tout autre logiciel, il puisse y avoir un défaut amenant une malfonction. Toutefois, la responsabilité est à la personne qui choisit de charger un fichier INI ou une scène dans POV-Ray, de vérifier qu'il ne fait rien d'interdit. S'il vous plaît, considérez les restrictions I/O plutôt comme une facilité de sauvegarde pour les vérifications manuelles.
S'il vous plaît, lisez attentivement cette section de manière à comprendre les possibilités et conditions de l'utilitaire (comme le fait que certains dossiers sont autorisés par défaut).
Maintenant détaillons comment configurer les restrictions I/O (ou vous en débarrasser si vous voulez les désactiver).

Dans le menu Options se trouve un sous-menu appelé 'Script I/O Restrictions'. Cela vous fait accéder à un contrôle de haut niveau sur le système de restriction. La partie haute du sous-menu vous propose trois options (détaillées plus bas). Vous ne pouvez en prendre qu'une sur les trois. La partie basse vous donne deux options supplémentaires, chacune d'entre elles peut être activée ou non.
Si cette option est choisie, les scripts de POV peuvent lire/écrire n'importe où (selon les permissions du système d'exploitation). Le système restriction I/O est désactivé.
Si ce choix est fait, les scripts de POV peuvent lire n'importe quoi, mais la création et l'écriture de fichier est seulement autorisée dans les dossiers spécifiés (voir Configuration de bas niveau pour plus d'information sur la façon de spécifier ces dossiers).
Un autre manière de voir est que les restrictions I/O sont désactivées pour la lecture, mais pas pour l'écriture.
A la fois la lecture et l'écriture sont restreintes aux dossiers spécifiés. Notez que c'est le paramétrage par défaut lors d'une installation de POV-Ray pour Windows v3.5.
Notez que le paramétrage précédent n'affecte pas que les fichiers de script; cela touche aussi les fichiers d'inclusion, les fichiers de sortie et les fichiers d'entrée .POV. En général tout fichier en relation avec les entrées et sorties du moteur de rendu. Vous devez porter particulièrement attention à ce paramétrage si vous avez l'habitude d'écrire vos fichiers de sortie ailleur que dans le dossier du fichier de scène (voir plus bas).
Il y a deux autres options:
Si activée, le dossier actuel (mais aucun de ses enfants) est automatiquement ajouté à la liste des autorisations en lecture/écriture. Puisque POVWIN place le dossier actuel comme celui qui contient le fichier source (.pov ou .ini) au début d'une génération, cela active automatiquement un dossier contenant une scène en lecture/écriture. Pour la plupart, c'est une caractéristique pratique, aussi c'est activé par défaut lors de l'installation.
Notez, s'il vous plaît, que cette option décochée n'empêche pas la lecture dans le dossier actuel si vous avez désactivé les restrictions en lecture (comme documenté au-dessus), ni l'écriture si vous avez désactivé toutes les restrictions I/O. De même, son activation n'autorise pas les lectures/écritures sur les dossiers fils - seul ce dossier est concerné.
Si cette option est sélectionnée (par défaut), les appels extérieurs ne sont pas permis. 'Shell Outs' permet à un fichier INI d'indiquer qu'un programme spécifique doit être appelé avant ou après le rendu d'un écran. Si vous voulez cela, vous devez explicitement l'autoriser en désactivant cette option.
Cette section vous indique comment spécifier manuellement les dossiers pour les accès en lecture/écriture, si les paramètres standards ne sont pas adaptés. D'abord nous devons savoir ce qui est et n'est pas protégé par défaut.
Le concept général des restrictions I/O, quand elles sont activées, est que tout est refusé sauf si explicitement autorisé (avec une ou deux exceptions). Donc à moins que vous ajoutiez un dossier à la liste des autorisations, ou que ce soit le dossier actuel et que l'option 'Permit Read/Write in Current Directory' option est cochée, alors le dossier en question n'est pas autorisé à être accédé.
Les exceptions sont :
Pour ajouter ou changer les dossiers autorisés, vous devez modifier le fichier <installdir>\ini\pvengine.ini, où <installdir> est l'endroit où vous avez installé POV-Ray pour Windows. Une manière aisée d'accéder à ce fichier est de le sélectionner depuis le menu des outils (par défaut, c'est le second élément).
Dans PVENGINE.INI vous verrez deux sections comme ce qui suit ... (notez que le contenu actuel est légèrement différent de cet exemple)
[Permitted Input Paths]
1=%INSTALLDIR%
[Permitted Output Paths]
1=%INSTALLDIR%
%INSTALLDIR% donne la position de l'installation de POV. Il est autorisé de dire quelque chose comme -
%INSTALLDIR%\scenes
par exemple, pour se référer à C:\Program Files\POV-Ray For Windows Vn.n\Scenes, en partant du principe que vous avez installé POVWIN dans 'C:\Program Files\POV-Ray For Windows Vn.n\'.
Notez que l'adresse du dossier d'installation ne fait pas référence à celle d'où le binaire est lancé - il donne l'information de la base de registre. Les adresses relatives sont tout aussi autorisées, et seront décodées pendant le chargement (les relatives au dossier actuel, pas au dossier d'installation). Par exemple, une adresse relative comme ...
[Permitted Output Paths]
1=..\output
sera calculée en relation avec le dossier actuel au moment où POV-Ray pour Windows a été lancé, aussi si vous lancez pvengine.exe depuis le dossier c:\myscenes\newscene, alors le résultat sera c:\myscenes\output. Veuillez noter que la position actuelle du fichier pvengine.exe n'est pas prise en compte ici - c'est le dossier actuel qui importe (qui n'est pas nécessairement celui du programme).
Un dossier placé dans la section des adresses d'entrée autorisée ne permet que les lectures. Celui placé dans la section des sorties est autorisé en lecture et écriture; la permission d'écriture amène celle de lecture. Cela signifit que vous n'avez pas besoin de dupliquer les entrées (l'exemple précédent montre une telle duplication - ce n'est pas génant, seulement inutile). Vous pouvez avoir jusqu'à 64 entrées (numérotées 0..63) dans chaque section.
Une entrée dans les sections d'autorisation ne libère pas seulement le dossier, mais aussi tous ses fils (notez que c'est différent de l'option 'permit read/write in current directory' mentionnée plus haut, qui ne s'applique qu'au dossier, sans ses fils).
Souvenez-vous que, comme dit plus haut, si la protection à l'écriture est activée, le dossier <installdir>\INI est toujours protégé en écriture, et rien dans les sections d'autorisation ne peut l'obliger. C'est pour éviter qu'un script ne modifie pvengine.ini pour désactiver ou modifier les restrictions I/O pour le prochain démarrage de POVWIN.
Certains ont POV-Ray configuré pour que toutes les images soient écrites dans le même dossier de sortie. Pour que cela fonctionne avec l'activation des restrictions I/O, et si ce dossier n'est pas dans l'arborescence de l'installation de POV-Ray pour Windows, vous devrez ajouter ce dossier dans la liste des sorties autorisées.
Par exemple, si votre dossier d'image en sortie est c:\images\, vous pouvez avoir quelque chose comme ceci dans le fichier INI -
[Permitted Input Paths]
1=%INSTALLDIR%
[Permitted Output Paths]
1=%INSTALLDIR%
2=c:\images
Si vous voulez donner l'accès à tout un lecteur (ex. d:\), ajoutez-le comme ceci -
[Permitted Input Paths]
1=%INSTALLDIR%
[Permitted Output Paths]
1=%INSTALLDIR%
2=c:\images
3=d:\
| 1.3 Options de la ligne de commande |