---
name: "knife-user"
section: "1"
platform: "linux"
package: "chef"
version: "13.8.7-4"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/knife-user"
---

# knife-user(1)

The man page for the knife user subcommand. The knife user subcommand is used to manage the list of users and their associated RSA public key-pairs. NOTE:

## NAME

knife-user - The man page for the knife user subcommand.

The **knife user** subcommand is used to manage the list of users and their associated RSA public key-pairs.

**NOTE:**

This subcommand ONLY works when run against the open source Chef server version 10.x. This subcommand will NOT run against open source Chef server 11, Enterprise Chef (including hosted Enterprise Chef), or Private Chef.

## COMMON OPTIONS

The following options may be used with any of the arguments available to the **knife user** subcommand:

- **--chef-zero-port PORT**

  The port on which chef-zero will listen.

- **-c CONFIG\_FILE, --config CONFIG\_FILE**

  The configuration file to use.

- **-d, --disable-editing**

  Use to prevent the $EDITOR from being opened and to accept data as-is.

- **--defaults**

  Use to have knife use the default value instead of asking a user to provide one.

- **-e EDITOR, --editor EDITOR**

  The $EDITOR that is used for all interactive commands.

- **-E ENVIRONMENT, --environment ENVIRONMENT**

  The name of the environment. When this option is added to a command, the command will run only against the named environment.

- **-F FORMAT, --format FORMAT**

  The output format: **summary** (default), **text**, **json**, **yaml**, and **pp**.

- **-h, --help**

  Shows help for the command.

- **-k KEY, --key KEY**

  The private key that knife will use to sign requests made by the API client to the Chef server.

- **--\[no-\]color**

  Use to view colored output.

- **--print-after**

  Use to show data after a destructive operation.

- **-s URL, --server-url URL**

  The URL for the Chef server.

- **-u USER, --user USER**

  The user name used by knife to sign requests made by the API client to the Chef server. Authentication will fail if the user name does not match the private key.

- **-V, --verbose**

  Set for more verbose outputs. Use **-VV** for maximum verbosity.

- **-v, --version**

  The version of the chef-client.

- **-y, --yes**

  Use to respond to all confirmation prompts with "Yes". knife will not ask for confirmation.

- **-z, --local-mode**

  Use to run the chef-client in local mode. This allows all commands that work against the Chef server to also work against the local chef-repo.

## CREATE

The **create** argument is used to create a user. This process will generate an RSA key pair for the named user. The public key will be stored on the Chef server and the private key will be displayed on **STDOUT** or written to a named file.

- •

  For the user, the private key should be copied to the system as **/etc/chef/client.pem**.

- •

  For knife, the private key is typically copied to **~/.chef/client\_name.pem** and referenced in the knife.rb configuration file.

**Syntax**

This argument has the following syntax:

```
$ knife user create USER_NAME (options)
```

**Options**

This argument has the following options:

- **-a, --admin**

  Use to create a client as an admin client. This is required for any user to access Open Source Chef as an administrator. This option only works when used with the open source Chef server and will have no effect when used with Enterprise Chef.

- **-f FILE\_NAME, --file FILE\_NAME**

  Use to save a private key to the specified file name.

- **-p PASSWORD, --password PASSWORD**

  The user password.

- **--user-key FILE\_NAME**

  All users are assigned a public key. Use to write the public key to a file.

**Examples**

```
$ knife user create "Radio Birdman" -f /keys/user_name
```

## DELETE

The **delete** argument is used to delete a registered user.

**Syntax**

This argument has the following syntax:

```
$ knife user delete USER_NAME
```

**Options**

This command does not have any specific options.

**Examples**

```
$ knife user delete "Steve Danno"
```

## EDIT

The **edit** argument is used to edit the details of a user. When this argument is run, knife will open $EDITOR. When finished, knife will update the Chef server with those changes.

**Syntax**

This argument has the following syntax:

```
$ knife user edit USER_NAME
```

**Options**

This command does not have any specific options.

**Examples**

None.

## LIST

The **list** argument is used to view a list of registered users.

**Syntax**

This argument has the following syntax:

```
$ knife user list (options)
```

**Options**

This argument has the following options:

- **-w, --with-uri**

  Use to show the corresponding URIs.

**Examples**

None.

## REREGISTER

The **reregister** argument is used to regenerate an RSA key pair for a user. The public key will be stored on the Chef server and the private key will be displayed on **STDOUT** or written to a named file.

**NOTE:**

Running this argument will invalidate the previous RSA key pair, making it unusable during authentication to the Chef server.

**Syntax**

This argument has the following syntax:

```
$ knife user reregister USER_NAME (options)
```

**Options**

This argument has the following options:

- **-f FILE\_NAME, --file FILE\_NAME**

  Use to save a private key to the specified file name.

**Examples**

```
$ knife user reregister "Robert Younger"
```

## SHOW

The **show** argument is used to show the details of a user.

**Syntax**

This argument has the following syntax:

```
$ knife user show USER_NAME (options)
```

**Options**

This argument has the following options:

- **-a ATTR, --attribute ATTR**

  The attribute (or attributes) to show.

**Examples**

To view a user named **Dennis Teck**, enter:

```
$ knife user show "Dennis Teck"
```

to return something like:

```
chef_type:   user
json_class:  Chef::User
name:        Dennis Teck
public_key:
```

To view information in JSON format, use the **-F** common option as part of the command like this:

```
$ knife user show "Dennis Teck" -F json
```

(Other formats available include **text**, **yaml**, and **pp**, e.g. **-F yaml** for YAML.)

## AUTHOR

Chef
