2016-05-18 4 views
1

J'ai quelques problèmes avec quelques contexte SELinux de mes fichiers avec ma configuration OpenStack-rapideComment préserver le contexte SELinux sur un fichier lors de l'exécution d'un utilisateur non confiné

détails de configuration:

A démon est en cours d'exécution-réplicateur-objet rapide avec SELinux contexte suivant

system_u:system_r:swift_t:s0 swift ... /usr/bin/python /usr/bin/swift-object-replicator /etc/swift/object-server.conf

Ce démon appelle périodiquement un script. Le fichier créé par ce script a le contexte SELinux suivant

system_u:object_r:swift_var_cache_t:s0 /var/cache/swift/object.recon

Ce qui est correct !!

La question

Si je lance le même script (qui daemon appelle en interne) à partir d'un terminal 'root', le fichier object.recon SELinux contexte est modifié comme suit -rw-------. swift swift unconfined_u:object_r:var_t:s0 /var/cache/swift/object.recon

et puis je commence à voir des messages d'erreur dans que les fichiers journaux du démon

Toute idée pourquoi les changements de contexte et comment la préserver même si je souhaite déclencher le script à partir d'un terminal

+1

Vous ne pouvez pas l'empêcher . SElinux est censé faire cela. D'autre part, essayez de créer une politique cible pour cela. – alvits

+0

@alvits Oui, c'est ce que je pensais. Quel genre de politique serait-ce? Pouvez-vous s'il vous plaît donnez-moi les détails – mittal

+1

Voici [quelque chose pour vous aider à démarrer] (http://www.billauer.co.il/selinux-policy-module-howto.html). – alvits

Répondre

1

Je compris 2 façons de retenir les contextes:

  • Utilisez runcon pour exécuter la commande avec le contexte correct

    runcon -t swift_t -r system_r swift-object-replicator /etc/swift/object-server.conf -ov 
    
  • Ou, définir une règle de type_transition SELinux afin que l'utilisateur avec le domaine unconfined_t tout l'exécution des transitions de script dans le domaine correct

    require { 
    type unconfined_t; 
    type swift_exec_t; 
    type swift_t; 
    role unconfined_r; 
    class process transition; 
    } 
    
    role unconfined_r types swift_t; 
    
    type_transition unconfined_t swift_exec_t:process swift_t;