<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE erlref SYSTEM "erlref.dtd">

<erlref>
  <header>
    <copyright>
      <year>2005</year><year>2016</year>
      <holder>Ericsson AB. All Rights Reserved.</holder>
    </copyright>
    <legalnotice>
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
 
          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.

    </legalnotice>

    <title>ssh_sftpd</title>
    <prepared></prepared>
    <docno></docno>
    <date>2005-09-22</date>
    <rev></rev>
    <file>ssh_sftpd.sgml</file>
  </header>
  <module>ssh_sftpd</module>
  <modulesummary>Specifies the channel process to handle an SFTP subsystem.</modulesummary>
  <description>
    <p>Specifies a channel process to handle an SFTP subsystem.</p>
  </description>

  <section>
    <title>DATA TYPES</title>
    <taglist>
      <tag><c>subsystem_spec() =</c></tag>
      <item><p><c>{subsystem_name(), {channel_callback(), channel_init_args()}}</c></p></item>
      <tag><c>subsystem_name() =</c></tag>
      <item><p><c>"sftp"</c></p></item>
      <tag><c>channel_callback() =</c></tag>
      <item><p><c>atom()</c> - Name of the Erlang module implementing the subsystem using the
      <c>ssh_channel</c> behavior, see the
      <seealso marker="ssh_channel">ssh_channel(3)</seealso> manual page.</p></item>
      <tag><c>channel_init_args() =</c></tag>
      <item><p><c>list()</c> - The one given as argument to function <c>subsystem_spec/1</c>.</p></item>
    </taglist>
  </section>
  <funcs>
    <func>
      <name>subsystem_spec(Options) -> subsystem_spec()</name>
      <fsummary>Returns the subsystem specification that allows an SSH daemon to handle the subsystem "sftp".</fsummary>
      <type>
	<v>Options = [{Option, Value}]</v>
      </type>
      <desc>
        <p>Is to be used together with <c>ssh:daemon/[1,2,3]</c></p>
        <p>Options:</p>
        <taglist>
          <tag><c><![CDATA[{cwd, String}]]></c></tag>
          <item>
            <p>Sets the initial current working directory for the server.</p>
          </item>
          <tag><c><![CDATA[{file_handler, CallbackModule}]]></c></tag>
          <item>
	    <p>Determines which module to call for accessing
	    the file server. The default value is <c>ssh_sftpd_file</c>, which uses the
	    <seealso marker="kernel:file">file</seealso> and <seealso marker="stdlib:filelib">filelib</seealso>
	    APIs to access the standard OTP file server. This option can be used to plug in
	    other file servers.</p>
	  </item>
	  <tag><c><![CDATA[{max_files, Integer}]]></c></tag>
	  <item>
	    <p>The default value is <c>0</c>, which means that there is no upper limit.
	    If supplied, the number of filenames returned to the SFTP client per <c>READDIR</c>
	    request is limited to at most the given value.</p>
	  </item>
	  <tag><c><![CDATA[{root, String}]]></c></tag>
	  <item>
	    <p>Sets the SFTP root directory. Then the user cannot see any files
	    above this root. If, for example, the root directory is set to <c>/tmp</c>,
	    then the user sees this directory as <c>/</c>. If the user then writes
	    <c>cd /etc</c>, the user moves to <c>/tmp/etc</c>.
	    </p>
	  </item>
	  <tag><c><![CDATA[{sftpd_vsn, integer()}]]></c></tag>
	  <item>
	    <p>Sets the SFTP version to use. Defaults to 5. Version 6 is under
	    development and limited.</p>
	  </item>
        </taglist>
      </desc>
    </func>
  </funcs>  
</erlref>

