JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Administration d'Oracle Solaris : services de sécurité     Oracle Solaris 11 Information Library (Français)
search filter icon
search icon

Informations document

Préface

Partie I Présentation de la sécurité

1.  Services de sécurité (présentation)

Partie II Sécurité du système, des fichiers et des périphériques

2.  Gestion de la sécurité de la machine (présentation)

3.  Contrôle de l'accès aux systèmes (tâches)

4.  Service d'analyse antivirus (tâches)

5.  Contrôle de l'accès aux périphériques (tâches)

6.  Utilisation de l'outil de génération de rapports d'audit de base (tâches)

7.  Contrôle de l'accès aux fichiers (tâches)

Partie III Rôles, profils de droits et privilèges

8.  Utilisation des rôles et des privilèges (présentation)

9.  Utilisation du contrôle d'accès basé sur les rôles (tâches)

Utilisation de RBAC (tâches)

Affichage et utilisation des valeurs par défaut RBAC (tâches)

Affichage et utilisation des valeurs par défaut RBAC (liste des tâches)

Procédure d'affichage de tous les attributs de sécurité définis

Procédure d'affichage des droits qui vous sont affectés

Procédure d'endossement d'un rôle

Procédure d'obtention des droits d'administration

Personnalisation RBAC pour votre site (tâches)

Configuration initiale RBAC (liste des tâches)

Procédure de planification de votre implémentation RBAC

Procédure de création d'un rôle

Procédure d'attribution de rôle

Procédure d'audit des rôles

Procédure de création ou de modification d'un profil de droits

Procédure d'ajout de propriétés RBAC aux anciennes applications

Procédure de dépannage de RBAC et de l'affectation de privilèges

Gestion de RBAC (tâches)

Gestion de RBAC (liste des tâches)

Procédure de modification du mot de passe d'un rôle

Procédure de modification des attributs de sécurité d'un rôle

Procédure de modification des propriétés RBAC d'un utilisateur

Procédure de limitation d'un utilisateur aux applications de bureau

Procédure de limitation d'un administrateur aux droits affectés de manière explicite

Procédure d'octroi à un utilisateur de l'autorisation d'utiliser son propre mot de passe pour endosser un rôle

Procédure de modification du rôle root en utilisateur

Utilisation des privilèges (tâches)

Détermination des privilèges (liste des tâches)

Procédure de création d'une liste des privilèges sur le système

Procédure de détermination des privilèges qui vous sont attribués directement

Procédure de détermination des commandes privilégiées que vous pouvez exécuter

Gestion des privilèges (liste des tâches)

Procédure de détermination de privilèges sur un processus

Procédure de détermination des privilèges requis par un programme

Procédure d'exécution d'un script shell avec des commandes privilégiées

10.  Attributs de sécurité dans Oracle Solaris (référence)

Partie IV Services cryptographiques

11.  Structure cryptographique (présentation)

12.  Structure cryptographique (tâches)

13.  Structure de gestion des clés

Partie V Services d'authentification et communication sécurisée

14.  Authentification des services réseau (tâches)

15.  Utilisation de PAM

16.  Utilisation de SASL

17.  Utilisation de Secure Shell (tâches)

18.  Secure Shell (référence)

Partie VI Service Kerberos

19.  Introduction au service Kerberos

20.  Planification du service Kerberos

21.  Configuration du service Kerberos (tâches)

22.  Messages d'erreur et dépannage de Kerberos

23.  Administration des principaux et des stratégies Kerberos (tâches)

24.  Utilisation des applications Kerberos (tâches)

25.  Service Kerberos (référence)

Partie VII Audit dans Oracle Solaris

26.  Audit (présentation)

27.  Planification de l'audit

28.  Gestion de l'audit (tâches)

29.  Audit (référence)

Glossaire

Index

Utilisation des privilèges (tâches)

Les listes des tâches suivantes dirigent vers des instructions détaillées pour gérer les privilèges et les utiliser sur votre système.

Tâche
Description
Voir
Utilisation de privilèges lors de l'exécution d'une commande.
Implique de dresser la liste des privilèges qui vous ont été affectés et des privilèges disponibles sur le système.
Utilisation de privilèges sur votre site.
Comprend l'attribution, la suppression, l'ajout et le débogage de l'utilisation de privilèges.

Détermination des privilèges (liste des tâches)

Lorsqu'un utilisateur se voit affecter directement des privilèges, ces derniers sont appliqués dans chaque shell. Lorsque les privilèges ne lui sont pas directement attribués, l'utilisateur doit ouvrir un shell de profil. Par exemple, lorsque les commandes ayant des privilèges attribués se trouvent dans un profil de droits répertorié dans la liste de profils de droits de l'utilisateur, l'utilisateur doit exécuter la commande dans un shell de profil.

La liste des tâches suivante vous dirige vers les procédures liées à l'affichage des privilèges qui vous ont été attribués.

Tâche
Description
Voir
Affichage des privilèges définis.
Répertoriez les privilèges Oracle Solaris et leurs définitions.
Affichage de vos privilèges en tant qu'utilisateur dans n'importe quel shell.
Affichez les privilèges qui vous sont affectés directement. Tous les processus s'exécutent avec ces privilèges.
Affichage de vos commandes privilégiées dans un shell de profil.
Affichez les commandes privilégiées que vous pouvez exécuter par l'intermédiaire d'un profil de droits affectés.
Affichage de vos privilèges en tant que rôle dans n'importe quel shell.
Affichez les commandes de privilèges que votre rôle peut exécuter par l'intermédiaire d'un profil de droits affectés.

Procédure de création d'une liste des privilèges sur le système

La procédure suivante décrit la procédure d'affichage des noms et définitions de privilèges.

Procédure de détermination des privilèges qui vous sont attribués directement

La procédure suivante montre comment déterminer si des privilèges vous ont été directement attribués.


Attention

Attention - L'utilisation inappropriée de privilèges attribués directement peut entraîner des violations involontaires de sécurité. Pour plus de détails, reportez-vous à la section Considérations relatives à la sécurité lors de l'affectation directe d'attributs de sécurité.


  1. Répertoriez les privilèges pouvant être utilisés par vos processus.

    Reportez-vous à la section Procédure de détermination de privilèges sur un processus pour connaître la procédure.

  2. Appelez des actions et exécutez des commandes dans un shell.

    Les privilèges répertoriés dans le jeu effectif sont en vigueur dans l'ensemble de votre session. Si des privilèges vous ont été directement attribués en plus du jeu de base, ceux-ci sont répertoriés dans le jeu effectif.

Exemple 9-30 Détermination des privilèges qui vous sont directement attribués

Si des privilèges vous ont été attribués directement, votre jeu de base contient plus que le jeu de base par défaut. Dans cet exemple, l'utilisateur a toujours accès au privilège proc_clock_highres.

% /usr/bin/whoami
jdoe
% ppriv -v $$
1800:   pfksh
flags = <none>
        E: file_link_any,…,proc_clock_highres,proc_session
        I: file_link_any,…,proc_clock_highres,proc_session
        P: file_link_any,…,proc_clock_highres,proc_session
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time
% ppriv -vl proc_clock_highres
        Allows a process to use high resolution timers.

Exemple 9-31 Détermination des privilèges qui sont directement attribués à un rôle

Les rôles utilisent un shell d'administration ou un shell de profil. Les utilisateurs endossant un rôle peuvent utiliser son shell pour répertorier les privilèges qui lui ont été directement attribués. Dans l'exemple suivant, des privilèges ont été directement attribués au rôle realtime pour gérer les programmes de date et d'heure.

% su - realtime
Password: <Type realtime password>
$ /usr/bin/whoami
realtime
$ ppriv -v $$
1600:   pfksh
flags = <none>
        E: file_link_any,…,proc_clock_highres,proc_session,sys_time
        I: file_link_any,…,proc_clock_highres,proc_session,sys_time
        P: file_link_any,…,proc_clock_highres,proc_session,sys_time
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time

Procédure de détermination des commandes privilégiées que vous pouvez exécuter

Lorsque les privilèges ne sont pas attribués directement à un utilisateur, celui-ci a accès aux commandes privilégiées par l'intermédiaire d'un profil de droits. Les commandes d'un profil de droits doivent être exécutées dans un shell de profil.

  1. Déterminez les profils de droits qui vous ont été attribués.
    % profiles
    Audit Review
    Console User
    Suspend To RAM
    Suspend To Disk
    Brightness
    CPU Power Management
    Network Autoconf
    Desktop Print Management
    Network Wifi Info
    Desktop Removable Media User
    Basic Solaris User
    All
  2. Déterminez vos droits à partir du profil Audit Review (vérification d'audit).
    profiles -l
    Audit Review
    
      solaris.audit.read
      
      /usr/sbin/auditreduce  euid=0
      /usr/sbin/auditstat    euid=0
      /usr/sbin/praudit      euid=0

    Le profil de droits Audit Review (vérification d'audit) vous permet d'exécuter les commandes auditreduce , auditstat et praudit avec l'ID utilisateur effectif de 0 et vous attribue l'autorisation solaris.audit.read.

Exemple 9-32 Détermination des commandes privilégiées d'un rôle

Dans cet exemple, un utilisateur endosse un rôle affecté et répertorie les commandes comprises dans l'un des profils de droits.

% roles
devadmin
% su - devadmin
Password: Type devadmin password
$ profiles -l
Device Security
          /usr/bin/kbd        uid=0;gid=sys
          /usr/sbin/add_allocatable    euid=0
          /usr/sbin/add_drv        uid=0
          /usr/sbin/devfsadm        uid=0
          /usr/sbin/eeprom        uid=0
          /usr/sbin/list_devices        euid=0
          /usr/sbin/rem_drv        uid=0
          /usr/sbin/remove_allocatable    euid=0
          /usr/sbin/strace        euid=0
          /usr/sbin/update_drv        uid=0

Exemple 9-33 Exécution de commandes privilégiées dans votre rôle

Dans l'exemple suivant, le rôle admin peut modifier les autorisations pour le fichier useful.script.

% whoami
jdoe
% ls -l useful.script
-rwxr-xr-- 1 elsee eng 262 Apr 2 10:52 useful.script
chgrp admin useful.script
chgrp: useful.script: Not owner
% su - admin
Password: <Type admin password>
$ /usr/bin/whoami
admin
$ chgrp admin useful.script
$ chown admin useful.script
$ ls -l useful.script
-rwxr-xr-- 1 admin admin 262 Apr 2 10:53 useful.script

Gestion des privilèges (liste des tâches)

Le moyen le plus sûr de gérer les privilèges pour les utilisateurs et les rôles est de limiter leur utilisation aux commandes comprises dans un profil de droits. Le profil de droits est ensuite inclus dans un rôle. Le rôle est attribué à un utilisateur. Lorsque l'utilisateur endosse le rôle affecté, les commandes privilégiées peuvent être exécutées dans un shell de profil. Les procédures ci-dessous décrivent l'attribution des privilèges, la suppression des privilèges et le débogage de l'utilisation de privilèges.

La liste des tâches suivante décrit les procédures pour affecter, supprimer et déboguer des privilèges, et pour exécuter un script contenant des commandes privilégiées.

Tâche
Description
Voir
Détermination des privilèges dans un processus.
Dresse la liste des jeux de privilèges effectifs, héritables, autorisés et limite pour un processus.
Détermination des privilèges manquants dans un processus.
Dresse la liste des privilèges requis par un processus ayant échoué pour s'exécuter correctement.
Ajout de privilèges à une commande.
Ajoute des privilèges à une commande dans un profil de droits. Le profil de droits peut être attribué à des utilisateurs ou des rôles. Les utilisateurs peuvent ensuite exécuter la commande avec les privilèges attribués dans un shell de profil.
Affectation de privilèges à un utilisateur ou à un rôle.
Développe le jeu de privilèges héritables d'un utilisateur ou d'un rôle. Utilisez cette procédure avec précaution.
Limitation des privilèges d'un utilisateur.
Limite le jeu de privilèges de base d'un utilisateur. Utilisez cette procédure avec précaution.
Exécution d'un script shell privilégié.
Ajoute un privilège à un script shell et aux commandes du script shell. Exécute ensuite le script dans un shell de profil.

Procédure de détermination de privilèges sur un processus

Cette procédure présente la détermination des privilèges disponibles pour vos processus. La liste n'inclut pas les privilèges attribués à des commandes particulières.

Exemple 9-34 Détermination des privilèges dans votre shell actuel

Dans l'exemple ci-dessous, les privilèges dans le processus parent du processus de shell de l'utilisateur sont répertoriés. Dans le deuxième exemple, les noms complets des privilèges sont répertoriés. Les lettres dans la sortie font référence aux jeux de privilèges suivants :

E

Jeu de privilèges effectif.

I

Jeu de privilèges héritable.

P

Jeu de privilèges autorisé.

L

Jeu de privilèges de limite.

% ppriv $$
1200:   -csh
flags = <none>
        E: basic
        I: basic
        P: basic
        L: all
% ppriv -v $$
1200:   -csh
flags = <none>
        E: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session
        I: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session
        P: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time

Exemple 9-35 Détermination des privilèges d'un rôle que vous pouvez prendre

Les rôles utilisent un shell d'administration ou un shell de profil. Vous devez endosser un rôle et utiliser son shell pour répertorier les privilèges qui lui ont été directement attribués. Dans l'exemple suivant, le rôle sysadmin n'a pas de privilèges attribués directement.

% su - sysadmin
Password: <Type sysadmin password>
$ /usr/bin/whoami
sysadmin
$ ppriv -v $$
1400:   pfksh
flags = <none>
        E: file_link_any,file_read,file_write,net_access,proc_exec,proc_fork,
           proc_info,proc_session
        I: file_link_any,file_read,file_write,net_access,proc_exec,proc_fork,
           proc_info,proc_session
        P: file_link_any,file_read,file_write,net_access,proc_exec,proc_fork,
           proc_info,proc_session
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,win_upgrade_sl

Procédure de détermination des privilèges requis par un programme

Cette procédure détermine les privilèges nécessaires à l'exécution correcte d'une commande ou d'un processus.

Avant de commencer

La commande ou le processus doit échouer pour que cette procédure de débogage fonctionne.

  1. Saisissez la commande ayant échoué en tant qu'argument de la commande de débogage ppriv.
    % ppriv -eD touch /etc/acct/yearly
    touch[5245]: missing privilege "file_dac_write"
         (euid = 130, syscall = 224) needed at zfs_zaccess+0x258
    touch: cannot create /etc/acct/yearly: Permission denied 
  2. Déterminez l'appel système défaillant en recherchant le numéro syscall dans le fichier /etc/name_to_sysnum.
    % grep 224 /etc/name_to_sysnum
    creat64                 224

Exemple 9-36 Utilisation de la commande truss pour examiner l'utilisation des privilèges

La commande truss peut déboguer l'utilisation des privilèges dans un shell standard. Par exemple, la commande suivante débogue le processus touch défaillant :

% truss -t creat touch /etc/acct/yearly
creat64("/etc/acct/yearly", 0666)            
                       Err#13 EACCES [file_dac_write]
touch: /etc/acct/yearly cannot create

Les interfaces /proc étendues signalent les privilèges manquants après le code d'erreur dans la sortie truss.

Exemple 9-37 Utilisation de la commande ppriv pour l'examen de l'utilisation des privilèges dans un shell de profil

La commande ppriv peut déboguer l'utilisation des privilèges dans un shell de profil. Si vous attribuez un profil de droits à un utilisateur et que ce profil comprend des commandes avec des privilèges, les commandes doivent être saisies dans un shell de profil. Lorsque les commandes privilégiées sont saisies dans un shell standard, les commandes ne sont pas exécutées avec les privilèges.

Dans cet exemple, l'utilisateur jdoe peut endosser le rôle objadmin. Le rôle objadmin comprend le profil de droits Object Access Management (gestion de l'accès aux objets). Ce profil de droits permet au rôle objadmin de modifier les autorisations pour les fichiers dont objadmin n'est pas propriétaire.

Dans l'exemple ci-dessous, jdoe ne parvient pas à changer les autorisations pour le fichier useful.script :

jdoe% ls -l useful.script
-rw-r--r--  1 aloe  staff  2303 Apr 10 10:10 useful.script
jdoe% chown objadmin useful.script
chown: useful.script: Not owner
jdoe% ppriv -eD chown objadmin useful.script
chown[11444]: missing privilege "file_chown" 
            (euid = 130, syscall = 16) needed at zfs_zaccess+0x258
chown: useful.script: Not owner

Lorsque jdoe endosse le rôle objadmin, les autorisations pour le fichier sont modifiées :

jdoe% su - objadmin
Password: <Type objadmin password>
$ ls -l useful.script
-rw-r--r--  1 aloe  staff  2303 Apr 10 10:10 useful.script
$ chown objadmin useful.script
$ ls -l useful.script
-rw-r--r--  1 objadmin  staff  2303 Apr 10 10:10 useful.script
$ chgrp admin useful.script
$ ls -l objadmin.script
-rw-r--r--  1 objadmin  admin  2303 Apr 10 10:11 useful.script

Exemple 9-38 Modification d'un fichier appartenant à l'utilisateur root

Cet exemple illustre les protections contre l'escalade des privilèges. Pour plus de détails, reportez-vous à la section Prévention de l'escalade de privilèges. Le fichier appartient à l'utilisateur root. Le rôle le moins puissant, objadmin, a besoin de tous les privilèges pour modifier la propriété du fichier, de sorte que l'opération échoue.

jdoe% su - objadmin
Password: <Type objadmin password>
$ cd /etc; ls -l system
-rw-r--r--  1 root  sys   1883 Oct 10 10:20 system
$ chown objadmin system
chown: system: Not owner
$ ppriv -eD chown objadmin system
chown[11481]: missing privilege "ALL" 
     (euid = 101, syscall = 16) needed at zfs_zaccess+0x258
chown: system: Not owner

Procédure d'exécution d'un script shell avec des commandes privilégiées


Remarque - Lorsque vous créez un script shell exécutant des commandes requérant des privilèges, le profil de droits approprié doit contenir les commandes avec les privilèges qui leur sont attribués.


Avant de commencer

Vous devez être dans le rôle root.

  1. Commencez le script avec /bin/pfsh, ou tout autre shell de profil, sur la première ligne.
    #!/bin/pfsh
    # Copyright (c) 2011 by Oracle
  2. Déterminez les privilèges requis pas les commandes du script.
    % ppriv -eD script-full-path
  3. Endossez le rôle d'administrateur et dotez-vous des attributs de sécurité nécessaires.

    Pour plus d'informations, reportez-vous à la section Procédure d'obtention des droits d'administration.

  4. Créez ou modifiez un profil de droits pour le script.

    Vous avez besoin d'ajouter le script de shell et les commandes dans le script de shell, avec les attributs de sécurité requis au profil de droits. Pour plus d'informations sur les étapes à suivre, reportez-vous à la section Procédure de création ou de modification d'un profil de droits.

  5. Ajoutez le profil de droits à un rôle et attribuez le rôle à un utilisateur.

    Pour exécuter le script, l'utilisateur endosse le rôle et exécute le script dans le shell de profil du rôle.