The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 [Cписок руководств | Печать]

ctm (1)
  • >> ctm (1) ( FreeBSD man: Команды и прикладные программы пользовательского уровня )
  • ctm (5) ( FreeBSD man: Форматы файлов )

  • BSD mandoc


     - source code mirror program


    [-cFklquv ] [-b basedir ] [-B backup-file ] [-e include-regex ] [-t tar-command ] [-T tmpdir ] [-V level ] [-x exclude-regex ] file ...  


    The utility was originally ``Cvs Through eMail'' but now instead it seems more fitting to call it ``Current Through eMail''

    The utility is now meant to be the definitive way to make and apply a delta between two versions of a directory tree.

    There are two parts to this, making the delta and applying it. These are two entirely different things.  


    To apply a CTM delta, you pass it to the command. You can pass a CTM delta on stdin, or you can give the filename as an argument. If you do the latter, you make life a lot easier for your self, since the program can accept gzip'ed files and since it will not have to make a temporary copy of your file. You can specify multiple deltas at one time, they will be processed one at a time. Deltas that are already applied will be ignored.

    The command runs in a number of passes. It will process the entire input file in each pass, before commencing with the next pass.

    Before working on a file name first checks for the existence of the file name.ctm If this file exists, works on it instead.

    Pass 1 will verify that the input file is OK. The syntax, the data and the global MD5 checksum will be checked. If any of these fail, will simply reject the input file.

    Pass 2 will validate that the directory tree is in the state expected by the CTM delta. This is done by looking for files and directories which should/should not exist and by checking the MD5 checksums of files.

    If a backup-file had been specified using the -B option, all files that would be modified by this invocation are backed up to this file using the archiver command specified by the -t option. The default archiver command is tar -rf %s -T -

    Pass 3 will actually apply the delta.

    The list of files that would be modified by is subject to filtering regular expressions specified using the -e and -x options. The -e and -x options are applied in order of appearance on the command line. The last filter that matched a given file name determines whether the file would be operated on or left alone by .

    The utility will extract the file hierarchy below its working directory. Absolute filenames or filenames containing references through `. ' and `.. ' are explicitly prohibited as a security measure.  


    -b basedir
    Prepend the path basedir to every filename.
    -B backup-file
    Backup all files that would be modified by this CTM run to backup-file If any filters are specified using the -e and -x options, then the final set of files backed up are those that would be modified by CTM after the filters are applied.
    Check it out, do not do anything.
    -e regular_expression
    Match each name in the CTM file against regular_expression and if it matches process the file, otherwise leave it alone. There may be any number of these options. Use of this option disables the .ctm_status sequence number checks. For example, the expression ^usr.sbin/ctm for example, will select the usr.sbin/ctm source directory and all pathnames under it.

    Pathnames can be disabled from being considered by CTM using the -x option.

    Keep files and directories and do not remove them even if the CTM file specifies they are to be removed. If the -B option is specified, these files and directories will not be backed up.
    List files that would be modified by this invocation of CTM and the actions that would be performed on them. Use of the -l option disables the .ctm_status checks and integrity checks on the source tree being operated on. The -l option can be combined with the -e and -x options to determine which files would be modified by the given set of command line options.
    Tell us less.
    -t tar-command
    Use tar-command instead of the default archiver tar This option takes effect only if a backup file had been specified using the -B option. A %s in the tar command will be replaced by the name of the backup file.
    -T tmpdir
    Put temporary files under tmpdir
    Set modification time of created and modified files to the CTM delta creation time.
    Tell us more.
    -V level
    Tell us more. Level is the level of verbosity.
    -x regular_expression
    Match each name in the CTM file against regular_expression and if it matches, leave the file alone. There may be any number of these options. Use of this option disables the .ctm_status sequence number checks.

    Pathnames can be selected for CTM's consideration using the -e option.



    On its own, CTM is an insecure protocol - there is no authentication performed that the changes applied to the source code were sent by a trusted party, and so care should be taken if the CTM deltas are obtained via an unauthenticated medium such as regular email. It is a relatively simple matter for an attacker to forge a CTM delta to replace or precede the legitimate one and insert malicious code into your source tree. If the legitimate delta is somehow prevented from arriving, this will go unnoticed until a later delta attempts to touch the same file, at which point the MD5 checksum will fail.

    To remedy this insecurity, CTM pieces generated by are cryptographically signed in a format compatible with the GNU Privacy Guard utility, available in /usr/ports/security/gpg, and the Pretty Good Privacy v5 utility, /usr/ports/security/pgp5. The relevant public key can be obtained by fingering

    CTM deltas which are thus signed cannot be undetectably altered by an attacker. Therefore it is recommended that you make use of GPG or PGP5 to verify the signatures if you receive your CTM deltas via email.  


    TMPDIR if set to a pathname, will cause ctm to use that pathname as the location of temporary file. See tempnam(3), for more details on this. The same effect may be achieved with the -T flag.  


    .ctm_status contains the sequence number of the last CTM delta applied. Changing or removing this file will greatly confuse .

    Using the -e and -x options can update a partial subset of the source tree and causes sources to be in an inconsistent state. It is assumed that you know what you are doing when you use these options.  


    cd ~cvs
    /usr/sbin/ctm ~ctm/cvs-*

    To extract and patch all sources under `lib'

    cd ~/lib-srcs
    /usr/sbin/ctm -e '^lib' ~ctm/src-cur*


    Numerous messages, hopefully self-explanatory. The ``noise level'' can be adjusted with the -q -v and -V options.  


    ctm_rmail1, ctm(5)  


    Initial trials were run during the work on Fx 1.1.5 , and many bugs and methods were hashed out.

    The command appeared in Fx 2.1 .  


    The CTM system has been designed and implemented by An Poul-Henning Kamp Aq .

    An Joerg Wunsch Aq wrote this man-page.




    Поиск по тексту MAN-ов: 

    Inferno Solutions
    Hosting by

    Закладки на сайте
    Проследить за страницей
    Created 1996-2023 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру