On Tue, 24 Apr 2001, Rijndal Groeber wrote:
>
> On Tue, 24 Apr 2001, Alin Nastac wrote:
>
> >
> > Exista un programel numit fuser (cel putin in RH 7 si rpm-ul care-l
> > contine se numeste psmisc). Cu el poti vedea cine utilizeaza /dev/null.
> >
> Multam... Stiam si eu de fuser.
> Problema este ca nu stiu exact cand se schimba modul, iar dupa, nici un
> proces nu il tine deschis.
Daca nu gasesti nici in ruptul capului o solutie mai ``blanda'' atunci
umbla un pic la kernel. Compileaza kernelul avand in plus:
in <linux-src-root>/fs/open.c
pe la inceputul functiei
asmlinkage long sys_chmod(const char * filename, mode_t mode) { ...
dupa declaratiile de date,
(
struct nameidata nd;
struct inode * inode;
int error;
struct iattr newattrs;
)
adauga:
printk (KERN_INFO " ===> Procesul cu pid`ul `%d' executa un chmod cu
valoarea `%d' ptr `%s'\n", current->pid, mode, filename);
si apoi recompileaza kernelul si dupa boot`area cu acest kernel ( banuiesc
ca stii cum se face ;-) ) uita`te in /var/log/messages sau unde prinde
linuxul tau mesajele de pe KERN_INFO si vei vedea mesaje ca in printk.
Daca de ex e vorba de un script (care exec chmod`ul) s`ar putea sa te
intereseze mai degraba pid-ul tatalui procesului care a executat chmod`ul
si atunci mai adauga un `%d' undeva cu corespondentul pidului tatalui,
adica taman
current->p_pptr->pid
Evident ca, dupa gasirea ``vinovatului'' poti reveni la vechiul kernel.
Numa bine si spune`mi te rog daca tzi`a reusit! (la mine am vazut ca merge
dar n`am probl ta)
Bogdan M.
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
unsubscribe from this list.