Sécurisation des utilisateurs et des processus dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Juillet 2014
 
 

Dépannage d'attributions de droits

Les processus d'un utilisateur ou d'un rôle peuvent ne pas s'exécuter avec les attributs de sécurité qui leurs sont affectés pour différentes raisons. Cette procédure aide à résoudre les problèmes lorsque des utilisateurs, des rôles ou des processus ne disposent pas de droits qui leur ont été affectés. Plusieurs étapes sont basées sur la section Ordre de recherche pour Assigned Rights.

Avant de commencer

Vous devez prendre le rôle root. Pour plus d'informations, voir A l'aide de vos droits administratifs attribués.

  1. Vérification et redémarrage du service de noms.
    1. Vérifiez que les affectations de sécurité pour l'utilisateur ou le rôle sont dans le service de noms activé sur le système.
      # svccfg -s name-service/switch
      
      svc:/system/name-service/switch> 
      listprop config
      
      config                      application
      config/value_authorization  astring  solaris.smf.value.name-service.switch
      config/default              astring  files ldap
      config/host                 astring  "files dns mdns ldap"
      config/netgroup             astring  ldap
      config/printer              astring  "user files"

      Dans cette sortie, tous les services qui ne sont pas explicitement mentionnés héritent de la valeur par défaut, files ldap. Par conséquent, la recherche porte tout d'abord sur passwd et ses bases de données d'attributs apparentées, user_attr, auth_attr et prof_attr dans les fichiers, puis dans LDAP.

    2. Redémarrez le cache du service de noms, svc:/system/name-service/cache.

      Le démon nscd peut présenter un long intervalle de durée de vie. En redémarrant le démon, vous mettez à jour le service de noms avec les données en cours.

      # svcadm restart name-service/cache
  2. Pour déterminer où un droit est attribué à l'utilisateur, exécuter la commande userattr -v.

    Par exemple, les commandes suivantes indiquent les attributs de sécurité attribués et le lieu de cette attribution pour l'utilisateur jdoe : Indique que jdoe se voit qu'il n'y ait aucune sortie à l'aide des valeurs par défaut.

    % userattr -v access_times jdoe
    % userattr -v access_tz jdoe
    % userattr -v auth_profiles jdoe
    % userattr -v defaultpriv jdoe
    % userattr -v limitpriv jdoe
    % userattr -v idlecmd jdoe
    % userattr -v idletime jdoe
    % userattr -v lock_after_retries jdoe
    % userattr -v pam_policy jdoe
    
    % userattr -v auths jdoe Output indicates authorizations from rights profiles
    Basic Solaris User :solaris.mail.mailq,solaris.network.autoconf.read,
    solaris.admin.wusb.read
    Console User :solaris.system.shutdown,solaris.device.cdrw,
    solaris.device.mount.removable,solaris.smf.manage.vbiosd,solaris.smf.value.vbiosd
    % userattr -v audit_flags jdoe
    user_attr: fw:no Output indicates jdoe is individually assigned audit flags
    # userattr -v profiles jdoe
    user_attr: Audit Review,Stop Output indicates two assigned rights profiles
    # userattr roles jdoe 
    user_attr : cryptomgt,infosec Output indicates two assigned roles

      La sortie indique que des indicateurs d'audit, deux profils de droits et deux rôles sont directement affectés à jdoe. Les autorisations affectées sont à partir de profils de droits par défaut dans le fichier. policy.conf

    • Etant donnéque les indicateurs d'audit sont directement affectés à jdoe ne pas lancer d'audit les valeurs d'indicateur, les profils de droits d'accès sera utilisée.

    • Les profils de droits d'accès sont évalués dans l'ordre, tout d'abord le profil Audit Review (vérification d'audit), puis le profil Stop (arrêt).

    • Pour tous les autres droits sont affectés et jdoe infosec parmi les rôles cryptomgt. Pour visualiser, jdoe devez vous connecter entant qu'ces droits leur étant associés, puis répertoriez les droits.

    Si le droit n'est directement affectés à l'utilisateur aux vérifications suivantes, poursuivez en vous reportant à la section.

  3. Vérifiez que les autorisations affectées sont orthographiées correctement.

    La source d'une attribution d'autorisation n'est pas importante, car les autorisations s'accumulent pour les utilisateurs. Une autorisation mal orthographiée échoue toutefois discrètement.

  4. Pour les profils de droits que vous avez créés, vérifiez que vous avez affecté les attributs de sécurité appropriés aux commandes dans ce profil.

    Par exemple, certaines commandes requièrent uid=0 plutôt que euid=0 pour s'exécuter correctement. Passez en revue la page de manuel de la commande pour savoir si la commande, ou n'importe lequel de ses options requérir des autorisations.

  5. Recherchez les droits figurant dans les profils de droits de l'utilisateur.
    1. Dans l'ordre, recherchez l'authentifié droits dans la liste des profils de droits.

      La valeur de l'attribut dans les premiers profils de droits de la liste est la valeur dans le noyau. Si cette valeur est incorrecte, modifiez-la dans ce profil de droits ou réaffectez les profils dans l'ordre correct. Reportez - vous à la Réorganisation Assigned Rights

      Pour les commandes dotées de privilèges, vérifiez que les privilèges ne sont pas supprimés du mot-clé defaultpriv ou limitpriv.

    2. Dans l'ordre, recherchez les droits d'accès dans la liste de titres normaux des profils de droits.

      Au fur et à mesure que vous sont identiques à celles de la configuration effectuée pour authentifié vérifie les profils de droits.

    3. Si les droits que vous recherchez n'est répertorié, vérifiez les rôles affectés à l'utilisateur.

      Si le droit est affecté à un rôle, l'utilisateur doit endosser le rôle pour obtenir ce droit.

  6. Vérifiez si l'échec d'une commande requiert des autorisations pour s'exécuter correctement.
    1. Vérifiez si un profil de droits existant inclut l'autorisation obligatoire.

      Si le profil, il est préférable d'utiliser celle-ci . L'affecter à l'utilisateur sous forme d'un profil de droits ou régulier authentifié profil de droits. Trier les profil avant les autres profils de droits incluant la commande nécessitant cette autorisation s'exécute correctement.

    2. Vérifiez si une option de la commande nécessite une autorisation.

      Affectez le privilège à la commande qui le nécessite, ajoutez les autorisations nécessaires, placez la commande et les autorisations dans un profil de droits, et affectez ce profil à l'utilisateur.

  7. Si une commande échoue continuellement pour un utilisateur, vérifiez que cet utilisateur exécute la commande dans un shell de profil.

    Les commandes d'administration doivent être exécutées dans un shell de profil. Example 7–1comment tester -1 pour un shell de profil.

      De façon à minimiser la probabilité de les erreurs de l'utilisateur, vous pouvez essayer l'opération suivante :

    • Affecter un shell de profil comme shell de connexion d'utilisateur.

    • Demandez à l'utilisateur de faire précéder tous les commandes privilégiées à l'aide de la commande. pfexec

    • Rappelez à l'utilisateur d'exécuter les commandes d'administration dans un shell de profil.

    • Si votre site, rappeler à l'utilisateur à l'aide des rôles pour prendre ce rôle avant d'exécuter des commandes d'administration. Commande pour obtenir un exemple de participants dont la présence a été plutôt que l'exécution en tant que rôle défini en tant qu'utilisateur, reportez-vous à l'Example 7 -3. Example 7–3

  8. En cas d'échec d'une commande pour un rôle, prenez le rôle et réalisez les étapes effectuées lors de la vérification des droits dont dispose l'utilisateur.
Exemple 7-1  Déterminer si vous utilisez un shell de profil

Lorsqu'une commande ne fonctionne pas privilégiées et informations d'identification et de l'utilisateur, tests du exécute ensuite ces PRIV_PFEXEC commande indicateur. Indiquer le message d'erreur indiquant que le problème risque de ne pas s'agit d'un privilège problème.

% praudit 20120814200247.20120912213421.example-system
praudit: Cannot associate stdin with 20120814200247.20120912213421.example-system: 
Permission denied

% ppriv $$
107219: bash
flags = <none>
...

% pfbash
# ppriv $$
1072232: bash
flags = PRIV_PFEXEC
...

# praudit 20120814200247.20120912213421.example-system 
/** Command succeeds **/
Exemple 7-2  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 droits compris dans l'un des profils de droits. Mettre en valeur les droits sont tronqués de façon à respecter les commandes.

% roles
devadmin

% su - devadmin
Password: xxxxxxxx

# profiles -l
Device Security
        ...      
	profiles=Service Configuration
          /usr/sbin/add_drv          uid=0
          /usr/sbin/devfsadm         uid=0
                                     privs=sys_devices,sys_config,
                                           sys_resource,file_owner,
                                           file_chown,file_chown_self,
                                           file_dac_read
          /usr/sbin/eeprom           uid=0
          /usr/bin/kbd 
          /usr/sbin/list_devices     euid=0
          /usr/sbin/rem_drv          uid=0
          /usr/sbin/strace           euid=0
          /usr/sbin/update_drv       uid=0
          /usr/sbin/add_allocatable  euid=0
          /usr/sbin/remove_allocatable   euid=0
Service Configuration
          /usr/sbin/svcadm 
          /usr/sbin/svccfg
Exemple 7-3  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: xxxxxxxx

# chgrp admin useful.script
# chown admin useful.script
# ls -l useful.script
-rwxr-xr-- 1 admin admin 262 Apr 2 10:53 useful.script