Introducing pass
Password management should be simple and follow Unix philosophy. With
pass
, each password lives inside of a gpg
encrypted file whose filename is the title of the website or resource that requires the password. These encrypted files may be organized into meaningful folder hierarchies, copied from computer to computer, and, in general, manipulated using standard command line file management utilities.pass
makes managing these individual password files extremely easy. All passwords live in ~/.password-store
, and pass
provides some nice commands for adding, editing, generating, and retrieving passwords. It is a very short and simple shell script. It's capable of temporarily putting passwords on your clipboard and tracking password changes using git
.You can edit the password store using ordinary unix shell commands alongside the
pass
command. There are no funky file formats or new paradigms to learn. There is bashcompletion so that you can simply hit tab to fill in names and commands, as well as completion for zsh and fish available in the completion folder. The very active community has produced many impressive clients and GUIs for other platforms as well as extensions for pass
itself.The amount of money you place doesn’t figure into the odds, but it does figure into the Craps payout. Craps Payout: For a 1/1 payout, if you bet $5 and win, you only get $5 on top of the $5 you bet. House Edge%: This percentage shows how much of a percent over the 50% (even odds) that the House holds. Basically this% represents the. When you place odds on the pass line, or back up your pass line bet, if the point comes up (say, the point is 9 and the shooter rolls a 9), you get paid the actual true odds on the odds bet (2-1.
The
pass
command is extensively documented in its man page.Using the password store
So if the point is 4, a pass line better with a $10 flat bet can bet $30 in odds while a don't pass better with a $10 flat bet can lay $60. If the point is made, the pass line better will win $70 ($10 + $60) while if there is a 7out, the don't pass better will win only $40 ($10 + $30).
We can list all the existing passwords in the store:
And we can show passwords too:
Or copy them to the clipboard:
There will be a nice password input dialog using the standard
gpg-agent
(which can be configured to stay authenticated for several minutes), since all passwords are encrypted.We can add existing passwords to the store with
insert
:This also handles multiline passwords or other data with
--multiline
or -m
, and passwords can be edited in your default text editor using pass edit pass-name
.The utility can
generate
new passwords using /dev/urandom
internally:It's possible to generate passwords with no symbols using
--no-symbols
or -n
, and we can copy it to the clipboard instead of displaying it at the console using --clip
or -c
.And of course, passwords can be removed:
If the password store is a git repository, since each manipulation creates a git commit, you can synchronize the password store using
pass git push
and pass git pull
, which call git-push
or git-pull
on the store.You can read more examples and more features in the man page.
Setting it up
To begin, there is a single command to initialize the password store:
Here,
ZX2C4 Password Storage Key
is the ID of my GPG key. You can use your standard GPG key or use an alternative one especially for the password store as shown above. Multiple GPG keys can be specified, for using pass in a team setting, and different folders can have different GPG keys, by using -p
.Types of gambling machines. We can additionally initialize the password store as a git repository:
If a git repository is initialized,
pass
creates a git commit each time the password store is manipulated.There is a more detailed initialization example in the man page.
Download
The latest version is 1.7.3.
Ubuntu / Debian
Fedora / RHEL
openSUSE
Gentoo
Arch
Macintosh
The password store is available through the Homebrew package manager:
FreeBSD
Tarball
The tarball contains a generic makefile, for which a simplesudo make install
should do the trick.Git Repository
You may browse the git repository or clone the repo:
All releases are tagged, and the tags are signed with 0xA5DE03AE.
Data Organization
Usernames, Passwords, PINs, Websites, Metadata, et cetera
The password store does not impose any particular schema or type of organization of your data, as it is simply a flat text file, which can contain arbitrary data. Though the most common case is storing a single password per entry, some power users find they would like to store more than just their password inside the password store, and additionally store answers to secret questions, website URLs, and other sensitive information or metadata. Since the password store does not impose a scheme of it's own, you can choose your own organization. There are many possibilities.
One approach is to use the multi-line functionality of pass (
--multiline
or -m
in insert
), and store the password itself on the first line of the file, and the additional information on subsequent lines. For example, Amazon/bookreader
might look like this:This is the preferred organzational scheme used by the author. The
--clip
/ -c
options will only copy the first line of such a file to the clipboard, thereby making it easy to fetch the password for login forms, while retaining additional information in the same file.Another approach is to use folders, and store each piece of data inside a file in that folder. For example
Amazon/bookreader/password
would hold bookreader's password inside the Amazon/bookreader
directory, and Amazon/bookreader/secretquestion1
would hold a secret question, and Amazon/bookreader/sensitivecode
would hold something else related to bookreader's account. And yet another approach might be to store the password in Amazon/bookreader
and the additional data in Amazon/bookreader.meta
. And even another approach might be use multiline, as outlined above, but put the URL template in the filename instead of inside the file.The point is, the possibilities here are extremely numerous, and there are many other organizational schemes not mentioned above; you have the freedom of choosing the one that fits your workflow best.
Extensions for pass
In order to faciliate the large variety of uses users come up with,
pass
supports extensions. Extensions installed to /usr/lib/password-store/extensions
(or some distro-specific variety of such) are always enabled. Extensions installed to ~/.password-store/.extensions/COMMAND.bash
are enabled if the PASSWORD_STORE_ENABLE_EXTENSIONS
environment variable is true
Read the man page for more details.The community has produced many such extensions:
- pass-tomb: manage your password store in a Tomb
- pass-update: an easy flow for updating passwords
- pass-import: a generic importer tool from other password managers
- pass-extension-tail: a way of printing only the tail of a file
- pass-extension-wclip: a plugin to use wclip on Windows
- pass-otp: support for one-time-password (OTP) tokens
Compatible Clients
The community has assembled an impressive list of clients and GUIs for various platforms:
- passmenu: an extremely useful and awesome dmenu script
- qtpass: cross-platform GUI client
- Android-Password-Store: Android app
- passforios: iOS app
- pass-ios: (older) iOS app
- passff: Firefox plugin
- browserpass: Chrome plugin
- Pass4Win: Windows client
- pext_module_pass: module for Pext
- gopass: Go GUI app
- upass: interactive console UI
- alfred-pass: Alfred integration
- pass-alfred: Alfred integration
- simple-pass-alfred: Alfred integration
- pass.applescript: OS X integration
- pass-git-helper: git credential integration
- password-store.el: an emacs package
- XMonad.Prompt.Pass: prompt for Xmonad
Migrating to pass
To free password data from the clutches of other (bloated) password managers, various users have come up with different password store organizations that work best for them. Some users have contributed scripts to help import passwords from other programs:
- 1password2pass.rb: imports 1Password txt or 1pif data
- keepassx2pass.py: imports KeepassX XML data
- keepass2csv2pass.py: imports Keepass2 CSV data
- keepass2pass.py: imports Keepass2 XML data
- fpm2pass.pl: imports Figaro's Password Manager XML data
- lastpass2pass.rb: imports Lastpass CSV data
- kedpm2pass.py: imports Ked Password Manager data
- revelation2pass.py: imports Revelation Password Manager data
- gorilla2pass.rb: imports Password Gorilla data
- pwsafe2pass.sh: imports PWSafe data
- kwallet2pass.py: imports KWallet data
- roboform2pass.rb: imports Roboform data
- password-exporter2pass.py: imports password-exporter data
- pwsafe2pass.py: imports pwsafe data
- firefox_decrypt: full blown Firefox password interface, which supports exporting to pass
Credit & License
pass
was written by Jason A. Donenfeld of zx2c4.com and is licensed under the GPLv2+.Contributing
This is a very active project with a healthy dose of contributors. The best way to contribute to the password store is to join the mailing list and send git formatted patches. You may also join the discussion in
#pass
on Freenode.Fleaswatter
While playing at a 3x 4x 5x odds craps table, the maximum amount of odds that can be layed against the don't pass line bet is 6x the bet. Why is the limit 6x?So if the point is 4, a pass line better with a $10 flat bet can bet $30 in odds while a don't pass better with a $10 flat bet can lay $60. If the point is made, the pass line better will win $70 ($10 + $60) while if there is a 7out, the don't pass better will win only $40 ($10 + $30).
Why aren't don't pass players allowed to lay a sufficient amount that they would win the same as a pass line player? In my example, why don't they allow a don't pass player lay $120 against a $10 flat which would yield a win of $70 ($10 + $60)?
new motto for the left: “I don't know if I received bad information, but I think I suspected there was more than there actually was,” (John Brennan Mar 25, 2019)
goatcabin
While playing at a 3x 4x 5x odds craps table, the maximum amount of odds that can be layed against the don't pass line bet is 6x the bet. Why is the limit 6x?
So if the point is 4, a pass line better with a $10 flat bet can bet $30 in odds while a don't pass better with a $10 flat bet can lay $60. If the point is made, the pass line better will win $70 ($10 + $60) while if there is a 7out, the don't pass better will win only $40 ($10 + $30).
Why aren't don't pass players allowed to lay a sufficient amount that they would win the same as a pass line player? In my example, why don't they allow a don't pass player lay $120 against a $10 flat which would yield a win of $70 ($10 + $60)?
So if the point is 4, a pass line better with a $10 flat bet can bet $30 in odds while a don't pass better with a $10 flat bet can lay $60. If the point is made, the pass line better will win $70 ($10 + $60) while if there is a 7out, the don't pass better will win only $40 ($10 + $30).
Why aren't don't pass players allowed to lay a sufficient amount that they would win the same as a pass line player? In my example, why don't they allow a don't pass player lay $120 against a $10 flat which would yield a win of $70 ($10 + $60)?
I suspect it's because the lay odds bets are expected to win more often than lose, the opposite of the pass bets.
On the pass line, the probability a point will be made is .406, times $70 is $28.42. (with 3, 4, 5X odds all the payoffs are $70, including the flat part)
On the DP, here are the breakdowns
Craps Pass Line Payouts
4/10 .16666 of points, .6667 probability of winning $40 = $4.445/9 .33333 of points, .6 probability of winning $50 = $10
6/8 .41666 of points, .5454 probability of winning $60 = $13.63
They add up to $28.07.
On the right side, all the payouts are the same.
On the 'wrong' side, all the lay odds bets are the same, different winnings.
Cheers,
Alan Shank
Cheers, Alan Shank 'How's that for a squabble, Pugh?' Peter Boyle as Mister Moon in 'Yellowbeard'
ThatDonGuy
While playing at a 3x 4x 5x odds craps table, the maximum amount of odds that can be layed against the don't pass line bet is 6x the bet. Why is the limit 6x?
Ever wonder how they came up with the 3x/4x/5x limit? Regardless of what the point is, if you bet the maximum odds with pass, you are putting up 3/4/5x against the casino's 6x (3x @ 2-1, 4x @ 3-2, 5x @ 6-5). Presumably, the casino wants to put the same limit on the don't pass odds bettors - in this case, they're putting up the 6x against the casino's 3x/4x/5x.
MathExtremist
Juicy vegas casino. While playing at a 3x 4x 5x odds craps table, the maximum amount of odds that can be layed against the don't pass line bet is 6x the bet. Why is the limit 6x?
Because 6x happens to be the inverse odds for all of 3x/4x/5x. If you're at a straight 10x odds table, the lay limits are 20x, 15x, and 12x. The key is to realize the rules are take X odds to win Y, lay Y odds to win X. The odds limits are stated in terms of X. Y is implied based on the true odds payouts.
And a big part is tradition. If a don't bettor could go to a 3/4/5x table and, on a $5 point of 4, lay $60 to win $30, then everyone on the pass side would be yelling about how they can't make a $30 odds bet.
'In my own case, when it seemed to me after a long illness that death was close at hand, I found no little solace in playing constantly at dice.' -- Girolamo Cardano, 1563
sodawater
Think of it this way. When you play the don't odds, you are taking the other side of the pass odds.
At a 3-4-5 table, pass bettors:
* risk $30 to win $60 on the 4 and 10.
You fade that bet, risking $60 to win $30. So you win the maximum amount the right-way bettor can risk. Makes perfect sense to me.
* risk $40 to win $60 on the 5 and 9.
You put up the $60 and if the point fails, you take the $40.
* risk $50 to win $60 on the 6 and 8.
Again, you are putting up the $60 to win the $50.
That's just how don't odds work.
At a 3-4-5 table, pass bettors:
* risk $30 to win $60 on the 4 and 10.
You fade that bet, risking $60 to win $30. So you win the maximum amount the right-way bettor can risk. Makes perfect sense to me.
* risk $40 to win $60 on the 5 and 9.
You put up the $60 and if the point fails, you take the $40.
* risk $50 to win $60 on the 6 and 8.
Again, you are putting up the $60 to win the $50.
That's just how don't odds work.
AlanMendelson
Ever wonder how they came up with the 3x/4x/5x limit?
The tables game manager at Caesars palace, Jimmy Wike, is credited with being the one who 'standardized' the 3, 4, 5 odds system because he wanted to make it simpler for the dealers to pay out max odds at the tables. Each bet pays the same.
7craps
Think of it this way. When you play the don't odds, you are taking the other side of the pass odds.
At a 3-4-5 table, pass bettors:
* risk $30 to win $60 on the 4 and 10.
You fade that bet, risking $60 to win $30. So you win the maximum amount the right-way bettor can risk. Makes perfect sense to me.
That's just how don't odds work.
At a 3-4-5 table, pass bettors:
* risk $30 to win $60 on the 4 and 10.
You fade that bet, risking $60 to win $30. So you win the maximum amount the right-way bettor can risk. Makes perfect sense to me.
That's just how don't odds work.
Pass Line Odds Payout
+1Pass Line Payout
winsome johnny (not Win some johnny)