22f06f841ac8f43345ff3efabcc40b1b850f9fae
[openafs-wiki.git] / AFSLore / UsageFAQ.mdwn
1 ## <a name="2  Using AFS"></a> 2 Using AFS
2
3 The Usage Section of the [[AFSFrequentlyAskedQuestions]].
4
5 - [[PreambleFAQ]]
6 - [[GeneralFAQ]]
7
8 <div>
9   <ul>
10     <li><a href="#2  Using AFS"> 2 Using AFS</a><ul>
11         <li><a href="#2.01  What are the differences b"> 2.01 What are the differences between AFS and a unix filesystem?</a></li>
12         <li><a href="#2.02  What is an AFS protection"> 2.02 What is an AFS protection group?</a></li>
13         <li><a href="#2.03  What are the AFS defined p"> 2.03 What are the AFS defined protection groups?</a></li>
14         <li><a href="#2.04  What is an AFS access cont"> 2.04 What is an AFS access control list (ACL)?</a></li>
15         <li><a href="#2.05  What are the AFS access ri"> 2.05 What are the AFS access rights?</a></li>
16         <li><a href="#2.06  What is pagsh?"> 2.06 What is pagsh?</a></li>
17         <li><a href="#2.07  Why use a PAG?"> 2.07 Why use a PAG?</a></li>
18         <li><a href="#2.08  How can I tell if I have a"> 2.08 How can I tell if I have a PAG?</a></li>
19         <li><a href="#2.09  Can I still run cron jobs"> 2.09 Can I still run cron jobs with AFS?</a></li>
20         <li><a href="#2.10  How much disk space does a"> 2.10 How much disk space does a 1 byte file occupy in AFS?</a></li>
21         <li><a href="#2.11  Is it possible to specify"> 2.11 Is it possible to specify a user who is external to the current AFS cell on an ACL?</a></li>
22         <li><a href="#2.12  Are there any problems pri"> 2.12 Are there any problems printing files in /afs?</a></li>
23         <li><a href="#2.13  Can I create a fifo (aka n"> 2.13 Can I create a fifo (aka named pipe) in /afs?</a></li>
24         <li><a href="#2.14  If an AFS server crashes,"> 2.14 If an AFS server crashes, do I have to reboot my AFS client?</a></li>
25         <li><a href="#2.15  Can I use AFS on my diskle"> 2.15 Can I use AFS on my diskless workstation?</a></li>
26         <li><a href="#2.16  Can I test for AFS tokens"> 2.16 Can I test for AFS tokens from within my program?</a></li>
27         <li><a href="#2.17  What's the difference betw"> 2.17 What's the difference between /afs/cellname and /afs/.cellname?</a></li>
28         <li><a href="#2.18  Can I klog as two users on"> 2.18 Can I klog as two users on a machine in the same cell?</a></li>
29         <li><a href="#2.19  What are the ~/._afsXXXX f"> 2.19 What are the ~/.__afsXXXX files?</a></li>
30         <li><a href="#2.20  How do you set up IP-based"> 2.20 How do you set up IP-based ACLs?</a></li>
31       </ul>
32     </li>
33   </ul>
34 </div>
35
36 - [[AdminFAQ]]
37 - [[ResourcesFAQ]]
38 - [[AboutTheFAQ]]
39 - [[FurtherReading]]
40
41 ### <a name="2.01  What are the differences b"></a> 2.01 What are the differences between AFS and a unix filesystem?
42
43 Essentially, from a user's point of view, there is little difference between AFS and local unix filestore. Nearly all the commands normally used to access local files can be used to access files in /afs.
44
45 In the following set of sections, I have attempted to "target" each section to an appropriate type of user by including to the right of each section heading one of: User, Programmer, [[SysAdmin]].
46
47 Here is a summary of the differences:
48
49 **Authentication:** [ User ]
50
51 Before a user can access protected AFS files (s)he needs to become authenticated to AFS using the klog command (Kerberos login) to get a Kerberos "ticket granting ticket" (called a token from here on).
52
53 Without a token, an unauthenticated user is given the AFS identity "system:anyuser" and as such is only able to access files in directories that have ACLs granting system:anyuser access.
54
55 Many systems have the klog function built into the system login program. So a user would not even have to know they gain a token on logging in. If you use a system where you have to issue the klog command after login then you should run the pagsh command first (see below).
56
57 AFS provides access control lists to give more precise control to users wishing to protect their files (see AFS ACL below).
58
59 **File permissions:** [ User ]
60
61 Unix mode bits for group and other are ignored. The mode bits for the file owner don't work the way they used to.
62
63 Users should protect their AFS files with (directory) ACLs only. Just use mode bits to make a file executable.
64
65 **Data protection with AFS ACLs:** [ User ]
66
67 Some versions of unix (eg IBM's AIX version 3) allow ACLs on local files. In AFS, ACLs protect directories and used with AFS protection groups (see below) provide a finer granularity of protection than can be achieved with basic unix file permissions. (AFS ACLs are described in more detail below.)
68
69 **Protection groups:** [ User ]
70
71 Users can create and maintain their own protection groups in AFS - as opposed to unix where only sys admins can manage protection groups.
72
73 **Hard links:** [ User ]
74
75 In AFS, hard links (eg: ln old new) are only valid within a directory. This is because AFS ACLs protect directories (not individual files) and allowing hard links that span directories would subvert ACL protection.
76
77 Symbolic links work in AFS because they reference a pathname and not an i-node directly. (Hard links reference an i-node directly.)
78
79 **Changing file protection by moving a file:** [ User ]
80
81 Moving a file to a different directory will change the protection of a file if the ACL on the new directory if different to the ACL on the original directory.
82
83 **chown and chgrp:** [ User ]
84
85 Only members of the AFS group "system:administrators" can use these commands on files in /afs.
86
87 **Save on close:** [ Programmer ]
88
89 AFS Cache Manager does not send file modifications to a file server until the close() or fsync() system call.
90
91 write() system calls only update the local cache copy on the client.
92
93 Note the difference in semantic of writing a file:
94
95 <table border="1" cellpadding="0" cellspacing="0">
96   <tr>
97     <th bgcolor="#99CCCC"><strong> local unix file: </strong></th>
98     <td> writes update the file "immediately" </td>
99   </tr>
100   <tr>
101     <th align="center" bgcolor="#99CCCC"><strong> AFS file: </strong></th>
102     <td> local cached copy updated "immediately" but the server copy is only updated when the file is closed or fsync'ed. </td>
103   </tr>
104 </table>
105
106 It is important to understand that most applications (eg: vi, emacs, frame, interleaf, wingz, dogz, etc) issue the close() system call when the user chooses/issues the "save" command in the application.
107
108 Users are not required to exit the application to "save" their changes back to the server.
109
110 **byte-range file locking:** [ Programmer ]
111
112 AFS does not support byte-range locking within a file, although lockf() and fcntl() calls will return 0 (success). The first time a byte-range lock is attempted, AFS will display:
113
114 "afs: byte-range lock/unlock ignored; make sure no one else else is running this program."
115
116 **whole file locking:** [ Programmer ]
117
118 AFS does support advisory locking an entire file with flock(). Processes on the same client workstation that attempt to lock a file obey the proper locking semantics.
119
120 Processes on different AFS clients requesting a lock on the same file would get EWOULDBLOCK returned.
121
122 **character and block special files:** [ [[SysAdmin]] ]
123
124 AFS does not support character and block special files. The mknod command does not create either character or block special files in /afs.
125
126 **AFS version of fsck:** [ [[SysAdmin]] ]
127
128 On an AFS server, the partitions containing served files are NOT unix filesystems and standard fsck **must** not be used - use the AFS version instead.
129
130 ### <a name="2.02  What is an AFS protection"></a><a name="2.02  What is an AFS protection "></a> 2.02 What is an AFS protection group?
131
132 A named list of users.
133
134 Group names are used in AFS ACLs to identify lists of users with particular access permissions.
135
136 In AFS, users can create and maintain their own protection groups. This is different to unix where only the system administrator can manage /etc/group.
137
138 AFS groups are stored in the protection database on fileserver(s) and managed by using the "pts" command.
139
140 An AFS group typically has the format:
141
142 - owner-id:group-name
143
144 By default, only the owner of a group can change its members.
145
146 It is possible to have both users and IP addresses as members of an AFS group. By using an IP address like this you can specify all the users from the host with that IP address.
147
148 ### <a name="2.03  What are the AFS defined p"></a> 2.03 What are the AFS defined protection groups?
149
150 - system:anyuser
151   - Everyone who has access to an AFS client in any cell that is on the same network as your cell.
152
153 - system:authuser
154   - Everyone who has access to an AFS client in any cell that is on the same network as your cell **and** has valid tokens for your cell (ie has been authenticated in your cell).
155
156 - system:administrators
157   - Users who have privileges to execute some but not all system administrator commands.
158
159 ### <a name="2.04  What is an AFS access cont"></a> 2.04 What is an AFS access control list (ACL)?
160
161 There is an ACL for every directory in AFS. The ACL specifies protection at the directory level (not file level) by listing permissions of users and/or groups to a directory. There is a maximum of 20 entries on an ACL.
162
163 For example:
164
165 An AFS ACL is displayed by using the "fs" command as shown below:
166
167        tweety@toontown $ fs listacl .
168        Access list for . is
169        Normal rights:
170          fac:coords rlidwka
171          system:anyuser rl
172
173 This ACL shows that members of the AFS protection group "fac:coords" have full access rights to the current directory and "system:anyuser" has only read and lookup rights.
174
175 The members of "fac:coords" can be determined by accessing the protection group database using the "pts" command as shown below:
176
177        tweety@toontown $ pts membership fac:coords
178        Members of fac:coords (id: -1577) are:
179          sylvester
180          roadrunner
181          yosemite.sam
182
183 ### <a name="2.05  What are the AFS access ri"></a> 2.05 What are the AFS access rights?
184
185 In AFS, there are seven access rights that may be set or not set:
186
187 <table border="1" cellpadding="0" cellspacing="0">
188   <tr>
189     <th bgcolor="#99CCCC"><strong> lookup </strong></th>
190     <td><code>l</code></td>
191     <td> Permission to examine the ACL and traverse the directory (needed with most other access rights). Permission to look up filenames in a directory. </td>
192   </tr>
193   <tr>
194     <th bgcolor="#99CCCC"><strong> read </strong></th>
195     <td><code>r</code></td>
196     <td> View the contents of files in the directory </td>
197   </tr>
198   <tr>
199     <th bgcolor="#99CCCC"><strong> insert </strong></th>
200     <td><code>i</code></td>
201     <td> Add new files or sub-directories </td>
202   </tr>
203   <tr>
204     <th bgcolor="#99CCCC"><strong> write </strong></th>
205     <td><code>w</code></td>
206     <td> Modify file contents, use "chmod" </td>
207   </tr>
208   <tr>
209     <th bgcolor="#99CCCC"><strong> delete </strong></th>
210     <td><code>d</code></td>
211     <td> Remove file(s) in directory </td>
212   </tr>
213   <tr>
214     <th bgcolor="#99CCCC"><strong> lock </strong></th>
215     <td><code>k</code></td>
216     <td> Permission for programs to "flock" files in the directory </td>
217   </tr>
218   <tr>
219     <th bgcolor="#99CCCC"><strong> administer </strong></th>
220     <td><code>a</code></td>
221     <td> Ability to change the ACL </td>
222   </tr>
223 </table>
224
225 There are short-hand forms:
226
227 <table border="1" cellpadding="0" cellspacing="0">
228   <tr>
229     <th bgcolor="#99CCCC"><strong> read </strong></th>
230     <td><code>rl</code></td>
231     <td> read and lookup </td>
232   </tr>
233   <tr>
234     <th bgcolor="#99CCCC"><strong> write </strong></th>
235     <td><code>rlidwk</code></td>
236     <td> all rights except administer </td>
237   </tr>
238   <tr>
239     <th bgcolor="#99CCCC"><strong> all </strong></th>
240     <td><code>rlidwka</code></td>
241     <td> all rights </td>
242   </tr>
243   <tr>
244     <th bgcolor="#99CCCC"><strong> none </strong></th>
245     <td>   </td>
246     <td> removes all rights </td>
247   </tr>
248 </table>
249
250 ### <a name="2.06  What is pagsh?"></a> 2.06 What is pagsh?
251
252 A command to get a new shell with a process authentication group (PAG).
253
254 This is normally used if your system does not use the AFS version of login. It is used to get a PAG prior to running klog.
255
256 The PAG uniquely identifies the user to the Cache Manager. Without a PAG the Cache Manager uses the unix UID to identify a user.
257
258 ### <a name="2.07  Why use a PAG?"></a> 2.07 Why use a PAG?
259
260 There are two reasons:
261
262 1. Child processes inherit the PAG and the Kerberos token so they are AFS authenticated.
263
264 1. For security: if you don't have a PAG then the Cache Manager identifies you by unix UID. Another user with root access to the client could su to you and therefore use your token.
265
266 ### <a name="2.08  How can I tell if I have a"></a> 2.08 How can I tell if I have a PAG?
267
268 You can tell if you have a PAG by typing "groups". A PAG is indicated by the appearance of two integers in the list of groups.
269
270 For example:
271
272        sylvester@toontown $ groups
273        33536 32533 staff catz
274
275 ### <a name="2.09  Can I still run cron jobs"></a><a name="2.09  Can I still run cron jobs "></a> 2.09 Can I still run cron jobs with AFS?
276
277 Yes, but remember that in order to fully access files in AFS you have to be AFS authenticated. If your cron job doesn't klog then it only gets system:anyuser access.
278
279 The klog command has a "-pipe" option which will read a password from stdin. IF (yes, that's a big if :-) you are prepared to store your password in a local (non-AFS) file then you might use the following:
280
281 (a) create a "wrapper" script to get a PAG, get your AFS token and execute a command:
282
283     #!/usr/afsws/bin/pagsh
284     #
285     # NAME          afs_wrap_cron
286     # AUTHOR        Paul Blackburn <mpb@acm.org>
287     # PURPOSE       Run an AFS authenticated cron job.
288     #               Get a PAG, get the user's token,
289     #               then exec user's command
290
291     CMD=`basename ${0}`
292
293     usage() {
294        echo "Usage: ${CMD} [ -principal AFSID ] passwordfile command" >&2
295     }
296
297     if [ ${1} = "-principal" ]; then
298             PRINCIPAL="${1} ${2}"
299             shift 2
300     fi
301
302     if [ -z "${1}" ]; then
303             echo "${CMD} error: need name of password file" >&2
304             usage
305             exit 1
306     else
307             passwordfile=${1}
308             shift
309     fi
310
311     /usr/afsws/bin/klog ${PRINCIPAL} -pipe < ${passwordfile}
312
313     if [ -z "${1}" ]; then
314             echo "${CMD} error: need name of command to run" >&2
315             usage
316             exit 1
317     else
318             command_line="$*"
319             command=`echo ${command_line} | awk '{print $1}'`
320
321     # Check if we can run the command.
322     # If we got this far, it is likely that the command name is correct
323     # but there may be a problem in accessing the command file.
324     # If there is an error, log it via syslog (logger) rather than ">&2"
325
326             if [ ! -x "${command}" ]; then
327                     M="error: unable to execute command ${command}"
328                     logger -i -t "${CMD}" "${M}"
329                     exit 1
330             fi
331     fi
332     exec ${command_line}
333
334 (b) Store your password in a local (non-AFS) file that only you have access to (perhaps: /home/$USER/.p).
335
336 Make sure that this file is mode 600 and also be sure that you trust whoever has root access on this system and whoever has access to backup tapes! Also, don't forget to change this file if you change your AFS password.
337
338 (c) In your crontab file, run afs\_wrap\_cron followed by unlog:
339
340           0 6 * * * /usr/local/bin/afs_wrap_cron /home/$USER/.p \
341                        $HOME/bin/6AMdaily; /usr/afsws/bin/unlog
342
343 Note that you can still run a cron job without getting a token if the task does not need to be AFS authenticated. In this case, you may get stderr from the cron job if your .profile is not accessible because of the ACL protecting your $HOME. Simply redirect to /dev/null:
344
345           0 7 * * * $sys_anyuser_readable_dir/7AMdaily 2>/dev/null
346
347 ### <a name="2.10  How much disk space does a"></a> 2.10 How much disk space does a 1 byte file occupy in AFS?
348
349 One kilobyte.
350
351 Other filesystems allocate different file block sizes. For example, IBM's AIX version 3 journaled file system (JFS) uses 4K blocks (exception: 2K for the 160MB disk drive).
352
353 Such blocksize differences lead to variations on the amount of disk space required to store files. Copying a directory from AFS to AIX JFS would require more space in JFS because of the block fragmentation.
354
355 Example:
356
357 (a) Create a one byte file in AFS and use "ls -s" to show how many kilobytes it occupies:
358
359           ariel@atlantica $ echo z >/afs/dsea/tmp/one_byte_file
360           ariel@atlantica $ ls -s /afs/dsea/tmp/one_byte_file
361              1 /afs/dsea/tmp/one_byte_file
362
363 (b) Create same file in local filesystem (AIX JFS):
364
365           ariel@atlantica $ echo z >/tmp/one_byte_file
366           ariel@atlantica $ ls -s /tmp/one_byte_file
367              4 /tmp/one_byte_file
368
369 ### <a name="2.11  Is it possible to specify"></a><a name="2.11  Is it possible to specify "></a> 2.11 Is it possible to specify a user who is external to the current AFS cell on an ACL?
370
371 No. You cannot reference a particular user from another AFS cell.
372
373 You can specify an IP address on the ACL; this means any and all users from the host with that IP address.
374
375 Another solution to this problem is to give the external user an "authentication-only" account in your AFS cell. This means that (s)he can klog (but has no home directory) in your cell.
376
377     # Example: AFS administrator creates an authentication-only user
378     $ uss add daffy "Daffy Duck" -t /dev/null
379     $ kas setpassword daffy -admin admin
380
381 Cross-realm authentication (where co-operating cells are able to specify remore users as "user@remote.cell" on an ACL) is an **unsupported** feature of AFS 3.3a. That means that Transarc doesn't promise to make it work for you, nor keep it running in future releases.
382
383 ### <a name="2.12  Are there any problems pri"></a> 2.12 Are there any problems printing files in /afs?
384
385 The issue of printing in AFS is almost always the same: what do you send to the printing daemon? Do you send it the bytes you want to print or do you just send the file name containing those bytes? If you send it a file name, you have to be sure that the printing daemon can read it. Most daemons run with no AFS tokens, so can't access directories unless they are open for system:anyuser read access. Often, printing commands (lpr, lp, enq) have an option that allows for both modes of operation, though the default behavior varies from system to system. If you're interested in making your daemons authenticate to AFS, check out the example scripts in AFS-Contrib:
386
387 - <file:///afs/transarc.com/public/afs-contrib/tools/reauth-example>
388 - <ftp://ftp.transarc.com/pub/afs-contrib/tools/reauth-example/MANIFEST>
389
390 Another common problem is setuid printing commands. For instance, the "enq" command runs as root, daemon, or some such user. If you aren't using the AFS login and simply issue "klog" to get tokens, those tokens are associated with your uid. When setuid programs run, they lose access to your token and often can't read the file name given as an argument. The solution in this case is to use "pagsh" before "klog" so that your tokens are transferred to subprocesses automatically by group membership. This works even if the uid changes, as for setuid programs.
391
392 ### <a name="2.13  Can I create a fifo (aka n"></a> 2.13 Can I create a fifo (aka named pipe) in /afs?
393
394 No. AFS does not support "mknod fifofile p".
395
396 ### <a name="2.14  If an AFS server crashes,"></a><a name="2.14  If an AFS server crashes, "></a> 2.14 If an AFS server crashes, do I have to reboot my AFS client?
397
398 No.
399
400 Typically, if an AFS server becomes unavailable, the AFS Cache Manager on your AFS client will see you through the outage until the server returns. This robustness is dependent on the way your AFS cell has been configured including the following factors:
401
402 - On the client side:
403   - How big is the cache?
404   - Are the files you need already in the cache?
405
406 - On the server side:
407   - How many servers? It's best to have a minimum of three.
408   - Is the data you are accessing replicated? In AFS, replicas are [[ReadOnly]] copies.
409
410 With replicated volumes, the AFS Cache Manager knows about all of the servers on which the replicas are located. Therefore, when the Cache Manager accesses a replicated volume, if the RPC times out, the Cache Manager automatically retrys the RPC, using a different file server.
411
412 If necessary, the Cache Manager will attempt to contact all file servers on which a replica of the volume resides.
413
414 If you are accessing [[ReadWrite]] volumes on a crashed server then you will not be able to save changes back to the server until it returns.
415
416 You don't need to reboot, and the Cache Manager activity is "invisible" to the user.
417
418 ### <a name="2.15  Can I use AFS on my diskle"></a> 2.15 Can I use AFS on my diskless workstation?
419
420 Yes. The AFS Cache Manager can be configured to work with either a disk based cache or a memory (RAM) based cache. With the latter, you can expect file access from the cache with a whizz!
421
422 <http://www.uni-hohenheim.de/~schaefer/afs/info-afs/1306.html>
423
424 ### <a name="2.16  Can I test for AFS tokens"></a><a name="2.16  Can I test for AFS tokens "></a> 2.16 Can I test for AFS tokens from within my program?
425
426 Yes. Some sample code showing how to do this can be found in:
427
428 <file:///afs/transarc.com/public/afs-contrib/tools/auth-samples/listtokens.c> <ftp://ftp.transarc.com/pub/afs-contrib/tools/auth-samples/listtokens.c>
429
430 ### <a name="2.17  What&#39;s the difference betw"></a> 2.17 What's the difference between /afs/cellname and /afs/.cellname?
431
432 AFS has [[ReadOnly]] (RO) and [[ReadWrite]] (RW) volumes.
433
434 The convention in AFS is to mount the RW volume "root.cell" as /afs/.cellname and the RO volume "root.cell.readonly" as /afs/cellname.
435
436 This is so that when you travel down the /afs/.cellname link, AFS will always use the RW site of any volumes that have RO clones.
437
438 This allows your administrator to update the RW copy of a volume and "vos release $volname" so that it will appear in /afs/cellname.
439
440 ### <a name="2.18  Can I klog as two users on"></a> 2.18 Can I klog as two users on a machine in the same cell?
441
442 Yes, if you use two different PAGs.
443
444 It's: "One token per PAG per client system."
445
446 From one shell you can only authenticate as a single user of a cell. If you open another shell (with another PAG) you can klog as a different user of the same cell from the same client.
447
448 You can authenticate into many cells from one client shell.
449
450 ### <a name="2.19  What are the ~/._afsXXXX f"></a> 2.19 What are the ~/.\_\_afsXXXX files?
451
452 They are temporary reference files used by the AFS Cache Manager.
453
454 In UNIX filesystems, when you a remove a file that is kept open by a process, the file stays around physically while it is no longer referenced in any directory (which you will see as a mismatch between disk space usage according to df and du).
455
456 Some applications rely on that feature, e.g. they create a temporary file and remove it immediatley while keeping the file descriptor open. The file then disappears from the filesystem automagically when the process terminates or the file descriptor gets closed otherwise. Such applications could get into trouble with older versions of AFS, where the file could really disappear while it was held open.
457
458 Newer versions of AFS rename such files to .\_\_afsXXXX, thus making sure that the data stays around as expected by the application. As soon as the file gets closed, the associated .\_\_afsXXXX should disappear.
459
460 ### <a name="2.20  How do you set up IP-based"></a> 2.20 How do you set up IP-based ACLs?
461
462 See <http://www.duke.edu/~jhv/answers/afs-ip-acls.html> and [[IPAccessControl]]. [http://www.etoo.cn/zhaigao 窄告] [[DraGona]] [[DraGonb]] [[DraGonc]] [[DraGond]] [[DraGone]] [[DraGonf]] [[DraGong]] [[DraGonh]] [[DraGoni]] [[DraGonj]] [[DraGonk]] [[DraGonl]] [[DraGonm]] [[DraGonn]] [[DraGono]] [[DraGonp]] [[DraGonq]] [[DraGonr]] [[DraGons]] [[DraGont]] [[DraGonu]] [[DraGonv]] [[DraGonw]] [[DraGonx]] [[DraGony]] [[DraGonz]] [[DraGonaa]]
463
464 [网站推广](http://www.51dragon.com) [arm](http://1.51dragon.com) [光端机](http://guangduanji.51dragon.com) [数字光端机](http://guangduanji.51dragon.com/shuzi.htm) [视频光端机](http://guangduanji.51dragon.com/shipin.htm) [数字视频光端机](http://guangduanji.51dragon.com/szsp.htm) [监控视频光端机](http://guangduanji.51dragon.com/jiankong.htm) [广播级数字视频光端机](http://guangduanji.51dragon.com/guangbo.htm) [网络视频全套解决方案](http://guangduanji.51dragon.com/wangluo.htm) [arm](http://1.51dragon.com) [arm培训](http://2.51dragon.com) [安防](http://3.51dragon.com) [安防器材](http://3.51dragon.com/a.htm) [笔记本](http://4.51dragon.com) [笔记本电脑](http://5.51dragon.com) [变速机](http://6.51dragon.com) [标签](http://7.51dragon.com) [标签打印机](http://8.51dragon.com) [不孕不育](http://9.51dragon.com) [不孕不育治疗](http://9.51dragon.com/a.htm) [餐饮](http://10.51dragon.com) [餐饮管理](http://10.51dragon.com/a.htm) [叉车](http://11.51dragon.com) [磁性材料](http://12.51dragon.com) [刺绣](http://13.51dragon.com) [仓储](http://14.51dragon.com) [仓储设备](http://15.51dragon.com) [充电器](http://16.51dragon.com) [手机充电器](http://16.51dragon.com) [出国](http://17.51dragon.com) [除湿机](http://18.51dragon.com) [工业除湿机](http://18.51dragon.com/a.htm) [创业](http://19.51dragon.com) [创业项目](http://19.51dragon.com/a.htm) [床上用品](http://20.51dragon.com) [家居用品](http://20.51dragon.com/e.htm) [婴儿用品](http://20.51dragon.com/a.htm) [情趣用品](http://20.51dragon.com/b.htm) [宠物用品](http://20.51dragon.com/c.htm) [儿童用品](http://20.51dragon.com/d.htm) [单片机](http://21.51dragon.com) [打印机](http://22.51dragon.com) [灯具](http://23.51dragon.com) [电源](http://24.51dragon.com) [开关电源](http://25.51dragon.com) [ups电源](http://26.51dragon.com) [变频电源](http://27.51dragon.com) [稳压电源](http://28.51dragon.com) [电机](http://29.51dragon.com) [步进电机](http://30.51dragon.com) [微型电机](http://31.51dragon.com) [电梯](http://32.51dragon.com) [电子政务](http://33.51dragon.com) [雕塑](http://34.51dragon.com) [雕刻机](http://35.51dragon.com) [激光雕刻机](http://36.51dragon.com) [电脑雕刻机](http://36.51dragon.com/a.htm) [数控雕刻机](http://36.51dragon.com/b.htm) [橡胶版雕刻机](http://36.51dragon.com/c.htm) [木工雕刻机](http://36.51dragon.com/d.htm) [短信群发](http://37.51dragon.com) [对讲机](http://38.51dragon.com) [无线对讲机](http://38.51dragon.com/a.htm) [erp](http://39.51dragon.com) [erp软件](http://40.51dragon.com) [耳机](http://41.51dragon.com) [无线耳机](http://41.51dragon.com/a.htm) [耳聋](http://42.51dragon.com) [阀](http://43.51dragon.com) [阀门](http://44.51dragon.com) [球阀](http://44.51dragon.com/a.htm) [法律咨询](http://45.51dragon.com) [翻译](http://46.51dragon.com) [翻译公司 ](http://47.51dragon.com) [北京翻译](http://48.51dragon.com) [纺织机械](http://49.51dragon.com) [服装](http://50.51dragon.com) [服务器](http://51.51dragon.com) [gprs](http://52.51dragon.com) [gps](http://53.51dragon.com) [车载gps](http://54.51dragon.com) [防盗GPS](http://55.51dragon.com) [干燥](http://56.51dragon.com) [干燥机](http://57.51dragon.com) [干燥设备](http://58.51dragon.com) [干洗](http://59.51dragon.com) [干洗设备](http://60.51dragon.com) [钢结构](http://61.51dragon.com) [钢铁](http://62.51dragon.com) [钢材](http://63.51dragon.com) [工控](http://64.51dragon.com) [工控机](http://65.51dragon.com) [公寓](http://66.51dragon.com) [管理咨询](http://67.51dragon.com) [管理培训](http://68.51dragon.com) [项目管理](http://69.51dragon.com) [管理顾问](http://70.51dragon.com) [光触媒](http://71.51dragon.com) [尖锐湿疣](http://72.51dragon.com) [广告](http://73.51dragon.com) [广告策划](http://74.51dragon.com) [广告设计](http://75.51dragon.com) [耗材](http://76.51dragon.com) [办公耗材](http://77.51dragon.com) [化工原料](http://78.51dragon.com) [化工设备](http://79.51dragon.com) [滑雪](http://80.51dragon.com) [滑雪场](http://81.51dragon.com) [化妆品](http://82.51dragon.com) [换热器](http://83.51dragon.com) [板式换热器](http://83.51dragon.com/a.htm) [波纹管换热器](http://83.51dragon.com/b.htm) [螺旋板换热器](http://83.51dragon.com/c.htm) [列管换热器](http://83.51dragon.com/d.htm) [热管换热器](http://83.51dragon.com/e.htm) [舒瑞普板式换热器](http://83.51dragon.com/f.htm) [石墨换热器](http://83.51dragon.com/g.htm) [盘管换热器](http://83.51dragon.com/h.htm) [半导体换热器](http://83.51dragon.com/i.htm) [婚庆](http://84.51dragon.com) [婚庆公司](http://85.51dragon.com) [货运](http://86.51dragon.com) [货运公司](http://87.51dragon.com) [货架](http://88.51dragon.com) [仓储货架](http://89.51dragon.com) [物流仓储货架](http://89.51dragon.com/a.htm) [立体仓储](http://89.51dragon.com/b.htm) [移动货架](http://89.51dragon.com/c.htm) [角钢货架](http://89.51dragon.com/d.htm) [集团电话](http://90.51dragon.com) [集团电话交换机](http://90.51dragon.com/a.htm) [机柜](http://91.51dragon.com) [机床](http://92.51dragon.com) [机箱](http://93.51dragon.com) [机票](http://94.51dragon.com) [打折机票](http://95.51dragon.com) [特价机票](http://96.51dragon.com) [国际机票](http://97.51dragon.com) [订机票](http://98.51dragon.com) [机票价格](http://99.51dragon.com) [飞机票](http://100.51dragon.com) [继电器](http://101.51dragon.com) [固态继电器](http://102.51dragon.com) [时间继电器](http://102.51dragon.com/a.htm) [热继电器](http://102.51dragon.com/b.htm) [中间继电器](http://102.51dragon.com/c.htm) [小型继电器](http://102.51dragon.com/d.htm) [接地继电器](http://102.51dragon.com/e.htm) [汽车继电器](http://102.51dragon.com/f.htm) [交流继电器](http://102.51dragon.com/g.htm) [加盟](http://103.51dragon.com) [加盟店](http://104.51dragon.com) [连锁加盟](http://105.51dragon.com) [家具](http://106.51dragon.com) [办公家具](http://107.51dragon.com) [驾校](http://108.51dragon.com) [北京驾校](http://108.51dragon.com/a.htm) [家政](http://109.51dragon.com) [家政服务](http://110.51dragon.com) [减肥](http://111.51dragon.com) [监控](http://112.51dragon.com) [闭路监控](http://113.51dragon.com) [远程监控](http://114.51dragon.com) [监控设备](http://115.51dragon.com) [交友](http://116.51dragon.com) [交换机](http://117.51dragon.com) [程控交换机](http://118.51dragon.com) [电话交换机](http://119.51dragon.com) [网络交换机](http://120.51dragon.com) [建材](http://121.51dragon.com) [新型建材](http://122.51dragon.com) [酒店](http://123.51dragon.com) [酒店预定](http://124.51dragon.com) [酒店预订](http://125.51dragon.com) [KVM](http://126.51dragon.com) [切换器](http://127.51dragon.com) [矩阵切换器](http://128.51dragon.com) [考勤机](http://129.51dragon.com) [指纹](http://130.51dragon.com) [指纹考勤机](http://131.51dragon.com) [巡更](http://132.51dragon.com) [电子巡更](http://132.51dragon.com/a.htm) [空压机](http://133.51dragon.com) [螺杆式空压机](http://133.51dragon.com/a.htm) [阿特拉斯空压机](http://133.51dragon.com/b.htm) [活塞式空压机](http://133.51dragon.com/c.htm) [螺杆空压机](http://133.51dragon.com/d.htm) [空压机配件](http://133.51dragon.com/e.htm) [移动式空压机](http://133.51dragon.com/f.htm) [单螺杆空压机](http://133.51dragon.com/g.htm) [进口空压机](http://133.51dragon.com/h.htm) [礼品](http://134.51dragon.com) [工艺品](http://135.51dragon.com) [纪念品](http://136.51dragon.com) [礼品公司](http://137.51dragon.com) [猎头](http://138.51dragon.com) [猎头公司](http://139.51dragon.com) [留学](http://140.51dragon.com) [法国留学](http://141.51dragon.com) [英国留学](http://142.51dragon.com) [德国留学](http://143.51dragon.com) [美国留学](http://144.51dragon.com) [出国留学](http://145.51dragon.com) [留学签证](http://146.51dragon.com) [隆胸](http://147.51dragon.com) [路由器](http://148.51dragon.com) [旅行社](http://149.51dragon.com) [律师](http://150.51dragon.com) [律师事务所](http://151.51dragon.com) [mba](http://152.51dragon.com) [emba](http://153.51dragon.com) [美容](http://154.51dragon.com) [整形美容](http://155.51dragon.com) [门禁](http://156.51dragon.com) [一卡通](http://157.51dragon.com) [停车场](http://158.51dragon.com) [门禁系统](http://159.51dragon.com) [指纹门禁](http://159.51dragon.com/a.htm) [门禁系统](http://159.51dragon.com/b.htm) [门禁考勤](http://159.51dragon.com/c.htm) [门禁管理系统](http://159.51dragon.com/e.htm) [门禁卡](http://159.51dragon.com/f.htm) [酒店门禁](http://159.51dragon.com/g.htm) [电子门禁](http://159.51dragon.com/h.htm) [门禁设备](http://159.51dragon.com/i.htm) [门禁软件](http://159.51dragon.com/j.htm) [模具](http://160.51dragon.com) [五金模具](http://160.51dragon.com/a.htm) [塑料模具](http://161.51dragon.com) [排队机](http://162.51dragon.com) [票务](http://163.51dragon.com) [培训](http://164.51dragon.com) [IT培训](http://165.51dragon.com) [计算机培训](http://166.51dragon.com) [软件培训](http://167.51dragon.com) [汽车](http://168.51dragon.com) [汽车美容](http://169.51dragon.com) [汽车配件](http://170.51dragon.com) [二手车](http://171.51dragon.com) [汽车养护](http://172.51dragon.com) [汽车租赁](http://173.51dragon.com) [起名](http://174.51dragon.com) [签证](http://175.51dragon.com) [求职](http://176.51dragon.com) [招聘](http://177.51dragon.com) [热水器](http://178.51dragon.com) [太阳能热水器](http://178.51dragon.com/a.htm) [人力资源](http://179.51dragon.com) [人力资源管理](http://179.51dragon.com/a.htm) [润滑油](http://180.51dragon.com) [商标](http://181.51dragon.com) [商标注册](http://182.51dragon.com) [首饰](http://183.51dragon.com) [设计](http://184.51dragon.com) [包装设计](http://185.51dragon.com) [平面设计](http://186.51dragon.com) [摄像机](http://187.51dragon.com) [数码摄像机](http://188.51dragon.com) [石材](http://189.51dragon.com) [石材养护](http://189.51dragon.com/a.htm) [视频会议](http://190.51dragon.com) [视频会议设备](http://191.51dragon.com) [视频会议系统](http://192.51dragon.com) [数据修复](http://193.51dragon.com) [水处理](http://194.51dragon.com) [水处理设备](http://195.51dragon.com) [水泵](http://196.51dragon.com) [真空泵](http://197.51dragon.com) [电力真空泵](http://197.51dragon.com/a.htm) [速记](http://198.51dragon.com) [速记培训](http://199.51dragon.com) [塑料](http://200.51dragon.com) [塑料机械](http://201.51dragon.com) [手表](http://202.51dragon.com) [瑞士手表](http://202.51dragon.com/a.htm) [卡西欧手表](http://202.51dragon.com/b.htm) [浪琴手表](http://202.51dragon.com/c.htm) [手表报价](http://202.51dragon.com/d.htm) [手表品牌](http://202.51dragon.com/e.htm) [男士手表](http://202.51dragon.com/f.htm) [女士手表](http://202.51dragon.com/g.htm) [情侣手表](http://202.51dragon.com/h.htm) [劳力士手表](http://202.51dragon.com/i.htm) [时尚手表](http://202.51dragon.com/j.htm) [陶瓷](http://203.51dragon.com) [陶瓷雕塑](http://203.51dragon.com/a.htm) [压电陶瓷](http://203.51dragon.com/b.htm) [陶瓷制品](http://203.51dragon.com/c.htm) [陶瓷膜](http://203.51dragon.com/e.htm) [条码](http://204.51dragon.com) [条码打印机](http://205.51dragon.com) [投影机](http://206.51dragon.com) [投影机维修](http://206.51dragon.com/a.htm) [大屏幕](http://207.51dragon.com) [投资](http://208.51dragon.com) [投资项目](http://209.51dragon.com) [涂料](http://210.51dragon.com) [团购](http://211.51dragon.com) [汽车团购](http://211.51dragon.com/a.htm) [无忧团购](http://211.51dragon.com/b.htm) [团购网](http://211.51dragon.com/c.htm) [北京团购](http://211.51dragon.com/d.htm) [建材团购](http://211.51dragon.com/e.htm) [家具团购](http://211.51dragon.com/f.htm) [年货团购](http://211.51dragon.com/g.htm) [团购服务](http://211.51dragon.com/h.htm) [服装团购](http://211.51dragon.com/i.htm) [托盘](http://212.51dragon.com) [VOD](http://213.51dragon.com) [VOIP](http://214.51dragon.com) [挖掘机](http://215.51dragon.com) [二手挖掘机](http://215.51dragon.com/a.htm) [挖掘机配件](http://215.51dragon.com/b.htm) [网络挖掘机](http://215.51dragon.com/c.htm) [挖掘机械](http://215.51dragon.com/d.htm) [挖掘机修理](http://215.51dragon.com/e.htm) [物流](http://216.51dragon.com) [玩具](http://217.51dragon.com) [儿童玩具](http://217.51dragon.com/a.htm) [鲜花](http://218.51dragon.com) [北京鲜花](http://218.51dragon.com/a.htm) [鲜花速递](http://219.51dragon.com) [北京鲜花速递](http://219.51dragon.com/a.htm) [显示器](http://220.51dragon.com) [显示器维修](http://221.51dragon.com/) [小提琴](http://222.51dragon.com) [小尾羊](http://223.51dragon.com) [相机](http://224.51dragon.com) [帖纸相机](http://224.51dragon.com/a.htm) [数码相机](http://224.51dragon.com/b.htm) [虚拟主机](http://225.51dragon.com) [北京虚拟主机](http://225.51dragon.com/a.htm) [空间租用](http://226.51dragon.com) [虚拟主机提供商](http://226.51dragon.com/a.htm) [虚拟主机租用](http://226.51dragon.com/b.htm) [域名虚拟主机](http://226.51dragon.com/c.htm) [虚拟主机空间](http://226.51dragon.com/d.htm) [雅思](http://227.51dragon.com) [雅思考试](http://227.51dragon.com/a.htm) [雅思报名](http://227.51dragon.com/b.htm) [液压](http://228.51dragon.com) [液压机](http://228.51dragon.com/a.htm) [液压设备](http://228.51dragon.com/b.htm) [液压件](http://228.51dragon.com/c.htm) [移民](http://229.51dragon.com) [加拿大移民](http://229.51dragon.com/a.htm) [新加坡移民](http://229.51dragon.com/b.htm) [音响](http://230.51dragon.com) [音箱](http://231.51dragon.com) [印刷机械](http://232.51dragon.com) [印刷设备](http://233.51dragon.com) [印刷机](http://234.51dragon.com) [英语培训](http://235.51dragon.com) [外语培训](http://236.51dragon.com) [法语培训](http://237.51dragon.com) [饮水机](http://238.51dragon.com) [元器件](http://239.51dragon.com) [电子元器件](http://240.51dragon.com) [油漆](http://241.51dragon.com) [展览](http://242.51dragon.com) [展览展示](http://243.51dragon.com) [整形](http://244.51dragon.com) [整形手术](http://245.51dragon.com) [制药机械](http://246.51dragon.com) [招商](http://247.51dragon.com) [药品招商](http://248.51dragon.com) [医药招商](http://249.51dragon.com) [知识产权](http://250.51dragon.com) [智能家居](http://251.51dragon.com) [轴承](http://252.51dragon.com) [微型轴承](http://252.51dragon.com/a.htm) [珠宝](http://253.51dragon.com) [注册公司](http://254.51dragon.com) [公司注册](http://255.51dragon.com) [装饰](http://256.51dragon.com) [装饰设计](http://257.51dragon.com) [装修](http://258.51dragon.com) [家庭装修](http://258.51dragon.com/a.htm) [室内装修](http://258.51dragon.com/b.htm) [家居装修](http://258.51dragon.com/c.htm) [房屋装修](http://258.51dragon.com/d.htm) [装饰装修](http://258.51dragon.com/e.htm) [装修公司](http://258.51dragon.com/f.htm) [装修设计](http://258.51dragon.com/g.htm) [厨房装修](http://258.51dragon.com/h.htm) [居室装修](http://258.51dragon.com/i.htm) [住宅装修](http://258.51dragon.com/j.htm) [住房装修](http://258.51dragon.com/k.htm) [租房](http://259.51dragon.com) [北京租房](http://260.51dragon.com) [二手房](http://260.51dragon.com/a.htm) [旅游](http://261.51dragon.com) [云南旅游](http://262.51dragon.com) [海南旅游](http://263.51dragon.com) [三亚](http://264.51dragon.com) [三亚旅游](http://265.51dragon.com) [四川旅游](http://266.51dragon.com) [张家界](http://267.51dragon.com) [张家界旅游](http://268.51dragon.com) [旅游景点](http://269.51dragon.com) [香港旅游](http://270.51dragon.com) [桂林旅游](http://271.51dragon.com) [桂林](http://272.51dragon.com) [猎头](http://273.51dragon.com) [猎头公司](http://274.51dragon.com) [OA](http://275.51dragon.com) [办公自动化](http://276.51dragon.com) [九寨沟](http://277.51dragon.com) [九寨沟旅游](http://278.51dragon.com) [欧洲旅游](http://279.51dragon.com) [三峡](http://280.51dragon.com) [三峡旅游](http://281.51dragon.com) [调查](http://282.51dragon.com) [侦探](http://283.51dragon.com) [私人侦探](http://284.51dragon.com) [私家侦探](http://285.51dragon.com) [调查公司](http://286.51dragon.com) [市场调查](http://287.51dragon.com) [泵](http://288.51dragon.com) [水泵](http://289.51dragon.com) [真空泵](http://290.51dragon.com) [mcse](http://291.51dragon.com) [ccnp](http://292.51dragon.com) [ccna](http://293.51dragon.com) [专利](http://294.51dragon.com) [smt](http://295.51dragon.com) [房地产](http://296.51dragon.com) [橡胶](http://297.51dragon.com) [糖尿病](http://298.51dragon.com) [白癜风](http://299.51dragon.com) [氢氧化铝](http://300.51dragon.com) [氢氧化镁](http://300.51dragon.com/a.htm) [水镁石](http://300.51dragon.com/b.htm) [萤石](http://300.51dragon.com/c.htm) [制氮机](http://301.51dragon.com) [发电机](http://302.51dragon.com) [发电机组](http://303.51dragon.com) [IBM笔记本](http://304.51dragon.com) [索尼笔记本](http://305.51dragon.com) [流量计](http://306.51dragon.com) [光触媒](http://307.51dragon.com) [DELL笔记本](http://308.51dragon.com) [流媒体](http://309.51dragon.com) [流媒体编码卡](http://310.51dragon.com) [多屏卡](http://311.51dragon.com) [视频墙](http://312.51dragon.com) [切换台](http://313.51dragon.com) [转换盒](http://314.51dragon.com) [视频采集卡](http://315.51dragon.com) [视频卡](http://316.51dragon.com) [特技切换台](http://317.51dragon.com) [数模转换器](http://318.51dragon.com) [大屏幕控制器](http://319.51dragon.com) [包装机械](http://320.51dragon.com) [包装机](http://321.51dragon.com) [液晶电视](http://322.51dragon.com) [等离子电视](http://323.51dragon.com) [液晶显示器](http://324.51dragon.com) [等离子显示器](http://325.51dragon.com) [IBM显示器](http://326.51dragon.com) [IBM工作站](http://327.51dragon.com) [SONY显示器](http://328.51dragon.com) [显示设备](http://329.51dragon.com) [乙肝](http://yigan.51dragon.com) [肝病](http://ganbing.51dragon.com) [肝炎](http://ganyan.51dragon.com) [物流认证](http://wuliurenzheng.51dragon.com) [物流培训](http://wuliupeixun.51dragon.com)