diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2014-10-04 16:12:13 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2014-10-04 16:12:13 -0400 |
commit | be4588009b7106859e1beae6038aaea8d7f85825 (patch) | |
tree | ee0010a7003d23a686888fc9585de4e0ec429547 /utils/shells.py | |
parent | 8e54633a2b520dff0a237349f5fc4cbcf4719f40 (diff) |
remove non-nslcd stuff
Diffstat (limited to 'utils/shells.py')
-rw-r--r-- | utils/shells.py | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/utils/shells.py b/utils/shells.py deleted file mode 100644 index cc3fca1..0000000 --- a/utils/shells.py +++ /dev/null @@ -1,64 +0,0 @@ -# coding: utf-8 - -# shells.py - functions for validating user shells -# -# Copyright (C) 2013 Arthur de Jong -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 USA - -import ctypes -import ctypes.util -import os -import sys - - -def list_shells(): - """List the shells from /etc/shells.""" - libc = ctypes.CDLL(ctypes.util.find_library("c")) - libc.setusershell() - while True: - shell = ctypes.c_char_p(libc.getusershell()).value - if not shell: - break - yield shell - libc.endusershell() - - -def shellexists(shell): - """Check if the provided shell exists and is executable.""" - return os.path.isfile(shell) and os.access(shell, os.X_OK) - - -def check(shell, asroot=False): - """Check if the specified shell is valid and exit if it isn't.""" - # if the shell is listed in /etc/shells, everything should be OK - if shell in list_shells(): - return - # if we are not root, bail out - if not asroot: - if not shell: - # FIXME: print to stderr - print '%s: empty shell not allowed' % sys.argv[0] - else: - # FIXME: print to stderr - print '%s: %s is an invalid shell' % (sys.argv[0], shell) - sys.exit(1) - # warn if something seems wrong - if not shell: - # FIXME: print to stderr - print '%s: Warning: setting empty shell' % sys.argv[0] - elif not shellexists(shell): - print '%s: Warning: %s does not exist' % (sys.argv[0], shell) |