| 1 | #include "auto_qmail.h" |
| 2 | #include "auto_split.h" |
| 3 | #include "auto_uids.h" |
| 4 | #include "fmt.h" |
| 5 | #include "fifo.h" |
| 6 | |
| 7 | char buf[100 + FMT_ULONG]; |
| 8 | |
| 9 | void dsplit(home,base,uid,mode) |
| 10 | char *home; |
| 11 | char *base; /* must be under 100 bytes */ |
| 12 | int uid; |
| 13 | int mode; |
| 14 | { |
| 15 | char *x; |
| 16 | unsigned long i; |
| 17 | |
| 18 | d(home,base,uid,auto_gidq,mode); |
| 19 | |
| 20 | for (i = 0;i < auto_split;++i) { |
| 21 | x = buf; |
| 22 | x += fmt_str(x,base); |
| 23 | x += fmt_str(x,"/"); |
| 24 | x += fmt_ulong(x,i); |
| 25 | *x = 0; |
| 26 | |
| 27 | d(home,buf,uid,auto_gidq,mode); |
| 28 | } |
| 29 | } |
| 30 | |
| 31 | void hier(home) |
| 32 | char *home; |
| 33 | { |
| 34 | if (!home) |
| 35 | home = auto_qmail; |
| 36 | |
| 37 | h(home,auto_uido,auto_gidq,0755); |
| 38 | |
| 39 | d(home,"control",auto_uido,auto_gidq,0755); |
| 40 | d(home,"users",auto_uido,auto_gidq,0755); |
| 41 | d(home,"bin",auto_uido,auto_gidq,0755); |
| 42 | d(home,"boot",auto_uido,auto_gidq,0755); |
| 43 | d(home,"doc",auto_uido,auto_gidq,0755); |
| 44 | d(home,"man",auto_uido,auto_gidq,0755); |
| 45 | d(home,"man/cat1",auto_uido,auto_gidq,0755); |
| 46 | d(home,"man/cat5",auto_uido,auto_gidq,0755); |
| 47 | d(home,"man/cat7",auto_uido,auto_gidq,0755); |
| 48 | d(home,"man/cat8",auto_uido,auto_gidq,0755); |
| 49 | d(home,"man/man1",auto_uido,auto_gidq,0755); |
| 50 | d(home,"man/man5",auto_uido,auto_gidq,0755); |
| 51 | d(home,"man/man7",auto_uido,auto_gidq,0755); |
| 52 | d(home,"man/man8",auto_uido,auto_gidq,0755); |
| 53 | |
| 54 | d(home,"alias",auto_uida,auto_gidq,02755); |
| 55 | |
| 56 | d(home,"queue",auto_uidq,auto_gidq,0750); |
| 57 | d(home,"queue/pid",auto_uidq,auto_gidq,0700); |
| 58 | d(home,"queue/intd",auto_uidq,auto_gidq,0700); |
| 59 | d(home,"queue/todo",auto_uidq,auto_gidq,0750); |
| 60 | d(home,"queue/bounce",auto_uids,auto_gidq,0700); |
| 61 | |
| 62 | dsplit(home,"queue/mess",auto_uidq,0750); |
| 63 | dsplit(home,"queue/info",auto_uids,0700); |
| 64 | dsplit(home,"queue/local",auto_uids,0700); |
| 65 | dsplit(home,"queue/remote",auto_uids,0700); |
| 66 | |
| 67 | d(home,"queue/lock",auto_uidq,auto_gidq,0750); |
| 68 | z(home,"queue/lock/tcpto",1024,auto_uidr,auto_gidq,0644); |
| 69 | z(home,"queue/lock/sendmutex",0,auto_uids,auto_gidq,0600); |
| 70 | p(home,"queue/lock/trigger",auto_uids,auto_gidq,0622); |
| 71 | |
| 72 | c(home,"boot","home",auto_uido,auto_gidq,0755); |
| 73 | c(home,"boot","home+df",auto_uido,auto_gidq,0755); |
| 74 | c(home,"boot","proc",auto_uido,auto_gidq,0755); |
| 75 | c(home,"boot","proc+df",auto_uido,auto_gidq,0755); |
| 76 | c(home,"boot","binm1",auto_uido,auto_gidq,0755); |
| 77 | c(home,"boot","binm1+df",auto_uido,auto_gidq,0755); |
| 78 | c(home,"boot","binm2",auto_uido,auto_gidq,0755); |
| 79 | c(home,"boot","binm2+df",auto_uido,auto_gidq,0755); |
| 80 | c(home,"boot","binm3",auto_uido,auto_gidq,0755); |
| 81 | c(home,"boot","binm3+df",auto_uido,auto_gidq,0755); |
| 82 | |
| 83 | c(home,"doc","FAQ",auto_uido,auto_gidq,0644); |
| 84 | c(home,"doc","UPGRADE",auto_uido,auto_gidq,0644); |
| 85 | c(home,"doc","SENDMAIL",auto_uido,auto_gidq,0644); |
| 86 | c(home,"doc","INSTALL",auto_uido,auto_gidq,0644); |
| 87 | c(home,"doc","INSTALL.alias",auto_uido,auto_gidq,0644); |
| 88 | c(home,"doc","INSTALL.ctl",auto_uido,auto_gidq,0644); |
| 89 | c(home,"doc","INSTALL.ids",auto_uido,auto_gidq,0644); |
| 90 | c(home,"doc","INSTALL.maildir",auto_uido,auto_gidq,0644); |
| 91 | c(home,"doc","INSTALL.mbox",auto_uido,auto_gidq,0644); |
| 92 | c(home,"doc","INSTALL.vsm",auto_uido,auto_gidq,0644); |
| 93 | c(home,"doc","TEST.deliver",auto_uido,auto_gidq,0644); |
| 94 | c(home,"doc","TEST.receive",auto_uido,auto_gidq,0644); |
| 95 | c(home,"doc","REMOVE.sendmail",auto_uido,auto_gidq,0644); |
| 96 | c(home,"doc","REMOVE.binmail",auto_uido,auto_gidq,0644); |
| 97 | c(home,"doc","PIC.local2alias",auto_uido,auto_gidq,0644); |
| 98 | c(home,"doc","PIC.local2ext",auto_uido,auto_gidq,0644); |
| 99 | c(home,"doc","PIC.local2local",auto_uido,auto_gidq,0644); |
| 100 | c(home,"doc","PIC.local2rem",auto_uido,auto_gidq,0644); |
| 101 | c(home,"doc","PIC.local2virt",auto_uido,auto_gidq,0644); |
| 102 | c(home,"doc","PIC.nullclient",auto_uido,auto_gidq,0644); |
| 103 | c(home,"doc","PIC.relaybad",auto_uido,auto_gidq,0644); |
| 104 | c(home,"doc","PIC.relaygood",auto_uido,auto_gidq,0644); |
| 105 | c(home,"doc","PIC.rem2local",auto_uido,auto_gidq,0644); |
| 106 | |
| 107 | c(home,"bin","qmail-queue",auto_uidq,auto_gidq,04711); |
| 108 | c(home,"bin","qmail-lspawn",auto_uido,auto_gidq,0700); |
| 109 | c(home,"bin","qmail-start",auto_uido,auto_gidq,0700); |
| 110 | c(home,"bin","qmail-getpw",auto_uido,auto_gidq,0711); |
| 111 | c(home,"bin","qmail-local",auto_uido,auto_gidq,0711); |
| 112 | c(home,"bin","qmail-remote",auto_uido,auto_gidq,0711); |
| 113 | c(home,"bin","qmail-rspawn",auto_uido,auto_gidq,0711); |
| 114 | c(home,"bin","qmail-clean",auto_uido,auto_gidq,0711); |
| 115 | c(home,"bin","qmail-send",auto_uido,auto_gidq,0711); |
| 116 | c(home,"bin","splogger",auto_uido,auto_gidq,0711); |
| 117 | c(home,"bin","qmail-newu",auto_uido,auto_gidq,0700); |
| 118 | c(home,"bin","qmail-newmrh",auto_uido,auto_gidq,0700); |
| 119 | c(home,"bin","qmail-pw2u",auto_uido,auto_gidq,0711); |
| 120 | c(home,"bin","qmail-inject",auto_uido,auto_gidq,0755); |
| 121 | c(home,"bin","predate",auto_uido,auto_gidq,0755); |
| 122 | c(home,"bin","datemail",auto_uido,auto_gidq,0755); |
| 123 | c(home,"bin","mailsubj",auto_uido,auto_gidq,0755); |
| 124 | c(home,"bin","qmail-showctl",auto_uido,auto_gidq,0755); |
| 125 | c(home,"bin","qmail-qread",auto_uido,auto_gidq,0755); |
| 126 | c(home,"bin","qmail-qstat",auto_uido,auto_gidq,0755); |
| 127 | c(home,"bin","qmail-tcpto",auto_uido,auto_gidq,0755); |
| 128 | c(home,"bin","qmail-tcpok",auto_uido,auto_gidq,0755); |
| 129 | c(home,"bin","qmail-pop3d",auto_uido,auto_gidq,0755); |
| 130 | c(home,"bin","qmail-popup",auto_uido,auto_gidq,0711); |
| 131 | c(home,"bin","qmail-qmqpc",auto_uido,auto_gidq,0755); |
| 132 | c(home,"bin","qmail-qmqpd",auto_uido,auto_gidq,0755); |
| 133 | c(home,"bin","qmail-qmtpd",auto_uido,auto_gidq,0755); |
| 134 | c(home,"bin","qmail-smtpd",auto_uido,auto_gidq,0755); |
| 135 | c(home,"bin","qmail-valid-addresses",auto_uido,auto_gidq,0755); |
| 136 | c(home,"bin","sendmail",auto_uido,auto_gidq,0755); |
| 137 | c(home,"bin","tcp-env",auto_uido,auto_gidq,0755); |
| 138 | c(home,"bin","qreceipt",auto_uido,auto_gidq,0755); |
| 139 | c(home,"bin","qsmhook",auto_uido,auto_gidq,0755); |
| 140 | c(home,"bin","qbiff",auto_uido,auto_gidq,0755); |
| 141 | c(home,"bin","forward",auto_uido,auto_gidq,0755); |
| 142 | c(home,"bin","preline",auto_uido,auto_gidq,0755); |
| 143 | c(home,"bin","condredirect",auto_uido,auto_gidq,0755); |
| 144 | c(home,"bin","bouncesaying",auto_uido,auto_gidq,0755); |
| 145 | c(home,"bin","except",auto_uido,auto_gidq,0755); |
| 146 | c(home,"bin","maildirmake",auto_uido,auto_gidq,0755); |
| 147 | c(home,"bin","maildir2mbox",auto_uido,auto_gidq,0755); |
| 148 | c(home,"bin","maildirwatch",auto_uido,auto_gidq,0755); |
| 149 | c(home,"bin","qail",auto_uido,auto_gidq,0755); |
| 150 | c(home,"bin","elq",auto_uido,auto_gidq,0755); |
| 151 | c(home,"bin","pinq",auto_uido,auto_gidq,0755); |
| 152 | |
| 153 | c(home,"man/man5","addresses.5",auto_uido,auto_gidq,0644); |
| 154 | c(home,"man/cat5","addresses.0",auto_uido,auto_gidq,0644); |
| 155 | c(home,"man/man5","envelopes.5",auto_uido,auto_gidq,0644); |
| 156 | c(home,"man/cat5","envelopes.0",auto_uido,auto_gidq,0644); |
| 157 | c(home,"man/man5","maildir.5",auto_uido,auto_gidq,0644); |
| 158 | c(home,"man/cat5","maildir.0",auto_uido,auto_gidq,0644); |
| 159 | c(home,"man/man5","mbox.5",auto_uido,auto_gidq,0644); |
| 160 | c(home,"man/cat5","mbox.0",auto_uido,auto_gidq,0644); |
| 161 | c(home,"man/man5","dot-qmail.5",auto_uido,auto_gidq,0644); |
| 162 | c(home,"man/cat5","dot-qmail.0",auto_uido,auto_gidq,0644); |
| 163 | c(home,"man/man5","qmail-control.5",auto_uido,auto_gidq,0644); |
| 164 | c(home,"man/cat5","qmail-control.0",auto_uido,auto_gidq,0644); |
| 165 | c(home,"man/man5","qmail-header.5",auto_uido,auto_gidq,0644); |
| 166 | c(home,"man/cat5","qmail-header.0",auto_uido,auto_gidq,0644); |
| 167 | c(home,"man/man5","qmail-log.5",auto_uido,auto_gidq,0644); |
| 168 | c(home,"man/cat5","qmail-log.0",auto_uido,auto_gidq,0644); |
| 169 | c(home,"man/man5","qmail-users.5",auto_uido,auto_gidq,0644); |
| 170 | c(home,"man/cat5","qmail-users.0",auto_uido,auto_gidq,0644); |
| 171 | c(home,"man/man5","tcp-environ.5",auto_uido,auto_gidq,0644); |
| 172 | c(home,"man/cat5","tcp-environ.0",auto_uido,auto_gidq,0644); |
| 173 | |
| 174 | c(home,"man/man7","forgeries.7",auto_uido,auto_gidq,0644); |
| 175 | c(home,"man/cat7","forgeries.0",auto_uido,auto_gidq,0644); |
| 176 | c(home,"man/man7","qmail-limits.7",auto_uido,auto_gidq,0644); |
| 177 | c(home,"man/cat7","qmail-limits.0",auto_uido,auto_gidq,0644); |
| 178 | c(home,"man/man7","qmail.7",auto_uido,auto_gidq,0644); |
| 179 | c(home,"man/cat7","qmail.0",auto_uido,auto_gidq,0644); |
| 180 | |
| 181 | c(home,"man/man1","forward.1",auto_uido,auto_gidq,0644); |
| 182 | c(home,"man/cat1","forward.0",auto_uido,auto_gidq,0644); |
| 183 | c(home,"man/man1","condredirect.1",auto_uido,auto_gidq,0644); |
| 184 | c(home,"man/cat1","condredirect.0",auto_uido,auto_gidq,0644); |
| 185 | c(home,"man/man1","bouncesaying.1",auto_uido,auto_gidq,0644); |
| 186 | c(home,"man/cat1","bouncesaying.0",auto_uido,auto_gidq,0644); |
| 187 | c(home,"man/man1","except.1",auto_uido,auto_gidq,0644); |
| 188 | c(home,"man/cat1","except.0",auto_uido,auto_gidq,0644); |
| 189 | c(home,"man/man1","maildirmake.1",auto_uido,auto_gidq,0644); |
| 190 | c(home,"man/cat1","maildirmake.0",auto_uido,auto_gidq,0644); |
| 191 | c(home,"man/man1","maildir2mbox.1",auto_uido,auto_gidq,0644); |
| 192 | c(home,"man/cat1","maildir2mbox.0",auto_uido,auto_gidq,0644); |
| 193 | c(home,"man/man1","maildirwatch.1",auto_uido,auto_gidq,0644); |
| 194 | c(home,"man/cat1","maildirwatch.0",auto_uido,auto_gidq,0644); |
| 195 | c(home,"man/man1","mailsubj.1",auto_uido,auto_gidq,0644); |
| 196 | c(home,"man/cat1","mailsubj.0",auto_uido,auto_gidq,0644); |
| 197 | c(home,"man/man1","qreceipt.1",auto_uido,auto_gidq,0644); |
| 198 | c(home,"man/cat1","qreceipt.0",auto_uido,auto_gidq,0644); |
| 199 | c(home,"man/man1","qbiff.1",auto_uido,auto_gidq,0644); |
| 200 | c(home,"man/cat1","qbiff.0",auto_uido,auto_gidq,0644); |
| 201 | c(home,"man/man1","preline.1",auto_uido,auto_gidq,0644); |
| 202 | c(home,"man/cat1","preline.0",auto_uido,auto_gidq,0644); |
| 203 | c(home,"man/man1","tcp-env.1",auto_uido,auto_gidq,0644); |
| 204 | c(home,"man/cat1","tcp-env.0",auto_uido,auto_gidq,0644); |
| 205 | |
| 206 | c(home,"man/man8","qmail-local.8",auto_uido,auto_gidq,0644); |
| 207 | c(home,"man/cat8","qmail-local.0",auto_uido,auto_gidq,0644); |
| 208 | c(home,"man/man8","qmail-lspawn.8",auto_uido,auto_gidq,0644); |
| 209 | c(home,"man/cat8","qmail-lspawn.0",auto_uido,auto_gidq,0644); |
| 210 | c(home,"man/man8","qmail-getpw.8",auto_uido,auto_gidq,0644); |
| 211 | c(home,"man/cat8","qmail-getpw.0",auto_uido,auto_gidq,0644); |
| 212 | c(home,"man/man8","qmail-remote.8",auto_uido,auto_gidq,0644); |
| 213 | c(home,"man/cat8","qmail-remote.0",auto_uido,auto_gidq,0644); |
| 214 | c(home,"man/man8","qmail-rspawn.8",auto_uido,auto_gidq,0644); |
| 215 | c(home,"man/cat8","qmail-rspawn.0",auto_uido,auto_gidq,0644); |
| 216 | c(home,"man/man8","qmail-clean.8",auto_uido,auto_gidq,0644); |
| 217 | c(home,"man/cat8","qmail-clean.0",auto_uido,auto_gidq,0644); |
| 218 | c(home,"man/man8","qmail-send.8",auto_uido,auto_gidq,0644); |
| 219 | c(home,"man/cat8","qmail-send.0",auto_uido,auto_gidq,0644); |
| 220 | c(home,"man/man8","qmail-start.8",auto_uido,auto_gidq,0644); |
| 221 | c(home,"man/cat8","qmail-start.0",auto_uido,auto_gidq,0644); |
| 222 | c(home,"man/man8","splogger.8",auto_uido,auto_gidq,0644); |
| 223 | c(home,"man/cat8","splogger.0",auto_uido,auto_gidq,0644); |
| 224 | c(home,"man/man8","qmail-queue.8",auto_uido,auto_gidq,0644); |
| 225 | c(home,"man/cat8","qmail-queue.0",auto_uido,auto_gidq,0644); |
| 226 | c(home,"man/man8","qmail-inject.8",auto_uido,auto_gidq,0644); |
| 227 | c(home,"man/cat8","qmail-inject.0",auto_uido,auto_gidq,0644); |
| 228 | c(home,"man/man8","qmail-showctl.8",auto_uido,auto_gidq,0644); |
| 229 | c(home,"man/cat8","qmail-showctl.0",auto_uido,auto_gidq,0644); |
| 230 | c(home,"man/man8","qmail-newmrh.8",auto_uido,auto_gidq,0644); |
| 231 | c(home,"man/cat8","qmail-newmrh.0",auto_uido,auto_gidq,0644); |
| 232 | c(home,"man/man8","qmail-newu.8",auto_uido,auto_gidq,0644); |
| 233 | c(home,"man/cat8","qmail-newu.0",auto_uido,auto_gidq,0644); |
| 234 | c(home,"man/man8","qmail-pw2u.8",auto_uido,auto_gidq,0644); |
| 235 | c(home,"man/cat8","qmail-pw2u.0",auto_uido,auto_gidq,0644); |
| 236 | c(home,"man/man8","qmail-qread.8",auto_uido,auto_gidq,0644); |
| 237 | c(home,"man/cat8","qmail-qread.0",auto_uido,auto_gidq,0644); |
| 238 | c(home,"man/man8","qmail-qstat.8",auto_uido,auto_gidq,0644); |
| 239 | c(home,"man/cat8","qmail-qstat.0",auto_uido,auto_gidq,0644); |
| 240 | c(home,"man/man8","qmail-tcpok.8",auto_uido,auto_gidq,0644); |
| 241 | c(home,"man/cat8","qmail-tcpok.0",auto_uido,auto_gidq,0644); |
| 242 | c(home,"man/man8","qmail-tcpto.8",auto_uido,auto_gidq,0644); |
| 243 | c(home,"man/cat8","qmail-tcpto.0",auto_uido,auto_gidq,0644); |
| 244 | c(home,"man/man8","qmail-pop3d.8",auto_uido,auto_gidq,0644); |
| 245 | c(home,"man/cat8","qmail-pop3d.0",auto_uido,auto_gidq,0644); |
| 246 | c(home,"man/man8","qmail-popup.8",auto_uido,auto_gidq,0644); |
| 247 | c(home,"man/cat8","qmail-popup.0",auto_uido,auto_gidq,0644); |
| 248 | c(home,"man/man8","qmail-qmqpc.8",auto_uido,auto_gidq,0644); |
| 249 | c(home,"man/cat8","qmail-qmqpc.0",auto_uido,auto_gidq,0644); |
| 250 | c(home,"man/man8","qmail-qmqpd.8",auto_uido,auto_gidq,0644); |
| 251 | c(home,"man/cat8","qmail-qmqpd.0",auto_uido,auto_gidq,0644); |
| 252 | c(home,"man/man8","qmail-qmtpd.8",auto_uido,auto_gidq,0644); |
| 253 | c(home,"man/cat8","qmail-qmtpd.0",auto_uido,auto_gidq,0644); |
| 254 | c(home,"man/man8","qmail-smtpd.8",auto_uido,auto_gidq,0644); |
| 255 | c(home,"man/cat8","qmail-smtpd.0",auto_uido,auto_gidq,0644); |
| 256 | c(home,"man/man8","qmail-command.8",auto_uido,auto_gidq,0644); |
| 257 | c(home,"man/cat8","qmail-command.0",auto_uido,auto_gidq,0644); |
| 258 | |
| 259 | c(home,"bin","dot-forward",auto_uido,auto_gidq,0755); |
| 260 | |
| 261 | c(home,"man/man1","dot-forward.1",auto_uido,auto_gidq,0644); |
| 262 | c(home,"man/cat1","dot-forward.0",auto_uido,auto_gidq,0644); |
| 263 | |
| 264 | d(home,"doc/fastforward",auto_uido,auto_gidq,0755); |
| 265 | |
| 266 | c(home,"bin","fastforward",auto_uido,auto_gidq,0755); |
| 267 | c(home,"bin","printforward",auto_uido,auto_gidq,0755); |
| 268 | c(home,"bin","setforward",auto_uido,auto_gidq,0755); |
| 269 | c(home,"bin","newaliases",auto_uido,auto_gidq,0755); |
| 270 | c(home,"bin","printmaillist",auto_uido,auto_gidq,0755); |
| 271 | c(home,"bin","setmaillist",auto_uido,auto_gidq,0755); |
| 272 | c(home,"bin","newinclude",auto_uido,auto_gidq,0755); |
| 273 | |
| 274 | c(home,"doc/fastforward","ALIASES",auto_uido,auto_gidq,0644); |
| 275 | |
| 276 | c(home,"man/man1","fastforward.1",auto_uido,auto_gidq,0644); |
| 277 | c(home,"man/man1","printforward.1",auto_uido,auto_gidq,0644); |
| 278 | c(home,"man/man1","setforward.1",auto_uido,auto_gidq,0644); |
| 279 | c(home,"man/man1","newaliases.1",auto_uido,auto_gidq,0644); |
| 280 | c(home,"man/man1","printmaillist.1",auto_uido,auto_gidq,0644); |
| 281 | c(home,"man/man1","setmaillist.1",auto_uido,auto_gidq,0644); |
| 282 | c(home,"man/man1","newinclude.1",auto_uido,auto_gidq,0644); |
| 283 | |
| 284 | c(home,"man/cat1","fastforward.0",auto_uido,auto_gidq,0644); |
| 285 | c(home,"man/cat1","printforward.0",auto_uido,auto_gidq,0644); |
| 286 | c(home,"man/cat1","setforward.0",auto_uido,auto_gidq,0644); |
| 287 | c(home,"man/cat1","newaliases.0",auto_uido,auto_gidq,0644); |
| 288 | c(home,"man/cat1","printmaillist.0",auto_uido,auto_gidq,0644); |
| 289 | c(home,"man/cat1","setmaillist.0",auto_uido,auto_gidq,0644); |
| 290 | c(home,"man/cat1","newinclude.0",auto_uido,auto_gidq,0644); |
| 291 | } |