Servez-vous

du logiciel libre, du boggle, du java, de la ligne de commande...

Keyword - permissions

Fil des billets - Fil des commentaires

Signer simplement une archive jar

Afin de ne pas avoir des droits restreints sur l'ordinateur sur lequel elle est exécutée, une application lancée via java web start doit être signée. Le problème, c'est qu'acheter un certificat coute plusieurs centaines d'euros... un peu cher quand on veut juste faire sa petite application qui ne rapportera pas un sou, mais qu'on ne veut pas pour autant qu'elle soit bridée.

La solution pour contourner le problème consiste à auto-signer l'archive. Ce certificat appelé "certificat de test" (mais personne n'est dupe je pense...) sera valide pendant une durée de 6 mois à partir du moment ou il aura été généré. Au lancement de l'application il sera demandé à l'utilisateur si il fait confiance au producteur de l'application, et c'est tout.

L'auto signature se déroule en trois étapes, les deux premières étant à effectuer seulement la première fois.

1.

keytool -genkey -keystore myKeyStore -alias Edouard
Quelques questions sont posées, si on ne veut pas répondre il suffit de taper "entrée"

2.

keytool -selfcert -keystore myKeyStore -alias Edouard
On autosigne notre keystore

3.

jarsigner -keystore myKeyStore jarfile.jar Edouard
Autosigne l'archive jar passée en argument (le mot de passe utilisé pour la création du keystore est alors demandé)

Et voilà ! Vous pouvez utiliser votre archive sans restriction pour java web start, comme ici.

source: sun.com

Modifier les permissions sous linux

Maintenant que vous avez compris ce que signifient les différentes permissions appliquées à un fichier, nous allons voir au travers de quelques exemple représentatifs comment les modifier, le but étant de donner les bons accès au bons utilisateurs, mais jamais plus que besoin.

Nous allons utiliser pour cela trois commandes à savoir chmod, chown, et chgrp.

Premier exemple: Rendre un fichier executable

seulement pour son propriétaire.

chmod u+x file

Seulement pour le groupe:

chmod g+x file

Second exemple: rendre un fichier non executable

Pour tout le monde

chmod -x file

Seulement pour "les autres" (autre que le groupe et le propriétaire)

chmod o-x file

Vous vous doutez du coup comment faire le même genre d'opérations, avec une autre permission, par exemple ecriture (w):

Rendre un fichier non modifiable par le groupe

chmod g-w file

Si vous appliquez ces commande à un dossier, la permission ne s'applique pas récursivement dans les sous répertoire. Pour que ça soit le cas, il faut utiliser en plus l'option -R

Troisième exemple: donner l'accès en lecture à un dossier et tout ses sous-dossiers

Pour le groupe

chmod -R  g+r directory

écriture pour le propriétaire et lecture pour le groupe

chmod -R u+w,g+w directory

Mais il pour un réglage fin, il faut bien sûr être capable de modifier le propriétaire et le groupe d'un fichier. Pour cela on utilise les commandes chown (pour change owner, permet de modifier le propriétaire) et chgrp (change group).

Changer de propriétaire

Changer le propriétaire du fichier file se fera donc grace à la commande

chown zorglub file

file appartient maintenant à zorglub

Pour faire cela récursivement sur un dossier on utilisera encore une fois l'option -R

chown -R zorglub champignac

zorglub possède maintenant tout le dossier champignac.

Changer de groupe

chgrp media file

file appartient maintenant au groupe media

et de manière similaire l'option -R pour faire récursivement sur un répertoire.

Voilà, j'espère que vous avez compris comment modifier les permissions de vos fichiers aux petits oignons. Sachez qu'il existe d'autres manière de modifier les permissions de fichiers, plus puissantes mais moins intuitives selon moi. Si quelquechose ne vous semble pas clair n'hésitez pas, les commentaires sont là pour ça.

Comprendre les permissions sous linux

Cet article présente le fonctionnement des permissions sous linux. Si vous connaissez déjà le sujet, passez votre chemin vous n'apprendrez à mon avis rien de nouveau.

Comme vous le savez, linux est un système multi-utilisateurs par essence, et chacun à ses plates bandes sur lesquelles il a le droit d'aller et de modifier des fichiers. Les informations décrivant qui a le droit de quoi faire sur un fichier donné sont appellées les permissions. Ces permissions sont associées au fichier, un moyen de les visualiser rapidement est d'utiliser la commande ls avec l'option -l:

[edouard ~/Musique/cake ]$ ls -l
drwxr-xr--. 2 edouard media 4096 juin  9 21:53 Comfort Eagle
drwxr-xr--. 2 edouard media 4096 juin  9 21:53 Fashion Nugget
drwxr-xr--. 2 edouard media 4096 juin  9 21:53 Prolonging The Magic

Chaque ligne donne des information sur un fchier. Les permissions du fichier sont la suite de lettres au début de chaque ligne: ici rwxr-xr--

Mais qu'est ce que ce charabia ? Pour le comprendre il faut savoir que:

  • il existe trois type de droits sur un fichier: lecture (r), écriture (w) et execution (x)
  • il existe trois type de "personnes" à qui ils s'adressent: le propriétaire du fichier, le groupe , et le reste du monde.

Le propriétaire du fichier est l'utilisateur dont le login apparait en premier après les blocs de lettres. Le groupe vient juste après..

Pour comprendre la section des permissions il faut la découper mentalement en trois blocs (en omettant le premier caractère qui renseigne sur la nature du fichier) Le premier bloc indique les permissions pour le propriétaire du fichier, le second pour le groupe, et enfin le troisième indique ce qu'a le droit de faire "tout le monde".

Dans le cas précédent , sur le dossier Fashion nugget par exemple le propriétaire est edouard, et le groupe media. edouard a donc le droit de lire écrire et exécuter le fichier (r, w, et x), alors que les utilisateurs du groupe media peuvent seulement le lire et l'exécuter(r et x), mais pas le modifier. Le reste des utilisateurs peuvent seulement le lire (r).

"Pour un fichier, lecture, écriture, execution je vois bien, mais pour un dossier ça veut dire quoi ?"

Pour un dossier lecture <=> lister le contenu du répertoire , écriture <=> créer des fichiers dans le répertoire , executer <=> se déplacer dans le répertoire (à l'aide de la commande cd par exemple).

Maintenant que vous avez compris la signification des permissions, il faut interagir avec elles afin d'en faire ce qu'on veut. L'idée est de donner accès aux programmes et utilisateurs qui ont besoin, mais jamais plus que nécessaire. Cela est détaillé dans le billet suivant, c'est par ici !