当前位置: 首页 > 面试题库 >

登录后如何限制SSH用户使用预定义的命令集?

杨经武
2023-03-14
问题内容

这是出于安全考虑。我们的员工应该可以访问linux服务器上的某些命令,但不是全部。他们应例如可以访问日志文件(less logfile)或启动其他命令(shutdown.sh/ run.sh)。

背景资料:

所有员工都使用相同的用户名访问服务器:我们的产品以“普通”用户权限运行,不需要“安装”。只需将其解压缩到您的用户目录中并运行它即可。我们管理“安装”应用程序的多台服务器。在每台机器上都有一个用户johndoe。我们的员工有时需要在命令行上访问该应用程序,以访问和检查日志文件或手动重新启动该应用程序。只有某些人具有完全命令行访问权限。

我们正在服务器上使用ppk身份验证。

如果employee1只能访问日志文件,而employee2也可以执行X等操作,那将是很好的。

解决方案: 作为解决方案,我将使用command接受 答案中所述的选项。我将制作自​​己的小shell脚本,这将是 某些
员工可以执行的唯一文件。该脚本将提供几个可以执行的命令,但没有其他命令。我将使用下列参数authorized_keys从为表示在这里:

command="/bin/myscript.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= user@host

这对我们来说足够安全。谢谢,社区!


问题答案:

您还可以将键限制为允许的命令(在authorized_keys文件中)。

也就是说,用户不会通过ssh登录,然后只有一组受限制的命令,而只能被允许通过ssh执行这些命令(例如“ ssh somehost bin /
showlogfile”)



 类似资料:
  • 问题内容: 我有一个用户组:“演示”。 我想设置该用户只能运行10个命令的策略,例如“ vim”,“ nano”,“ cd”等。 或者,将策略设置为对除“ ssh”和“ cat”命令之外的所有命令具有访问权限。 谢谢 问题答案: 您可以通过许多不同的方法来实现这一目标。我将列出几种可能的解决方案之一。 我建议使用几个不同的保护层,以防止用户运行不应被允许访问的命令。此处的所有说明均假定用户具有自己

  • 问题内容: 我有一个LAMP设置,我只想能够保护网页上的内容(图像,css,视频等),以便只有登录的用户才能访问它。 我知道我可以使用.htaccess轻松地做到这一点。但是,我不想使用身份验证弹出窗口,并且希望能够使用会话并能够注销。 我正在使用php来完成mysql身份验证和创建会话的工作。这很好。但是图像,CSS,JavaScript等仍然可以访问。 仅当存在有效的php会话时,如何才能允许

  • 因此,在我们的Laravel应用程序中有两个角色(internet客户端和管理员)。下面是DB模式 我们想允许www.site。com/登录路径,仅记录具有“客户端”角色的用户。 请注意,一旦用户登录并强制注销,我们不想检查角色。 谢谢

  • 我正在开发一个Android应用程序,用户使用Firebase电子邮件登录,密码验证方法。在用电子邮件和密码注册用户的同时,我还在firebase实时数据库中推送其他用户配置文件数据,如用户名、号码地址等。我想问的是,除了Firebase要求使用电子邮件和密码登录之外,登录时是否可能出现这种情况?我是否可能使用用户名而不是电子邮件,密码应该与我在注册电子邮件和密码时输入的相同。 这里棘手的部分是保

  • 我想在Linux上运行SSH命令来启动/停止带有Laravel特使的服务器。但是,对于SSH::into()的语法,我得到了一个错误。我不知道该怎么办完全卡住了。我们需要一种方法来解决这个问题,让它发挥作用。特使设置并与“php artisan”命令配合使用: 命令:特使运行foo--user=root--host=94.130.97.242 这就是我为SSH::into()启动/停止服务器所做的

  • 我正在尝试实现一个功能,在登录后,用户会根据其角色重定向到URL。我已经设置了角色部分,但是在登录后立即测试用户的属性时遇到了问题。 我按照这里的说明创建了一个用户登录页面。我有一个看起来像这样的: 我的函数验证用户,但我不知道如何在登录后立即访问用户对象。这就是我目前拥有的: 当我第一次尝试使用管理员帐户登录时,我会进入路径,因为此时没有任何经过身份验证的用户对象。 在尝试登录后,但是得到了一个