<html><body>
<p>I have a question about how to filter on personality.<br>
<br>
>From /usr/include/linux/personality.h I see:<br>
        PER_LINUX =             0x0000,<br>
        PER_LINUX_32BIT =       0x0000 | ADDR_LIMIT_32BIT,<br>
        PER_LINUX32 =           0x0008,<br>
        PER_LINUX32_3GB =       0x0008 | ADDR_LIMIT_3GB,<br>
<br>
So if I want to audit a particular syscall, chmod for example, in a 32bit executable, is this the correct usage?:<br>
"auditctl -a exit,always -S chmod -F pers=0x0008"<br>
<br>
I've created a simple test that executes the __NR_chmod syscall and compiled it 32bit <br>
(out put from "file":<br>
 ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped")<br>
<br>
When I add the above rule, it is accepted by auditctl and is listed as:<br>
"AUDIT_LIST: exit always pers=8 (0x8) syscall=chmod"<br>
But I do not see any audit records generated.<br>
<br>
Also, if I add the rule<br>
"auditctl -a exit,always -S chmod -F pers=0x0000"<br>
It is accepted by auditctl and is listed as:<br>
"AUDIT_LIST: exit always pers=0 syscall=chmod"<br>
And I do see audit records generated in /var/log/messages.  Note: "pers" is not displayed in the record.<br>
<br>
I wasn't sure if 0x0008 was the correct value to capture syscalls compiled in 32bit mode.  So I tried this auditctl filter next:<br>
"auditctl -a exit,always -S chmod -F pers!=0x0000"<br>
It is accepted by auditctl and is listed as:<br>
"AUDIT_LIST: exit always pers!=0 syscall=chmod"<br>
Again, no audit records are generated.<br>
<br>
<br>
In the same personality.h, I found:<br>
        ADDR_LIMIT_32BIT =      0x0800000,<br>
<br>
So I also tried:<br>
"auditctl -a  exit,always -S chmod -F pers=0x0800000"<br>
It is accepted by auditctl and is listed as:<br>
AUDIT_LIST: exit always pers=8388608 (0x800000) syscall=chmod<br>
But again, I don't see any audit records generated.<br>
<br>
-debbie<br>
<br>
<br>
<br>
<br>
<br>
</body></html>