# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# /etc/pam.d/chrome
#
# Configure the pam modules that chrome uses to authenticate the user.

# We borrow from the system default in /etc/pam.d/system-auth

# from common-auth
auth	[success=1 authinfo_unavail=bad default=ignore]	pam_google.so
auth	requisite			pam_deny.so
auth	required			pam_permit.so
auth	optional			pam_mount.so enable_pam_password disable_interactive

# from common-account
account	[success=1 new_authtok_reqd=done default=ignore]	pam_permit.so
account	requisite			pam_deny.so
account	required			pam_permit.so


password include system-auth
session include system-auth
session optional pam_mount.so
