Hi Hugh or Mike, I tried to set the gloabl parameters "User" and "Group" to change the effective ID's for better security. I got the following error in radiatorlog (trace 4):
Wed Sep 4 14:17:06 2002: NOTICE: SIGHUP received: restarting Wed Sep 4 14:17:07 2002: DEBUG: Reading group file /etc/group Wed Sep 4 14:17:07 2002: DEBUG: Reading users file /radiator/etc/test-users Wed Sep 4 14:17:07 2002: DEBUG: Reading users file /radiator/etc/freeway-users Wed Sep 4 14:17:07 2002: DEBUG: Reading users file /radiator/etc/ulmathome-users Wed Sep 4 14:17:07 2002: DEBUG: Reading users file /radiator/etc/wlan-users Wed Sep 4 14:17:07 2002: ERR: Could not set Group to radiusd: Not owner Wed Sep 4 14:17:07 2002: INFO: Server started: Radiator 3.3 on mizar the config file looks like: > AuthPort 1812 > AcctPort 1813 > > # Set this to the directory where your logfile and details file are to go > LogDir /radiator/log > DbDir /radiator/etc > DefineGlobalVar AcctDir /radiator/accounting > > PidFile %D/pidfile > DictionaryFile %D/dictionary.my > > User radiusd > Group radiusd > > # > ############ undef global Logfile ################################# > # > LogFile > # > ############ define general Logfile ################################# > # > <Log FILE> > Trace 4 > Filename %L/radiatorlog > </Log> > # > ############ define Authentication Logfiles ######################### > # > <AuthLog FILE> > Identifier authlogger > Filename %L/authlog/%{Client:Identifier}-authlog > LogSuccess 1 > LogFailure 1 > SuccessFormat %q %d.%m.%Y %H:%M:%S %T from %C for %U: OK > FailureFormat %q %d.%m.%Y %H:%M:%S %T from %C for %U: FAIL > </Authlog> > .... > .... the uid and gid for radiusd are defined in /etc/passwd and /etc/group to 114. truss delivers the following output. I prefixed the output with line numbers for better referencing (see below): - everything works well until line 242, the config file gets read and the then the different files are openend/read. At line 243 the seteuid funtion call with uid 114 for user radiusd is called. 243 19527: seteuid(114) = 0 244 19527: getuid() = 0 [114] 245 19527: door_info(4, 0xFFBFF3E0) = 0 246 19527: door_call(4, 0xFFBFF3C8) = 0 247 19527: open("/etc/shadow", O_RDONLY) Err#13 EACCES 248 19527: setgroups(3, 0xFFBFF7B8) Err#1 EPERM 249 19527: setegid(114) Err#1 EPERM after the seteuid an additional open to /etc/shadow results in EACCES and the setgroups and setegid function calls results in EPERM. Perhaps you should call setgroups and setegid first and then the seteuid? Anyway, if you read later on again and again /etc/shadow then you will not be able to change to EUID/EGID less than root. Please fix the problem with order and document the limitations in the reference manual, that it will not be possible if someone uses system /etc/shadow. I just tried it, I didn't know that you will read this file more than once. Here comes the whole truss output. Best regards Charly P.S. versions SunOS mizar 5.9 Generic sun4u sparc SUNW,UltraSPARC-IIi-cEngine This is perl, v5.6.1 built for sun4-solaris This is Radiator 3.3 on mizar -- Karl Gaissmaier Computing Center,University of Ulm,Germany Email:[EMAIL PROTECTED] Network Administration Tel.: ++49 731 50-22499 and here comes now really the truss output :-) 1 mizar:...//# truss -f -p 19527 2 19527: poll(0xFFBFF828, 2, 1000) = 0 3 19527: time() = 1031141084 4 19527: time() = 1031141084 5 19527: poll(0xFFBFF828, 2, 1000) (sleeping...) 6 19527: poll(0xFFBFF828, 2, 1000) = 0 7 19527: time() = 1031141085 8 19527: time() = 1031141085 9 19527: poll(0xFFBFF828, 2, 1000) = 0 10 19527: time() = 1031141086 11 19527: time() = 1031141086 12 19527: poll(0xFFBFF828, 2, 1000) = 0 13 19527: time() = 1031141087 14 19527: time() = 1031141087 15 19527: poll(0xFFBFF828, 2, 1000) = 0 16 19527: time() = 1031141088 17 19527: time() = 1031141088 18 19527: poll(0xFFBFF828, 2, 1000) = 0 19 19527: time() = 1031141089 20 19527: time() = 1031141089 21 19527: poll(0xFFBFF828, 2, 1000) = 0 22 19527: time() = 1031141090 23 19527: time() = 1031141090 24 19527: poll(0xFFBFF828, 2, 1000) = 0 25 19527: time() = 1031141091 26 19527: time() = 1031141091 27 19527: Received signal #1, SIGHUP, in poll() [caught] 28 19527: poll(0xFFBFF828, 2, 1000) Err#91 ERESTART 29 19527: time() = 1031141092 30 19527: stat64("/radiator/log", 0x00109538) = 0 31 19527: open64("/radiator/log/radiatorlog", O_WRONLY|O_APPEND|O_CREAT, 0666) = 6 32 19527: llseek(6, 0, SEEK_END) = 38801 33 19527: fstat64(6, 0x00109658) = 0 34 19527: fcntl(6, F_SETFD, 0x00000001) = 0 35 19527: fstat64(6, 0xFFBFEF88) = 0 36 19527: fstat64(6, 0xFFBFEE30) = 0 37 19527: ioctl(6, TCGETA, 0xFFBFEF14) Err#25 ENOTTY 38 19527: write(6, " W e d S e p 4 1".., 62) = 62 39 19527: close(6) = 0 40 19527: setcontext(0xFFBFF510) 41 19527: time() = 1031141092 42 19527: time() = 1031141092 43 19527: time() = 1031141092 44 19527: open64("/radiator/etc/radiator-config", O_RDONLY) = 6 45 19527: fstat64(6, 0x00109658) = 0 46 19527: fcntl(6, F_SETFD, 0x00000001) = 0 47 19527: fstat64(6, 0xFFBFF738) = 0 48 19527: fstat64(6, 0xFFBFF5E0) = 0 49 19527: ioctl(6, TCGETA, 0xFFBFF6C4) Err#25 ENOTTY 50 19527: read(6, " B i n d A d d r e s s\t".., 8192) = 3851 51 19527: stat64("/etc/shadow", 0x00109538) = 0 52 19527: open64("/etc/shadow", O_RDONLY) = 7 53 19527: fstat64(7, 0x00109658) = 0 54 19527: fcntl(7, F_SETFD, 0x00000001) = 0 55 19527: fstat64(7, 0xFFBFF738) = 0 56 19527: fstat64(7, 0xFFBFF5E0) = 0 57 19527: ioctl(7, TCGETA, 0xFFBFF6C4) Err#25 ENOTTY 58 19527: read(7, " r o o t : x x x x x".., 8192) = 8192 ... 84 19527: read(7, 0x0078E80C, 8192) = 0 85 19527: llseek(7, 0, SEEK_CUR) = 199169 86 19527: close(7) = 0 87 19527: stat64("/etc/group", 0x00109538) = 0 88 19527: time() = 1031141092 89 19527: stat64("/radiator/log", 0x00109538) = 0 90 19527: open64("/radiator/log/radiatorlog", O_WRONLY|O_APPEND|O_CREAT, 0666) = 7 91 19527: llseek(7, 0, SEEK_END) = 38863 92 19527: fstat64(7, 0x00109658) = 0 93 19527: fcntl(7, F_SETFD, 0x00000001) = 0 94 19527: fstat64(7, 0xFFBFF678) = 0 95 19527: fstat64(7, 0xFFBFF520) = 0 96 19527: ioctl(7, TCGETA, 0xFFBFF604) Err#25 ENOTTY 97 19527: write(7, " W e d S e p 4 1".., 63) = 63 98 19527: close(7) = 0 99 19527: open64("/etc/group", O_RDONLY) = 7 100 19527: fstat64(7, 0x00109658) = 0 101 19527: fcntl(7, F_SETFD, 0x00000001) = 0 102 19527: fstat64(7, 0xFFBFF738) = 0 103 19527: fstat64(7, 0xFFBFF5E0) = 0 104 19527: ioctl(7, TCGETA, 0xFFBFF6C4) Err#25 ENOTTY 105 19527: read(7, " r o o t : : 0 : r o o t".., 8192) = 329 106 19527: read(7, 0x0078E80C, 8192) = 0 107 19527: llseek(7, 0, SEEK_CUR) = 329 108 19527: close(7) = 0 109 19527: stat64("/radiator/etc/test-users", 0x00109538) = 0 110 19527: time() = 1031141092 111 19527: stat64("/radiator/log", 0x00109538) = 0 112 19527: open64("/radiator/log/radiatorlog", O_WRONLY|O_APPEND|O_CREAT, 0666) = 7 113 19527: llseek(7, 0, SEEK_END) = 38926 114 19527: fstat64(7, 0x00109658) = 0 115 19527: fcntl(7, F_SETFD, 0x00000001) = 0 116 19527: fstat64(7, 0xFFBFF678) = 0 117 19527: fstat64(7, 0xFFBFF520) = 0 118 19527: ioctl(7, TCGETA, 0xFFBFF604) Err#25 ENOTTY 119 19527: write(7, " W e d S e p 4 1".., 77) = 77 120 19527: close(7) = 0 121 19527: open64("/radiator/etc/test-users", O_RDONLY) = 7 122 19527: fstat64(7, 0x00109658) = 0 123 19527: fcntl(7, F_SETFD, 0x00000001) = 0 124 19527: fstat64(7, 0xFFBFF738) = 0 125 19527: fstat64(7, 0xFFBFF5E0) = 0 126 19527: ioctl(7, TCGETA, 0xFFBFF6C4) Err#25 ENOTTY 127 19527: read(7, " d i a l i n\t P a s s w".., 8192) = 74 128 19527: read(7, 0x0078E80C, 8192) = 0 129 19527: read(7, 0x0078E80C, 8192) = 0 130 19527: llseek(7, 0, SEEK_CUR) = 74 131 19527: close(7) = 0 132 19527: door_info(4, 0xFFBFD640) = 0 133 19527: door_call(4, 0xFFBFD628) = 0 134 19527: stat64("/radiator/etc/freeway-users", 0x00109538) = 0 135 19527: time() = 1031141092 136 19527: stat64("/radiator/log", 0x00109538) = 0 137 19527: open64("/radiator/log/radiatorlog", O_WRONLY|O_APPEND|O_CREAT, 0666) = 7 138 19527: llseek(7, 0, SEEK_END) = 39003 139 19527: fstat64(7, 0x00109658) = 0 140 19527: fcntl(7, F_SETFD, 0x00000001) = 0 141 19527: fstat64(7, 0xFFBFF678) = 0 142 19527: fstat64(7, 0xFFBFF520) = 0 143 19527: ioctl(7, TCGETA, 0xFFBFF604) Err#25 ENOTTY 144 19527: write(7, " W e d S e p 4 1".., 80) = 80 145 19527: close(7) = 0 146 19527: open64("/radiator/etc/freeway-users", O_RDONLY) = 7 147 19527: fstat64(7, 0x00109658) = 0 148 19527: fcntl(7, F_SETFD, 0x00000001) = 0 149 19527: fstat64(7, 0xFFBFF738) = 0 150 19527: fstat64(7, 0xFFBFF5E0) = 0 151 19527: ioctl(7, TCGETA, 0xFFBFF6C4) Err#25 ENOTTY 152 19527: read(7, " # - - - - - - - - - - -".., 8192) = 3989 153 19527: read(7, 0x0078E80C, 8192) = 0 154 19527: read(7, 0x0078E80C, 8192) = 0 155 19527: llseek(7, 0, SEEK_CUR) = 3989 156 19527: close(7) = 0 157 19527: door_info(4, 0xFFBFD640) = 0 158 19527: door_call(4, 0xFFBFD628) = 0 159 19527: stat64("/radiator/etc/ulmathome-users", 0x00109538) = 0 160 19527: time() = 1031141092 161 19527: stat64("/radiator/log", 0x00109538) = 0 162 19527: open64("/radiator/log/radiatorlog", O_WRONLY|O_APPEND|O_CREAT, 0666) = 7 163 19527: llseek(7, 0, SEEK_END) = 39083 164 19527: fstat64(7, 0x00109658) = 0 165 19527: fcntl(7, F_SETFD, 0x00000001) = 0 166 19527: fstat64(7, 0xFFBFF678) = 0 167 19527: fstat64(7, 0xFFBFF520) = 0 168 19527: ioctl(7, TCGETA, 0xFFBFF604) Err#25 ENOTTY 169 19527: write(7, " W e d S e p 4 1".., 82) = 82 170 19527: close(7) = 0 171 19527: open64("/radiator/etc/ulmathome-users", O_RDONLY) = 7 172 19527: fstat64(7, 0x00109658) = 0 173 19527: fcntl(7, F_SETFD, 0x00000001) = 0 174 19527: fstat64(7, 0xFFBFF738) = 0 175 19527: fstat64(7, 0xFFBFF5E0) = 0 176 19527: ioctl(7, TCGETA, 0xFFBFF6C4) Err#25 ENOTTY 177 19527: read(7, " # - - - - - - - - - - -".., 8192) = 4913 178 19527: read(7, 0x0078E80C, 8192) = 0 179 19527: read(7, 0x0078E80C, 8192) = 0 180 19527: llseek(7, 0, SEEK_CUR) = 4913 181 19527: close(7) = 0 182 19527: stat64("/radiator/etc/wlan-users", 0x00109538) = 0 183 19527: time() = 1031141092 184 19527: stat64("/radiator/log", 0x00109538) = 0 185 19527: open64("/radiator/log/radiatorlog", O_WRONLY|O_APPEND|O_CREAT, 0666) = 7 186 19527: llseek(7, 0, SEEK_END) = 39165 187 19527: fstat64(7, 0x00109658) = 0 188 19527: fcntl(7, F_SETFD, 0x00000001) = 0 189 19527: fstat64(7, 0xFFBFF678) = 0 190 19527: fstat64(7, 0xFFBFF520) = 0 191 19527: ioctl(7, TCGETA, 0xFFBFF604) Err#25 ENOTTY 192 19527: write(7, " W e d S e p 4 1".., 77) = 77 193 19527: close(7) = 0 194 19527: open64("/radiator/etc/wlan-users", O_RDONLY) = 7 195 19527: fstat64(7, 0x00109658) = 0 196 19527: fcntl(7, F_SETFD, 0x00000001) = 0 197 19527: fstat64(7, 0xFFBFF738) = 0 198 19527: fstat64(7, 0xFFBFF5E0) = 0 199 19527: ioctl(7, TCGETA, 0xFFBFF6C4) Err#25 ENOTTY 200 19527: read(7, " # v i m : t a b s t".., 8192) = 8192 201 19527: read(7, " - 0 8 b 9 6 2\n 0 0 2 0".., 8192) = 7214 202 19527: read(7, 0x0078E80C, 8192) = 0 203 19527: read(7, 0x0078E80C, 8192) = 0 204 19527: llseek(7, 0, SEEK_CUR) = 15406 205 19527: close(7) = 0 206 19527: read(6, 0x0078A80C, 8192) = 0 207 19527: llseek(6, 0, SEEK_CUR) = 3851 208 19527: close(6) = 0 209 19527: stat64("/radiator/etc", 0x00109538) = 0 210 19527: open64("/radiator/etc/pidfile", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 6 211 19527: fstat64(6, 0x00109658) = 0 212 19527: fcntl(6, F_SETFD, 0x00000001) = 0 213 19527: fstat64(6, 0xFFBFF678) = 0 214 19527: fstat64(6, 0xFFBFF520) = 0 215 19527: ioctl(6, TCGETA, 0xFFBFF604) Err#25 ENOTTY 216 19527: write(6, " 1 9 5 2 7\n", 6) = 6 217 19527: close(6) = 0 218 19527: door_info(4, 0xFFBFF3E0) = 0 219 19527: door_call(4, 0xFFBFF3C8) = 0 220 19527: open("/usr/lib/nss_compat.so.1", O_RDONLY) = 6 221 19527: fstat(6, 0xFFBFF02C) = 0 222 19527: mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 6, 0) = 0xFF370000 223 19527: mmap(0x00000000, 90112, PROT_READ|PROT_EXEC, MAP_PRIVATE, 6, 0) = 0xFF030000 224 19527: mmap(0xFF044000, 1204, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 6, 16384) = 0xFF044000 225 19527: munmap(0xFF034000, 65536) = 0 226 19527: resolvepath("/usr/lib/nss_compat.so.1", "/usr/lib/nss_compat.so.1", 1023) = 24 227 19527: memcntl(0xFF030000, 3576, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 228 19527: close(6) = 0 229 19527: open("/usr/lib/libc.so.1", O_RDONLY) = 6 230 19527: fstat(6, 0xFFBFEF6C) = 0 231 19527: close(6) = 0 232 19527: open("/usr/lib/libnsl.so.1", O_RDONLY) = 6 233 19527: fstat(6, 0xFFBFEF6C) = 0 234 19527: close(6) = 0 235 19527: munmap(0xFF370000, 8192) = 0 236 19527: open("/etc/shadow", O_RDONLY) = 6 237 19527: fstat64(6, 0xFFBFF5D8) = 0 238 19527: fstat64(6, 0xFFBFF480) = 0 239 19527: ioctl(6, TCGETA, 0xFFBFF564) Err#25 ENOTTY 240 19527: read(6, " r o o t : x x x x x x ".., 8192) = 8192 241 19527: llseek(6, 0xFFFFFFFFFFFFE149, SEEK_CUR) = 329 242 19527: close(6) = 0 243 19527: seteuid(114) = 0 244 19527: getuid() = 0 [114] 245 19527: door_info(4, 0xFFBFF3E0) = 0 246 19527: door_call(4, 0xFFBFF3C8) = 0 247 19527: open("/etc/shadow", O_RDONLY) Err#13 EACCES 248 19527: setgroups(3, 0xFFBFF7B8) Err#1 EPERM 249 19527: setegid(114) Err#1 EPERM 250 19527: getgid() = 1 [1] 251 19527: getgroups(32, 0xFFBFF698) = 11 252 19527: time() = 1031141092 253 19527: stat64("/radiator/log", 0x00109538) = 0 254 19527: open64("/radiator/log/radiatorlog", O_WRONLY|O_APPEND|O_CREAT, 0666) = 6 255 19527: llseek(6, 0, SEEK_END) = 39242 256 19527: fstat64(6, 0x00109658) = 0 257 19527: fcntl(6, F_SETFD, 0x00000001) = 0 258 19527: fstat64(6, 0xFFBFF678) = 0 259 19527: fstat64(6, 0xFFBFF520) = 0 260 19527: ioctl(6, TCGETA, 0xFFBFF604) Err#25 ENOTTY 261 19527: write(6, " W e d S e p 4 1".., 73) = 73 262 19527: close(6) = 0 263 19527: open64("/radiator/etc/dictionary.my", O_RDONLY) = 6 264 19527: fstat64(6, 0x00109658) = 0 265 19527: fcntl(6, F_SETFD, 0x00000001) = 0 266 19527: fstat64(6, 0xFFBFF738) = 0 267 19527: fstat64(6, 0xFFBFF5E0) = 0 268 19527: ioctl(6, TCGETA, 0xFFBFF6C4) Err#25 ENOTTY 269 19527: read(6, " # d i c t i o n a r y".., 8192) = 8192 270 19527: read(6, " E\t\t S e r v i c e - T".., 8192) = 8192 271 19527: read(6, " T T R I B U T E\t A s c".., 8192) = 8192 272 19527: read(6, " H o s t A d m i n U n r".., 8192) = 8192 273 19527: read(6, " A d m i n .\n # N o t".., 8192) = 8192 274 19527: read(6, " s a g e\t 1 9 9\t i n t".., 8192) = 8192 275 19527: brk(0x00801800) = 0 276 19527: read(6, " n e x - S e c o n d a r".., 8192) = 8192 277 19527: read(6, " P P P".., 8192) = 8192 278 19527: read(6, " 1 6 6 S h".., 8192) = 8192 279 19527: read(6, " I n v a l i d - A t t".., 8192) = 8192 280 19527: read(6, " 2\n\n V A L U E ".., 8192) = 8192 281 19527: brk(0x00837000) = 0 282 19527: read(6, " 6 3 7 C V X - V P O P".., 8192) = 8192 283 19527: read(6, " - A s c e n d - P r i m".., 8192) = 8192 284 19527: read(6, " r\n V E N D O R A T T R".., 8192) = 6844 285 19527: read(6, 0x0078A80C, 8192) = 0 286 19527: llseek(6, 0, SEEK_CUR) = 113340 287 19527: close(6) = 0 288 19527: open("/etc/protocols", O_RDONLY) = 6 289 19527: fstat64(6, 0xFFBFF5D8) = 0 290 19527: fstat64(6, 0xFFBFF480) = 0 291 19527: ioctl(6, TCGETA, 0xFFBFF564) Err#25 ENOTTY 292 19527: read(6, " # i d e n t\t " @ ( # )".., 8192) = 1807 293 19527: llseek(6, 0xFFFFFFFFFFFFFB1E, SEEK_CUR) = 557 294 19527: close(6) = 0 295 19527: getsockname(0, 0x00688820, 0xFFBFF8FC, 1) Err#95 ENOTSOCK 296 19527: close(3) = 0 297 19527: llseek(3, 0, SEEK_CUR) Err#9 EBADF 298 19527: close(3) Err#9 EBADF 299 19527: so_socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP, "", 1) = 3 300 19527: fcntl(3, F_SETFD, 0x00000001) = 0 301 19527: door_info(4, 0xFFBFD640) = 0 302 19527: door_call(4, 0xFFBFD628) = 0 303 19527: bind(3, 0x00327158, 16, 3) = 0 304 19527: fcntl(3, F_GETFL, 0x00000000) = 2 305 19527: fstat64(3, 0xFFBFF790) = 0 306 19527: getsockopt(3, SOL_SOCKET, 0x2000, 0xFFBFF890, 0xFFBFF888, 1068496) = 0 307 19527: fstat64(3, 0xFFBFF790) = 0 308 19527: getsockopt(3, SOL_SOCKET, 0x2000, 0xFFBFF890, 0xFFBFF88C, 4) = 0 309 19527: setsockopt(3, SOL_SOCKET, 0x2000, 0xFFBFF890, 4, 4) = 0 310 19527: fcntl(3, F_SETFL, 0x00000082) = 0 311 19527: close(5) = 0 312 19527: llseek(5, 0, SEEK_CUR) Err#9 EBADF 313 19527: close(5) Err#9 EBADF 314 19527: so_socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP, "", 1) = 5 315 19527: fcntl(5, F_SETFD, 0x00000001) = 0 316 19527: door_info(4, 0xFFBFD640) = 0 317 19527: door_call(4, 0xFFBFD628) = 0 318 19527: bind(5, 0x00327158, 16, 3) = 0 319 19527: fcntl(3, F_GETFL, 0x00000000) = 130 320 19527: fstat64(3, 0xFFBFF790) = 0 321 19527: getsockopt(3, SOL_SOCKET, 0x2000, 0xFFBFF890, 0xFFBFF888, 1068496) = 0 322 19527: fstat64(5, 0xFFBFF790) = 0 323 19527: getsockopt(5, SOL_SOCKET, 0x2000, 0xFFBFF890, 0xFFBFF88C, 4) = 0 324 19527: setsockopt(5, SOL_SOCKET, 0x2000, 0xFFBFF890, 4, 4) = 0 325 19527: fcntl(5, F_SETFL, 0x00000082) = 0 326 19527: sigaction(SIGHUP, 0xFFBFF718, 0xFFBFF798) = 0 327 19527: sigaction(SIGTERM, 0xFFBFF718, 0xFFBFF798) = 0 328 19527: sigaction(SIGUSR1, 0xFFBFF718, 0xFFBFF798) = 0 329 19527: sigaction(SIGUSR2, 0xFFBFF718, 0xFFBFF798) = 0 330 19527: sigaction(SIGWINCH, 0xFFBFF718, 0xFFBFF798) = 0 331 19527: sigaction(SIGPIPE, 0xFFBFF718, 0xFFBFF798) = 0 332 19527: time() = 1031141093 333 19527: stat64("/radiator/log", 0x00109538) = 0 334 19527: open64("/radiator/log/radiatorlog", O_WRONLY|O_APPEND|O_CREAT, 0666) = 6 335 19527: llseek(6, 0, SEEK_END) = 39315 336 19527: fstat64(6, 0x00109658) = 0 337 19527: fcntl(6, F_SETFD, 0x00000001) = 0 338 19527: fstat64(6, 0xFFBFF678) = 0 339 19527: fstat64(6, 0xFFBFF520) = 0 340 19527: ioctl(6, TCGETA, 0xFFBFF604) Err#25 ENOTTY 341 19527: write(6, " W e d S e p 4 1".., 70) = 70 342 19527: close(6) = 0 343 19527: poll(0xFFBFF828, 2, 1000) (sleeping...) 344 19527: poll(0xFFBFF828, 2, 1000) = 0 345 19527: time() = 1031141094 346 19527: time() = 1031141094 === Archive at http://www.open.com.au/archives/radiator/ Announcements on [EMAIL PROTECTED] To unsubscribe, email '[EMAIL PROTECTED]' with 'unsubscribe radiator' in the body of the message.