/usr/share/doc/caspar/csp_helper.html is in caspar-doc 20140919-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (c) 2014 Joost van Baal-Ilić -->
<head>
<meta name="keywords" content="manual">
<style type="text/css">
/* START aephea.base.css */
body
{ text-align: justify;
margin-left: 0%;
margin-right: 0%;
}
a:link { text-decoration: none; }
a:active { text-decoration: none; }
a:visited { text-decoration: none; }
a:link { color: #1111aa; }
a:active { color: #1111aa; }
a:visited { color: #111166; }
a.local:link { color: #11aa11; }
a.local:active { color: #11aa11; }
a.local:visited { color: #116611; }
a.intern:link { color: #1111aa; }
a.intern:active { color: #1111aa; }
a.intern:visited { color: #111166; }
a.extern:link { color: #aa1111; }
a.extern:active { color: #aa1111; }
a.extern:visited { color: #661111; }
a.quiet:link { color: black; }
a.quiet:active { color: black; }
a.quiet:visited { color: black; }
div.verbatim
{ font-family: monospace;
margin-top: 1em;
margin-bottom: 1em;
font-size: 10pt;
margin-left: 2em;
white-space: pre;
}
div.indent
{ margin-left: 8%;
margin-right: 0%;
}
.right { text-align: right; }
.left { text-align: left; }
.nowrap { white-space: nowrap; }
.item_leader
{ position: relative;
margin-left: 8%;
}
.item_compact { position: absolute; vertical-align: baseline; }
.item_cascade { position: relative; }
.item_leftalign { text-align: left; }
.item_rightalign
{ width: 2em;
text-align: right;
}
.item_compact .item_rightalign
{ position: absolute;
width: 52em;
right: -2em;
text-align: right;
}
.item_text
{ position: relative;
margin-left: 3em;
}
.smallcaps { font-size: smaller; text-transform: uppercase }
/* END aephea.base.css */
body { font-family: "Garamond", "Gill Sans", "Verdana", sans-serif; }
body
{ text-align: justify;
margin-left: 8%;
margin-right: 8%;
}
</style>
<title>csp_helper</title>
</head>
<body>
<p style="text-align:right">
19 Sep 2014
<a class="local" href="csp_helper.ps"><b>csp_helper</b></a>
20140919
</p>
<div class=" itemize " style="margin-top:1em; font-size:100%">
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">1.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#name">NAME</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">2.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#synopsis">SYNOPSIS</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">3.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#description">DESCRIPTION</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">4.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#install_description">install DESCRIPTION</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">5.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#install_examples">install EXAMPLES</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">6.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#install_environment">install ENVIRONMENT</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">7.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#mkdircp_description">mkdircp DESCRIPTION</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">8.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#scp_keep_mode_description">scp_keep_mode DESCRIPTION</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">9.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#scp_keep_mode_examples">scp_keep_mode EXAMPLE</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">10.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#scp_keep_mode_environment">scp_keep_mode ENVIRONMENT</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">11.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#sucp_description">sucp DESCRIPTION</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">12.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#sucp_examples">sucp EXAMPLES</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">13.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#author">AUTHOR</a>
</div>
<div class=" item_compact"><div class=" item_rightalign nowrap " style="right:-3em">14.</div></div>
<div class=" item_text " style="margin-left:4em">
<a class="intern" href="#seealso">SEE ALSO</a>
</div>
</div>
<a name="name"></a>
<h2>NAME</h2>
<p style="margin-bottom:0" class="asd_par">
csp_helper — A collection of caspar helper scripts</p>
<a name="synopsis"></a>
<h2>SYNOPSIS</h2>
<b>csp_install</b> <a class="intern" href="#optdir"><b>dir</b> (<i>directory</i>)</a> <a class="intern" href="#optfile"><b>file</b> (<i>file</i>)</a>
<p style="margin-bottom:0" class="asd_par">
<b>csp_mkdircp</b> <a class="intern" href="#optdir"><b>dir</b> (<i>directory</i>)</a> <a class="intern" href="#optfile"><b>file</b> (<i>file</i>)</a>
</p> <p style="margin-bottom:0" class="asd_par">
<b>csp_scp_keep_mode</b> <a class="intern" href="#opth"><b>h</b> (<i>[user@]host</i>)</a> <a class="intern" href="#optdir"><b>dir</b> (<i>directory</i>)</a> <a class="intern" href="#optfile"><b>file</b> (<i>file</i>)</a>
</p> <p style="margin-bottom:0" class="asd_par">
<b>csp_sucp</b>
<a class="intern" href="#opth"><b>h</b> (<i>[user@]host</i>)</a>
<a class="intern" href="#optdir"><b>dir</b> (<i>directory</i>)</a>
<a class="intern" href="#optfile"><b>file</b> (<i>file</i>)</a>
</p>
<a name="description"></a>
<h2>DESCRIPTION</h2>
The scripts <b>csp_install</b>, <b>csp_mkdircp</b>, <b>csp_scp_keep_mode</b> and <b>csp_sucp</b> are helpers for
<a class="local sibling" href="caspar.html">caspar(7)</a>. These scripts typically are not invoked directly,
but via a Makefile which uses <b>caspar</b>. See the notes on csp_PUSH in
<a class="local sibling" href="caspar.html">caspar(7)</a> for information on how to link <b>csp_install</b>,
<b>csp_scp_keep_mode</b> and <b>csp_sucp</b> to <b>caspar</b>.
<a name="install_description"></a>
<h2>install DESCRIPTION</h2>
<b>csp_install</b> creates the required directory (if needed) and installs the file,
preserving timestamps. It uses install(1).
<a name="install_examples"></a>
<h2>install EXAMPLES</h2>
<div class="verbatim">
csp_INSTALL_OPTIONS='--owner=www-data --group=www-data' \
csp_INSTALL_MODE=ugo=r \
csp_install /srv/www index.html</div>
<div class="verbatim">
csp_INSTALL_MODE=u=rwx,go= csp_install /usr/local/sbin mkpasswd</div>
<a name="install_environment"></a>
<h2>install ENVIRONMENT</h2>
<b>csp_install</b> honors csp_INSTALL_OPTIONS and csp_INSTALL_MODE (default is
u=rw,go=r).
<a name="mkdircp_description"></a>
<h2>mkdircp DESCRIPTION</h2>
<b>csp_mkdircp</b> calls mkdir(1) and cp(1).
<b>csp_mkdircp</b> is used like csp_CP. use <b>csp_mkdircp</b> if you frequently have to
bootstrap installation on a fresh system, on which needed directories don't
exist yet. <b>csp_mkdircp</b> makes sure the target directory exists before calling
cp(1), by calling mkdir -p first.
<a name="scp_keep_mode_description"></a>
<h2>scp_keep_mode DESCRIPTION</h2>
<b>csp_scp_keep_mode</b> uses ssh to copy a file to a remote host, keeping its file
permission mode. The trick used is a combination of mktemp(1) and mv(1).
Useful if you'd like to be sure a file gets installed e.g. group writable,
without fiddling with permission bits on the remote host.
<a name="scp_keep_mode_examples"></a>
<h2>scp_keep_mode EXAMPLE</h2>
<div class="verbatim">
chmod g+w rc
csp_scp_keep_mode root@gandalf /etc/uruk rc</div>
<a name="scp_keep_mode_environment"></a>
<h2>scp_keep_mode ENVIRONMENT</h2>
<b>csp_scp_keep_mode</b> honors csp_SSH ("ssh" by default).
<a name="sucp_description"></a>
<h2>sucp DESCRIPTION</h2>
<b>csp_sucp</b> calls tar(1) from within sudo(1) from within ssh(1). This allows one
to copy files to accounts on hosts one can only reach by calling sudo on the
ssh-reachable remote host.
<p style="margin-bottom:0" class="asd_par">
Typically, one wants to install a root-owned file, but one does not want to
allow access to the root-account directly from ssh. Typically sudo is used as
an extra line of defense.
</p>
<p style="margin-bottom:0" class="asd_par">NB: if your sudo prompts for a password, be sure to have line
<div class="verbatim">
Defaults !tty_tickets</div>
in your sudoers file: we first call sudo -v, than we call sudo to write the
data. Since we use ssh to get to the host, we'll use a different tty for both
sudo calls.
</p>
<a name="sucp_examples"></a>
<h2>sucp EXAMPLES</h2>
Some examples:
<div class="verbatim">
csp_sucp rms@bilbo /etc fstab</div>
<div class="verbatim">
csp_sucp monty-python commit/ trailer.txt</div>
<a name="author"></a>
<h2>AUTHOR</h2>
Joost van Baal-Ilić
<a name="seealso"></a>
<h2>SEE ALSO</h2>
<a class="local sibling" href="caspar.html">caspar(7)</a>
The caspar homepage is at <a class="extern" href="http://mdcc.cx/caspar/">http://mdcc.cx/caspar/</a> .
</body>
</html>
|