- Fedora-Fr
- À propos de Fedora-Fr
- Historique
- Statistiques
- Télécharger
- Obtenir Fedora
- Toutes les méthodes de téléchargement
- Support
- Aide sur IRC
- Forums
- Documentation
- Sous-projets
- Plateforme de blog
Dernière news : Clap de fin pour Fedora Linux 35 !
Bonsoir,
J'ai un serveur de streaming icecast qui marche bien. Je voudrais activer l'enregistrement du flux pour faire certains différés malheureusement cela na marche pas.
journactl me dit :
Oct 16 17:33:17 vpsxxxxxhoot[482126]: SELinux is preventing icecast from rename access on the file error.log. For complete SELinux messages run: sealert -l 7d4b7104-0e01-4b28-9fc7-78e5d0122f8a
Oct 16 17:33:16 vpsxxxxxhoot[482126]: AnalyzeThread.run(): Cancel pending alarm
Oct 16 17:33:16 vpsxxxxxhoot[482126]: AnalyzeThread.run(): Set alarm timeout to 10
Oct 16 17:33:16 vpsxxxxxhoot[482126]: SELinux is preventing icecast from add_name access on the directory enregistrement_2021-10-16_17:33:08.mp3.
***** Plugin catchall (100. confidence) suggests **************************
If you believe that icecast should be allowed add_name access on the enregistrement_2021-10-16_17:33:08.mp3 directory by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# ausearch -c 'icecast' --raw | audit2allow -M my-icecast
# semodule -X 300 -i my-icecast.pp
je fais mon essai sur /tmp
J'ai appliqué les suggestions mais cela ne marche pas mieux sauf qu'il n'y a plus ces indication dans journactl
avec setenforce = 0, le fichier est bien là, comme il s'agit d'un serveur publique, je préfère laisser Selinux actif !
auriez-vous une idée ?
Merci
Gérard
F37, Kde/plasma Wayland, ASUSTeK M5A78L-M/USB3, AMD FX-6300, NVIDIA GM107 [GeForce GTX 750 Ti], 8Go de mémoire
Hors ligne
Ta regardé ici : https://linux.die.net/man/8/icecast_selinux
AMD R7 5800x X470 64Go DDR4 3.6Ghz, RX5700XT + AMD R7 2700x A320 + 32Go DDR4 3.2Ghz, rx6500xt 4Go
AMD R5 5600g B550 itx, 32Go +AMD R5 2600 A320,1030GT, 16Go + AMD A6 9500 A320, 8Go
Rpi4 4go
Hors ligne
maintenant oui ! mais un peu compliqué pour moi.
Je pensais stocker les fichiers dans le répertoire d'un serveur http.
Peut-il y avoir plusieurs context pour un même répertoire ? http et icecast ?
icecast_var_run_t
- Set files with the icecast_var_run_t type, if you want to store the icecast files under the /run directory.
Note: File context can be temporarily modified with the chcon command. If you want to permanently change the file context you need to use the semanage fcontext command. This will modify the SELinux labeling database. You will need to use restorecon to apply the labels.
pas clair pour moi
le _run_ du type est-il celui du /run de l'exemple ?
on verra demain
merci pour la solution à mettre en place
F37, Kde/plasma Wayland, ASUSTeK M5A78L-M/USB3, AMD FX-6300, NVIDIA GM107 [GeForce GTX 750 Ti], 8Go de mémoire
Hors ligne
Tu peux, mais il faut reconstruire le context ou en créer un nouveau.
J'ai une petite procédure que je dois retrouver.
Tu dois pouvoir aussi faire un :
restorecon -R emplacement
Histoire de voir si ce n'est pas juste un souci d'étiquette.
Pense quand même à le signaler sur le bugzilla histoire de voir si ce n'est pas possible de l'ajouter par défaut.
AMD R7 5800x X470 64Go DDR4 3.6Ghz, RX5700XT + AMD R7 2700x A320 + 32Go DDR4 3.2Ghz, rx6500xt 4Go
AMD R5 5600g B550 itx, 32Go +AMD R5 2600 A320,1030GT, 16Go + AMD A6 9500 A320, 8Go
Rpi4 4go
Hors ligne
je vais de fait avoir besoin d'un peu d'aide :
# chcon -R -t icecast_t /var/www/html/stream
chcon: failed to change context of 'index.php' to ‘unconfined_u:object_r:icecast_t:s0’: Permission denied
chcon: failed to change context of '/var/www/html/stream' to ‘unconfined_u:object_r:icecast_t:s0’: Permission denied
j'attends ta procédure pour continuer, pour l'instant il ignore complètement le chemin indiqué dans /etxc/icecast.xml ! plus d'erreur SElinux
j'ai cherché les dossiers ayant le bon contexte
# semanage fcontext -l | grep 'icecast_var_run_t'
/var/run/icecast(/.*)? all files system_u:object_r:icecast_var_run_t:s0
/var/run/icecast\.pid
mais le résultat est surprenant car /var/run/icecast n'existe pas
créer le dossier /var/run/icecast ne change rien
je sèche...
en dernier recours, je pourrais mettre les fichiers dans un dossier accepté par icecast et Selinux et faire une routine pour les déplacer dans le dossier html si on ne peut y mettre deux contexts.
Merci
Gérard
Dernière modification par fgland (17/10/2021 17:57:19)
F37, Kde/plasma Wayland, ASUSTeK M5A78L-M/USB3, AMD FX-6300, NVIDIA GM107 [GeForce GTX 750 Ti], 8Go de mémoire
Hors ligne
J'ai un peu avancé,
j'avais mis le dossier /var/run/icecast en 755 mais il fallait qu'il appartienne à icecast.
J'ai remis les fichiers dans /var/www/html/stream avec les droits et context icecast et les fichiers sont bien là mais apache ne peut les lire
Warning: opendir(./stream): failed to open dir: Permission denied
avec setenforce 0, j'ai bien la liste
Reste donc comment mettre deux context à un dossier pour que icecast puisse y écrire et apache le lire
F37, Kde/plasma Wayland, ASUSTeK M5A78L-M/USB3, AMD FX-6300, NVIDIA GM107 [GeForce GTX 750 Ti], 8Go de mémoire
Hors ligne
Normalement c'est l'utilisateur apache qui doit avoir les droits dans ce répertoire.
Regarde si tu peux ajouter le groupe à icecast ou inversement icecast à apache.
AMD R7 5800x X470 64Go DDR4 3.6Ghz, RX5700XT + AMD R7 2700x A320 + 32Go DDR4 3.2Ghz, rx6500xt 4Go
AMD R5 5600g B550 itx, 32Go +AMD R5 2600 A320,1030GT, 16Go + AMD A6 9500 A320, 8Go
Rpi4 4go
Hors ligne
pas si simple car le problème est sur SElinux.
le dossier est soit
icecast_var_run_t et apache ne peut le lire
soit
httpd_sys_content_t et icecast ne peut y écrire
Quel que soit l'endroit du dossier, il y aura conflit
Le fait de mettre icecast propriétaire permet d'avoir le dossier en lecture seule pour apache, il ne se plaint pas si je désactive SElinux
F37, Kde/plasma Wayland, ASUSTeK M5A78L-M/USB3, AMD FX-6300, NVIDIA GM107 [GeForce GTX 750 Ti], 8Go de mémoire
Hors ligne
je suis arrivé à un résultat satisfaisant
icecast copie les fichiers dans son dossier.
Quand j'arrête la retransmission, j'appelle un fichier surveillé par inotify qui en tant que root déplace le(s) fichier(s) et modifie l’étiquette SElinux dans un dossier lisible par apache.
Merci pour votre aide
Gérard
F37, Kde/plasma Wayland, ASUSTeK M5A78L-M/USB3, AMD FX-6300, NVIDIA GM107 [GeForce GTX 750 Ti], 8Go de mémoire
Hors ligne
Sinon voilà la petite procédure (par exemple) avec avec les explications pour installer :
Après avoir créer le fichier " logssamba.mod"
module logssamba 1.0;
require {
type sambasharet;
type syslogd_t;
class file { ioctl read write create getattr setattr lock append unlink link rename open };
class dir { search getattr write add_name };
}
#============= syslogd_t ==============
allow syslogdt sambashare_t:file { ioctl read write create getattr setattr lock append unlink link rename open } ;
allow syslogdt sambasharet:dir { search getattr write addname };
Pour l'installer :
sudo checkmodule -M -m -o logssamba.mod logssamba.te
sudo semodulepackage -o logssamba.pp -m syslogsamba_policy.mod
sudo semodule -i logssamba.pp
AMD R7 5800x X470 64Go DDR4 3.6Ghz, RX5700XT + AMD R7 2700x A320 + 32Go DDR4 3.2Ghz, rx6500xt 4Go
AMD R5 5600g B550 itx, 32Go +AMD R5 2600 A320,1030GT, 16Go + AMD A6 9500 A320, 8Go
Rpi4 4go
Hors ligne