Bayrouni wrote:Bonjour,
J'ai un tout petit programme en C, qui declanche une alarme.
Il agit sur le haut-parleur de PC.
Quand je l'execute en tant que root, j'entends l'alarme ,
par contre en tant que utilisateur, d'abord il y avait l'erreur:
./trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
alors j'ai changé en:
ll /dev/console
crw-rw-rw- 1 root tty 5, 1 Mar 24 10:49 /dev/console
Le programme s'exute pendant les 10 secondes de test mais sans aucun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Merci
Bayrouni
Salut !
Pourquoi ne pas modifier directement les droits du périphérique audio:
/dev/audio en attribuant [rw] à [other] ?
C'est certainement une faille de sécurité mais comme ça ton programme
devrait marcher.
py
Bayrouni wrote:
Bonjour,
J'ai un tout petit programme en C, qui declanche une alarme.
Il agit sur le haut-parleur de PC.
Quand je l'execute en tant que root, j'entends l'alarme ,
par contre en tant que utilisateur, d'abord il y avait l'erreur:
./trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
alors j'ai changé en:
ll /dev/console
crw-rw-rw- 1 root tty 5, 1 Mar 24 10:49 /dev/console
Le programme s'exute pendant les 10 secondes de test mais sans aucun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Merci
Bayrouni
Salut !
Pourquoi ne pas modifier directement les droits du périphérique audio:
/dev/audio en attribuant [rw] à [other] ?
C'est certainement une faille de sécurité mais comme ça ton programme
devrait marcher.
py
Bayrouni wrote:Bonjour,
J'ai un tout petit programme en C, qui declanche une alarme.
Il agit sur le haut-parleur de PC.
Quand je l'execute en tant que root, j'entends l'alarme ,
par contre en tant que utilisateur, d'abord il y avait l'erreur:
./trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
alors j'ai changé en:
ll /dev/console
crw-rw-rw- 1 root tty 5, 1 Mar 24 10:49 /dev/console
Le programme s'exute pendant les 10 secondes de test mais sans aucun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Merci
Bayrouni
Salut !
Pourquoi ne pas modifier directement les droits du périphérique audio:
/dev/audio en attribuant [rw] à [other] ?
C'est certainement une faille de sécurité mais comme ça ton programme
devrait marcher.
py
Jean-Michel OLTRA wrote:bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit..../trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans aucun so n.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or di rectory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or di rectory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size$361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or di rectory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size53924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
Jean-Michel OLTRA wrote:
bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit...
./trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans aucun so n.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or di rectory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or di rectory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=24361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or di rectory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1253924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
Jean-Michel OLTRA wrote:bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit..../trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans aucun so n.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or di rectory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or di rectory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size$361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or di rectory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size53924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
Bayrouni writes:Jean-Michel OLTRA wrote:bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit..../trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans aucun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size$361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size53924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
J'ai lancé strace sur echo -e "a", qui provoque un bip du haut-parleur, pour
voir dans quel périphérque il écrit.
Il écrit dans /dev/pts/0, qui est le terminal associé à mon shell comme je peux
le voir avec ps, sur lequel j'ai bien les droits d'écriture.
Je pense tout simplement que ton programme est buggé car il écrit
systématiquement dans /dev/console (réservé à root) au lieu de rechercher (par
un moyen que j'ignore) le terminal attaché à son processus.
Léo.
Bayrouni <bayrouni@brutele.be> writes:
Jean-Michel OLTRA wrote:
bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit...
./trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans aucun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size$361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size53924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
J'ai lancé strace sur echo -e "a", qui provoque un bip du haut-parleur, pour
voir dans quel périphérque il écrit.
Il écrit dans /dev/pts/0, qui est le terminal associé à mon shell comme je peux
le voir avec ps, sur lequel j'ai bien les droits d'écriture.
Je pense tout simplement que ton programme est buggé car il écrit
systématiquement dans /dev/console (réservé à root) au lieu de rechercher (par
un moyen que j'ignore) le terminal attaché à son processus.
Léo.
Bayrouni writes:Jean-Michel OLTRA wrote:bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit..../trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans aucun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size$361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size53924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
J'ai lancé strace sur echo -e "a", qui provoque un bip du haut-parleur, pour
voir dans quel périphérque il écrit.
Il écrit dans /dev/pts/0, qui est le terminal associé à mon shell comme je peux
le voir avec ps, sur lequel j'ai bien les droits d'écriture.
Je pense tout simplement que ton programme est buggé car il écrit
systématiquement dans /dev/console (réservé à root) au lieu de rechercher (par
un moyen que j'ignore) le terminal attaché à son processus.
Léo.
Leopold BAILLY wrote:Bayrouni writes:Jean-Michel OLTRA wrote:bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit..../trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans aucun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quo i ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or d irectory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or d irectory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size$361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or d irectory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size53924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
J'ai lancé strace sur echo -e "a", qui provoque un bip du haut-parleu r, pour
voir dans quel périphérque il écrit.
Il écrit dans /dev/pts/0, qui est le terminal associé à mon shell comme je peux
le voir avec ps, sur lequel j'ai bien les droits d'écriture.
Je pense tout simplement que ton programme est buggé car il écrit
systématiquement dans /dev/console (réservé à root) au lieu de r echercher (par
un moyen que j'ignore) le terminal attaché à son processus.
Léo.
Voici la ligne qui est mise en cause dans mon programme C.
(Je ne suis pas du tout specialiste du C)
console_fd = open("/dev/console", O_WRONLY)
Leopold BAILLY wrote:
Bayrouni <bayrouni@brutele.be> writes:
Jean-Michel OLTRA wrote:
bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit...
./trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans aucun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quo i ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or d irectory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or d irectory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=24361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or d irectory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1253924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
J'ai lancé strace sur echo -e "a", qui provoque un bip du haut-parleu r, pour
voir dans quel périphérque il écrit.
Il écrit dans /dev/pts/0, qui est le terminal associé à mon shell comme je peux
le voir avec ps, sur lequel j'ai bien les droits d'écriture.
Je pense tout simplement que ton programme est buggé car il écrit
systématiquement dans /dev/console (réservé à root) au lieu de r echercher (par
un moyen que j'ignore) le terminal attaché à son processus.
Léo.
Voici la ligne qui est mise en cause dans mon programme C.
(Je ne suis pas du tout specialiste du C)
console_fd = open("/dev/console", O_WRONLY)
Leopold BAILLY wrote:Bayrouni writes:Jean-Michel OLTRA wrote:bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit..../trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans aucun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quo i ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or d irectory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or d irectory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size$361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or d irectory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size53924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
J'ai lancé strace sur echo -e "a", qui provoque un bip du haut-parleu r, pour
voir dans quel périphérque il écrit.
Il écrit dans /dev/pts/0, qui est le terminal associé à mon shell comme je peux
le voir avec ps, sur lequel j'ai bien les droits d'écriture.
Je pense tout simplement que ton programme est buggé car il écrit
systématiquement dans /dev/console (réservé à root) au lieu de r echercher (par
un moyen que j'ignore) le terminal attaché à son processus.
Léo.
Voici la ligne qui est mise en cause dans mon programme C.
(Je ne suis pas du tout specialiste du C)
console_fd = open("/dev/console", O_WRONLY)
Leopold BAILLY wrote:Bayrouni writes:Leopold BAILLY wrote:Bayrouni writes:Leopold BAILLY wrote:Bayrouni writes:Jean-Michel OLTRA wrote:bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit..../trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans au cun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size$361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size53924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
J'ai lancé strace sur echo -e "a", qui provoque un bip du haut-par leur, pour
voir dans quel périphérque il écrit.
Il écrit dans /dev/pts/0, qui est le terminal associé à mon she ll comme je peux
le voir avec ps, sur lequel j'ai bien les droits d'écriture.
Je pense tout simplement que ton programme est buggé car il écrit
systématiquement dans /dev/console (réservé à root) au lieu d e rechercher (par
un moyen que j'ignore) le terminal attaché à son processus.
Léo.
Voici la ligne qui est mise en cause dans mon programme C.
(Je ne suis pas du tout specialiste du C)
console_fd = open("/dev/console", O_WRONLY)
Vérifie que /dev/pts/0 t'appartient bien et remplace /dev/console par
/dev/pts/0
juste pour voir si ça marche.
Léo.
J'avais déjà essayé de remplacé /dev/console par /dev/pts/0
ll /dev/pts/0
crw--w---- 1 moi tty 136, 0 2005-03-25 18:04 /dev/pts/0
Le programme se compile et s'execute mais sans alarme (une boucle de bee ps à
differentes frequences).
Est-ce que tu peux m'envoyer le source du programme ?
Léo.
Oui bien sûr.
C'est une reduction au strict minimum du programme beep.c disponible sur le net.
voici le code source du miniscule programme alarm.c en pièce jointe:
Je n'ai pas encore enlevé tout ce qui n'est pas necessaire pour son
fonctionnement car je voulais d'abord voir son fonctionnement.
ioctl (console_fd, KIOCSOUND, (int) (CLOCK_TICK_RATE/freq));
Leopold BAILLY wrote:
Bayrouni <bayrouni@brutele.be> writes:
Leopold BAILLY wrote:
Bayrouni <bayrouni@brutele.be> writes:
Leopold BAILLY wrote:
Bayrouni <bayrouni@brutele.be> writes:
Jean-Michel OLTRA wrote:
bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit...
./trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans au cun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=24361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1253924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
J'ai lancé strace sur echo -e "a", qui provoque un bip du haut-par leur, pour
voir dans quel périphérque il écrit.
Il écrit dans /dev/pts/0, qui est le terminal associé à mon she ll comme je peux
le voir avec ps, sur lequel j'ai bien les droits d'écriture.
Je pense tout simplement que ton programme est buggé car il écrit
systématiquement dans /dev/console (réservé à root) au lieu d e rechercher (par
un moyen que j'ignore) le terminal attaché à son processus.
Léo.
Voici la ligne qui est mise en cause dans mon programme C.
(Je ne suis pas du tout specialiste du C)
console_fd = open("/dev/console", O_WRONLY)
Vérifie que /dev/pts/0 t'appartient bien et remplace /dev/console par
/dev/pts/0
juste pour voir si ça marche.
Léo.
J'avais déjà essayé de remplacé /dev/console par /dev/pts/0
ll /dev/pts/0
crw--w---- 1 moi tty 136, 0 2005-03-25 18:04 /dev/pts/0
Le programme se compile et s'execute mais sans alarme (une boucle de bee ps à
differentes frequences).
Est-ce que tu peux m'envoyer le source du programme ?
Léo.
Oui bien sûr.
C'est une reduction au strict minimum du programme beep.c disponible sur le net.
voici le code source du miniscule programme alarm.c en pièce jointe:
Je n'ai pas encore enlevé tout ce qui n'est pas necessaire pour son
fonctionnement car je voulais d'abord voir son fonctionnement.
ioctl (console_fd, KIOCSOUND, (int) (CLOCK_TICK_RATE/freq));
Leopold BAILLY wrote:Bayrouni writes:Leopold BAILLY wrote:Bayrouni writes:Leopold BAILLY wrote:Bayrouni writes:Jean-Michel OLTRA wrote:bonjour,
Le jeudi 24 mars 2005, Astar0th a écrit..../trig-alarm
Could not open /dev/console for writing.
open: Permission denied.
Le programme s'exute pendant les 10 secondes de test mais sans au cun son.
Je suis persiadé qu'il s'agit d'une question de droits mais sur quoi ?
Essaye avec strace (man strace)
strace -e file ./trig-alarm
Voici l'affichage de
strace -e file ./bin/trig-alarm:
execve("./bin/trig-alarm", ["./bin/trig-alarm"], [/* 23 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size$361, ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size53924, ...}) = 0
open("/dev/console", O_WRONLY) = 3
J'ai lancé strace sur echo -e "a", qui provoque un bip du haut-par leur, pour
voir dans quel périphérque il écrit.
Il écrit dans /dev/pts/0, qui est le terminal associé à mon she ll comme je peux
le voir avec ps, sur lequel j'ai bien les droits d'écriture.
Je pense tout simplement que ton programme est buggé car il écrit
systématiquement dans /dev/console (réservé à root) au lieu d e rechercher (par
un moyen que j'ignore) le terminal attaché à son processus.
Léo.
Voici la ligne qui est mise en cause dans mon programme C.
(Je ne suis pas du tout specialiste du C)
console_fd = open("/dev/console", O_WRONLY)
Vérifie que /dev/pts/0 t'appartient bien et remplace /dev/console par
/dev/pts/0
juste pour voir si ça marche.
Léo.
J'avais déjà essayé de remplacé /dev/console par /dev/pts/0
ll /dev/pts/0
crw--w---- 1 moi tty 136, 0 2005-03-25 18:04 /dev/pts/0
Le programme se compile et s'execute mais sans alarme (une boucle de bee ps à
differentes frequences).
Est-ce que tu peux m'envoyer le source du programme ?
Léo.
Oui bien sûr.
C'est une reduction au strict minimum du programme beep.c disponible sur le net.
voici le code source du miniscule programme alarm.c en pièce jointe:
Je n'ai pas encore enlevé tout ce qui n'est pas necessaire pour son
fonctionnement car je voulais d'abord voir son fonctionnement.
ioctl (console_fd, KIOCSOUND, (int) (CLOCK_TICK_RATE/freq));
D'après ce document : http://www.linux.com/guides/lpg/lpg.shtml,
/dev/console est l'unique moyen standard de contrôler le haut-parleur,
exactement comme c'est fait dans ton programme.
Il existe un autre moyen : http://www.geocities.com/stssppnn/pcsp.html,
c'est un module du noyau qui permet d'adresser le haut-parleur comme une
carte son.
La solution la plus simple et la plus propre pour toi est sans doute
d'ajouter la permission "set uid root" à ton programme :
$ chown root:root alarm
$ chmod +s alarm
Tu peut aussi faire un script à base de echo -e "a", c'est moins joli
mais tout aussi efficace.
D'après ce document : http://www.linux.com/guides/lpg/lpg.shtml,
/dev/console est l'unique moyen standard de contrôler le haut-parleur,
exactement comme c'est fait dans ton programme.
Il existe un autre moyen : http://www.geocities.com/stssppnn/pcsp.html,
c'est un module du noyau qui permet d'adresser le haut-parleur comme une
carte son.
La solution la plus simple et la plus propre pour toi est sans doute
d'ajouter la permission "set uid root" à ton programme :
$ chown root:root alarm
$ chmod +s alarm
Tu peut aussi faire un script à base de echo -e "a", c'est moins joli
mais tout aussi efficace.
D'après ce document : http://www.linux.com/guides/lpg/lpg.shtml,
/dev/console est l'unique moyen standard de contrôler le haut-parleur,
exactement comme c'est fait dans ton programme.
Il existe un autre moyen : http://www.geocities.com/stssppnn/pcsp.html,
c'est un module du noyau qui permet d'adresser le haut-parleur comme une
carte son.
La solution la plus simple et la plus propre pour toi est sans doute
d'ajouter la permission "set uid root" à ton programme :
$ chown root:root alarm
$ chmod +s alarm
Tu peut aussi faire un script à base de echo -e "a", c'est moins joli
mais tout aussi efficace.
Le Fri, 25 Mar 2005 22:31:43 +0100, Leopold BAILLY a écrit :D'après ce document : http://www.linux.com/guides/lpg/lpg.shtml,
/dev/console est l'unique moyen standard de contrôler le haut-parleur,
exactement comme c'est fait dans ton programme.
Il existe un autre moyen : http://www.geocities.com/stssppnn/pcsp.html,
c'est un module du noyau qui permet d'adresser le haut-parleur comme une
carte son.
La solution la plus simple et la plus propre pour toi est sans doute
d'ajouter la permission "set uid root" à ton programme :
$ chown root:root alarm
$ chmod +s alarm
Tu peut aussi faire un script à base de echo -e "a", c'est moins joli
mais tout aussi efficace.
Sur ma Sarge, il y a le paquet beep qui va bien sans être root.
Peut-être que jeter un oeil au source pourrait vous inspirer
Le Fri, 25 Mar 2005 22:31:43 +0100, Leopold BAILLY a écrit :
D'après ce document : http://www.linux.com/guides/lpg/lpg.shtml,
/dev/console est l'unique moyen standard de contrôler le haut-parleur,
exactement comme c'est fait dans ton programme.
Il existe un autre moyen : http://www.geocities.com/stssppnn/pcsp.html,
c'est un module du noyau qui permet d'adresser le haut-parleur comme une
carte son.
La solution la plus simple et la plus propre pour toi est sans doute
d'ajouter la permission "set uid root" à ton programme :
$ chown root:root alarm
$ chmod +s alarm
Tu peut aussi faire un script à base de echo -e "a", c'est moins joli
mais tout aussi efficace.
Sur ma Sarge, il y a le paquet beep qui va bien sans être root.
Peut-être que jeter un oeil au source pourrait vous inspirer
Le Fri, 25 Mar 2005 22:31:43 +0100, Leopold BAILLY a écrit :D'après ce document : http://www.linux.com/guides/lpg/lpg.shtml,
/dev/console est l'unique moyen standard de contrôler le haut-parleur,
exactement comme c'est fait dans ton programme.
Il existe un autre moyen : http://www.geocities.com/stssppnn/pcsp.html,
c'est un module du noyau qui permet d'adresser le haut-parleur comme une
carte son.
La solution la plus simple et la plus propre pour toi est sans doute
d'ajouter la permission "set uid root" à ton programme :
$ chown root:root alarm
$ chmod +s alarm
Tu peut aussi faire un script à base de echo -e "a", c'est moins joli
mais tout aussi efficace.
Sur ma Sarge, il y a le paquet beep qui va bien sans être root.
Peut-être que jeter un oeil au source pourrait vous inspirer