---
name: "ssh_sftpd"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:25.2.3+dfsg-1+deb12u4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/ssh_sftpd"
---

# ssh\_sftpd(3erl)

Specifies the channel process to handle an SFTP subsystem.

## NAME

ssh\_sftpd - Specifies the channel process to handle an SFTP subsystem.

## DESCRIPTION

Specifies a channel process to handle an SFTP subsystem.

## EXPORTS

```
subsystem_spec(Options) -> Spec
```

Types:

Options = \
\
     \[{cwd, string()} \|\
\
      {file\_handler, CbMod \| {CbMod, FileState}} \|\
\
      {max\_files, integer()} \|\
\
      {max\_handles, integer()} \|\
\
      {max\_path, integer()} \|\
\
      {root, string()} \|\
\
      {sftpd\_vsn, integer()}\]\
 Spec = {Name, {CbMod, Options}}\
 Name = string()\
 CbMod = atom()\
 FileState = term()\

Is to be used together with *ssh:daemon/\[1,2,3\]*

The *Name* is *"sftp"* and *CbMod* is the name of the Erlang module implementing the subsystem using the ssh\_server\_channel (replaces ssh\_daemon\_channel) behaviour.

Options:

- ***cwd*:**

  Sets the initial current working directory for the server.

- ***file\_handler*:**

  Determines which module to call for accessing the file server. The default value is *ssh\_sftpd\_file*, which uses the file and filelib APIs to access the standard OTP file server. This option can be used to plug in other file servers.

- ***max\_files*:**

  The default value is *0*, which means that there is no upper limit. If supplied, the number of filenames returned to the SFTP client per *READDIR* request is limited to at most the given value.

- ***max\_handles*:**

  The default value is *1000*. Positive integer value represents the maximum number of file handles allowed for a connection.

- ***max\_path*:**

  The default value is *4096*. Positive integer value represents the maximum path length which cannot be exceeded in data provided by the SFTP client. (Note: limitations might be also enforced by underlying operating system)

- ***root*:**

  Sets the SFTP root directory. Then the user cannot see any files above this root. If, for example, the root directory is set to */tmp*, then the user sees this directory as */*. If the user then writes *cd /etc*, the user moves to */tmp/etc*.

- ***sftpd\_vsn*:**

  Sets the SFTP version to use. Defaults to 5. Version 6 is under development and limited.
