mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-04-15 09:51:21 +00:00
ssh: Disallow managing keys for the root user
- Also, set 'username' and 'keys' arguments for the ssh action script as required. Tests performed: - Setting and deleting ssh keys for the 'tester' user via web interface works. - trying to set keys for the root user `./actions/ssh set-keys --username root --keys abc` fails with an error. - trying to get root user keys fails `./actions/ssh get-keys --username root` - running ./actions/ssh get-keys and set-keys without parameters shows required arguments. Signed-off-by: Veiko Aasa <veiko17@disroot.org> Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
This commit is contained in:
parent
71cabff4d0
commit
8bfe1ce546
14
actions/ssh
14
actions/ssh
@ -26,12 +26,12 @@ def parse_arguments():
|
||||
|
||||
get_keys = subparsers.add_parser('get-keys',
|
||||
help='Get SSH authorized keys')
|
||||
get_keys.add_argument('--username')
|
||||
get_keys.add_argument('--username', required=True, type=_managed_user)
|
||||
|
||||
set_keys = subparsers.add_parser('set-keys',
|
||||
help='Set SSH authorized keys')
|
||||
set_keys.add_argument('--username')
|
||||
set_keys.add_argument('--keys')
|
||||
set_keys.add_argument('--username', required=True, type=_managed_user)
|
||||
set_keys.add_argument('--keys', required=True)
|
||||
|
||||
subparsers.add_parser('get-password-config',
|
||||
help='Get SSH password auth configuration')
|
||||
@ -44,6 +44,14 @@ def parse_arguments():
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def _managed_user(username):
|
||||
"""Raise an error if the user is root."""
|
||||
if pwd.getpwnam(username).pw_gid == 0:
|
||||
msg = 'User {} is not managed by FreedomBox'.format(username)
|
||||
raise argparse.ArgumentTypeError(msg)
|
||||
return username
|
||||
|
||||
|
||||
def subcommand_setup(arguments):
|
||||
"""Setup Open SSH server.
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user