| security(1) | General Commands Manual | security(1) |
security — Command
line interface to keychains and Security framework
security |
[-hilqv] [-p
prompt] [command]
[command_options]
[command_args] |
A simple command line interface which lets you administer keychains, manipulate keys and certificates, and do just about anything the Security framework is capable of from the command line.
By default security will execute the
command supplied and report if anything went
wrong.
If the -i or -p
options are provided, security will enter
interactive mode and allow the user to enter multiple commands on stdin.
When EOF is read from stdin security will exit.
Here is a complete list of the options available:
-hhelp command.-isecurity in interactive mode. A prompt
(security> by default) will be displayed and
the user will be able to type commands on stdin until an EOF is
encountered.-lsecurity exits, run
/usr/bin/leaks
-nocontext-p
prompt-i option but changes the
default prompt to the argument specified instead.-qsecurity less verbose.-vsecurity more verbose.security provides a rich variety of
commands (command in the
SYNOPSIS), each of which often has a
wealth of options, to allow access to the broad functionality provided by
the Security framework. However, you don't have to master every detail for
security to be useful to you.
Here are brief descriptions of all the
security commands:
helplist-keychainsdefault-keychainlogin-keychaincreate-keychaindelete-keychainlock-keychainunlock-keychainset-keychain-settingsset-keychain-passwordshow-keychain-infodump-keychaincreate-keypairadd-generic-passwordadd-internet-passwordadd-certificatesfind-generic-passworddelete-generic-passwordset-generic-password-partition-listfind-internet-passworddelete-internet-passwordset-internet-password-partition-listfind-keyset-key-partition-listfind-certificatefind-identitydelete-certificatedelete-identityset-identity-preferenceget-identity-preferencecreate-dbexportimportcmsinstall-mdsadd-trusted-certremove-trusted-certdump-trust-settingsuser-trust-settings-enabletrust-settings-exporttrust-settings-importverify-certauthorizeauthorizationdbexecute-with-privilegesleakssmartcardslist-smartcardsexport-smartcarderrorThis section describes the command_options
that are available across most security
commands.
-hHere (finally) are details on all the
security commands and the options each accepts.
help Show all commands, or show usage for a
command.
list-keychains [-h]
[-d
user|system|common|dynamic]
[-s [keychain...]] Display
or manipulate the keychain search list.
default-keychain [-h]
[-d
user|system|common|dynamic]
[-s [keychain]] Display or
set the default keychain.
login-keychain [-h]
[-d
user|system|common|dynamic]
[-s [keychain]] Display or
set the login keychain.
create-keychain [-hP]
[-p password]
[keychain...] Create keychains.
delete-keychain [-h]
[keychain...] Delete keychains and remove them from
the search list.
lock-keychain [-h]
[-a|keychain] Lock
keychain, or the default keychain if none is
specified. If the -a option is specified, all
keychains are locked.
unlock-keychain [-hu]
[-p password]
[keychain] Unlock keychain, or
the default keychain if none is specified.
set-keychain-settings
[-hlu] [-t
timeout] [keychain] Set
settings for keychain, or the default keychain if
none is specified.
set-keychain-password [-h]
[-o oldPassword]
[-p newPassword]
[keychain] Set password for
keychain, or the default keychain if none is
specified.
show-keychain-info
[keychain] Show the settings for
keychain.
dump-keychain [-adhir]
[keychain...] Dump the contents of one or more
keychains.
create-keypair [-h]
[-a alg]
[-s size]
[-f date]
[-t date]
[-d days]
[-k keychain]
[-A|-T
appPath] [description] Create
an asymmetric key pair.
-a
alg-s
size-f
date-t
date-d
days-k
keychain-A-T
appPath-T options are allowed)add-generic-password [-h]
[-a account]
[-s service]
[-w password]
[options...]
[-A|-T
appPath] [keychain] Add a
generic password item.
-a
account-c
creator-C
type-D
kind-G
value-j
comment-l
label-s
service-p
password-w)-w
password-A-T
appPath-T options are allowed)-U-X
password-T "". If no keychain is specified,
the password is added to the default keychain.
add-internet-password [-h]
[-a account]
[-s server]
[-w password]
[options...]
[-A|-T
appPath] [keychain] Add an
internet password item.
-a
account-c
creator-C
type-d
domain-D
kind-j
comment-l
label-p
path-P
port-r
protocol-s
server-t
authenticationType-w
password-A-T
appPath-T options are allowed)-U-X
password-T "". If no keychain is specified,
the password is added to the default keychain.
add-certificates [-h]
[-k keychain]
file... Add certficates contained in the specified
files to the default keychain. The files must
contain one DER encoded X509 certificate each.
-k
keychainfind-generic-password [-h]
[-a account]
[-s service]
[options...] [-g]
[keychain...] Find a generic password item.
-a
account-c
creator-C
type-D
kind-G
value-j
comment-l
label-s
service-g-wdelete-generic-password
[-h] [-a
account] [-s
service] [options...]
[keychain...] Delete a generic password item.
delete-internet-password
[-h] [-a
account] [-s
server] [options...]
[keychain...] Delete an internet password item.
-a
account-c
creator-C
type-d
securityDomain-D
kind-j
comment-l
label-p
path-P
port-r
protocol-s
server-t
authenticationTypefind-internet-password
[-h] [-a
account] [-s
server] [options...]
[-g] [keychain...] Find an
internet password item.
-a
account-c
creator-C
type-d
securityDomain-D
kind-j
comment-l
label-p
path-P
port-r
protocol-s
server-t
authenticationType-g-wfind-key [options...]
[keychain...] Search the keychain for keys.
-a
application-label-c
creator-d-D
description-e-j
comment-l
label-r-s-t
type-u-v-wset-generic-password-partition-list
[-a account]
[-s service]
[-S partition-list]
[-k password]
[options...] [keychain] Sets
the "partition list" for a generic password. The "partition
list" is an extra parameter in the ACL which limits access to the
item based on an application's code signature. You must present the
keychain's password to change a partition list.
-S
partition-list-k
password-a
account-c
creator-C
type-D
kind-G
value-j
comment-l
label-s
serviceset-internet-password-partition-list
[-a account]
[-s server]
[-S partition-list]
[-k password]
[options...] [keychain] Sets
the "partition list" for an internet password. The
"partition list" is an extra parameter in the ACL which limits
access to the item based on an application's code signature. You must
present the keychain's password to change a partition list.
-S
partition-list-k
password-a
account-c
creator-C
type-d
securityDomain-D
kind-j
comment-l
label-p
path-P
port-r
protocol-s
server-t
authenticationTypeset-key-partition-list [-S
partition-list] [-k
password] [options...]
[keychain] Sets the "partition list" for a
key. The "partition list" is an extra parameter in the ACL which
limits access to the key based on an application's code signature. You
must present the keychain's password to change a partition list. If you'd
like to run /usr/bin/codesign with the key, "apple:" must be an
element of the partition list.
-S
partition-list-k
password-a
application-label-c
creator-d-D
description-e-j
comment-l
label-r-s-t
type-u-v-wfind-certificate [-h]
[-a] [-c
name] [-e
emailAddress] [-m]
[-p] [-Z]
[keychain...] Find a certificate item. If no
keychain arguments are provided, the default search
list is used.
-a-c
name-e
emailAddress-m-p-Zfind-identity [-h]
[-p policy]
[-s string]
[-v] [keychain...] Find an
identity (certificate + private key) satisfying a given policy. If no
policy arguments are provided, the X.509 basic
policy is assumed. If no keychain arguments are
provided, the default search list is used.
-p
policy-s
string-vdelete-certificate [-h]
[-c name]
[-Z hash]
[-t] [keychain...] Delete a
certificate from a keychain. If no keychain
arguments are provided, the default search list is used.
delete-identity [-h]
[-c name]
[-Z hash]
[-t] [keychain...] Delete a
certificate and its private key from a keychain. If no
keychain arguments are provided, the default search
list is used.
set-identity-preference
[-h] [-n]
[-c identity]
[-s service]
[-u keyUsage]
[-Z hash]
[keychain...] Set the preferred identity to use for
a service.
-n-c
identity-s
service-u
keyUsage-Z
hashget-identity-preference
[-h] [-s
service] [-u
keyUsage] [-p]
[-c] [-Z] Get the
preferred identity to use for a service.
-s
service-u
keyUsage-p-c-Zcreate-db [-aho0]
[-g
dl|cspdl]
[-m mode]
[name] Create a db using the DL. If
name isn't provided security
will prompt the user to type a name.
export [-k
keychain] [-t
type] [-f
format] [-w]
[-p] [-P
passphrase] [-o
outfile] Export one or more items from a keychain to
one of a number of external representations. If
keychain isn't provided, items will be exported from
the user's default keychain.
-k
keychain-t
type-f
format-w-p-P
passphrase-o
outfileimport inputfile [-k
keychain] [-t
type] [-f
format] [-w]
[-P passphrase]
[options...] Import one or more items from
inputfile into a keychain. If
keychain isn't provided, items will be imported into
the user's default keychain.
-k
keychain-t
type-f
format-w-x-P
passphrase-a
attrName attrValue-A-T
appPath-T options are allowed)cms
[-C|-D|-E|-S]
[options...] Encode or decode CMS messages.
-C-D-E-S-r
id,...-G-H
hash-N
nick-P-T-Y
nick-Z
hash-e
envelope-D or
-E)-k
keychain-i
infile-o
outfile-p
password-s-u
certusage-vinstall-mds Install (or re-install) the Module
Directory Services (MDS) database. This is a system tool which is not
normally used by users. There are no options.
add-trusted-cert [-d]
[-r resultType]
[-p policy]
[-a appPath]
[-s policyString]
[-e allowedError]
[-u keyUsage]
[-k keychain]
[-i settingsFileIn]
[-o settingsFileOut]
[certFile] Add certificate (in DER or PEM format)
from certFile to per-user or local Admin Trust
Settings. When modifying per-user Trust Settings, user authentication is
required via an authentication dialog. When modifying admin Trust
Settings, the process must be running as root, or admin authentication is
required.
-d-r
resultType-p
policy-a
appPath-s
policyString-e
allowedError-u
keyUsage-k
keychain-i
settingsFileIn-o
settingsFileOutsecurity> add-trusted-cert
/tmp/cert.dersecurity> add-trusted-cert
-d .tmp/cert.derremove-trusted-cert [-d]
certFile Remove certificate (in DER or PEM format) in
certFile from per-user or local Admin Trust
Settings. When modifying per-user Trust Settings, user authentication is
required via an authentication dialog. When modifying admin Trust
Settings, the process must be running as root, or admin authentication is
required.
-ddump-trust-settings [-s]
[-d] Display Trust Settings.
user-trust-settings-enable
[-d] [-e] Display or
manipulate user-level Trust Settings. With no arguments, shows the current
state of the user-level Trust Settings enable. Otherwise enables or
disables user-level Trust Settings.
trust-settings-export [-s]
[-d] settings_file Export Trust Settings to the
specified file.
trust-settings-import [-d]
settings_file Import Trust Settings from the specified file. When
modifying per-user Trust Settings, user authentication is required via an
authentication dialog. When modifying admin Trust Settings, the process
must be running as root, or admin authentication is required.
-dverify-cert [options...]
[url] Verify one or more certificates. If a direct
URL argument is provided, a TLS connection is attempted and the
certificate presented by that server is evaluated according to standard
SSL server policy; other certificates or policy options will be ignored in
this case.
-c
certFile-r
rootCertFile-p
policy-C-d
date-k
keychain-n
name-N-L-l-e
emailAddress-s
sslHost-q-R
revCheckOption-P-t-vauthorize [options...]
right... Authorize requested right(s). The
extend-rights flag will be passed by default.
-u-p-d-P-l-i-e-wauthorizationdb read
<right-name>authorizationdb write
<right-name> [allow|deny|<rulename>]authorizationdb remove
<right-name> Read/Modify authorization policy database.
Without a rulename write will read a dictionary as a plist from stdin.
execute-with-privileges
<program> [args...]
Execute tool with privileges. On success stdin will be read and forwarded
to the tool.
leaks [-cycles]
[-nocontext] [-nostacks]
[-exclude symbol] Run
/usr/bin/leaks on this process. This can help find
memory leaks after running certain commands.
-cycles-nocontext-nostacks-exclude
symbolsmartcards token
[-l] [-e
token] [-d
token] Enable, disable or list disabled smartcard
tokens.
list-smartcards Display ids
of available smartcards.
export-smartcard token
[-i id]
[-t type]
[-e exportPath]
Export/display items from a smartcard. If id isn't
provided, items from all smartcards will be displayed.
-i
id-t
certs|privKeys|identities|all-e
exportPatherror [error-code...]
Display an error string for the given security-related error code. The
error can be in decimal or hex, e.g. 1234 or 0x1234. Multiple errors can
be separated by spaces.
MallocStackLoggingleaks command or the
-l option it's probably a good idea to set this
environment variable before security is started.
Doing so will allow leaks to display symbolic backtraces.Property list file containing the current user's default keychain and keychain search list.
Property list file containing the system default keychain and keychain search list. This is used by processes started at boot time, or those requesting to use the system search domain, such as system daemons.
Property list file containing the common keychain search list, which is appended to every user's search list and to the system search list.
security was first introduced in Mac OS X
version 10.3.
security still needs more commands before
it can be considered complete. In particular, it should someday supersede
both the certtool and
systemkeychain commands.
| January 17, 2024 | Darwin |