Linux SSH用户锁定到其主目录&;一次服务

Linux SSH用户锁定到其主目录&;一次服务,linux,permissions,ssh,Linux,Permissions,Ssh,我对Linux真的很陌生。我在谷歌上搜索了几天,在CentOS上安装了Java和Tomcat 现在我需要一个用户,该用户在其主目录中拥有所有权限(包括文件、子目录和子目录中的文件),但不能访问任何其他目录 此外,该用户还必须具有管理一个服务的权限(我创建了tomcat服务,可以“启动”、“停止”和“重新启动”) 有人能解释一下怎么做吗?你要求了很多 有几种可能的方法: 完全使用“本机”Linux权限 使用 本机Linux权限 将此新用户创建为他们自己的新组。让他们成为这个小组的唯一成员 删除

我对Linux真的很陌生。我在谷歌上搜索了几天,在CentOS上安装了Java和Tomcat

现在我需要一个用户,该用户在其主目录中拥有所有权限(包括文件、子目录和子目录中的文件),但不能访问任何其他目录

此外,该用户还必须具有管理一个服务的权限(我创建了tomcat服务,可以“启动”、“停止”和“重新启动”)


有人能解释一下怎么做吗?

你要求了很多

有几种可能的方法:

  • 完全使用“本机”Linux权限
  • 使用
本机Linux权限 将此新用户创建为他们自己的新组。让他们成为这个小组的唯一成员

删除所有数据文件的全局读取、写入和执行权限。如果任何用户通过world权限获得对数据文件的权限,请为所有用户和数据创建适当的新组(可能一个用于
会计
,一个用于
计费
,一个用于
销售
,一个用于
工程
,等等)

为该用户添加一个新的
sudoers(5)
条目,用于
sudo stop tomcat
sudo start tomcat
sudo restart tomcat
sudo status tomcat
——或者该用户管理tomcat服务需要执行的任何命令。有关编辑
sudo(8)
配置文件的详细信息,请参见
visudo(8)

如果确实要锁定此用户,请将此人需要的实用程序复制到其
~/bin/
目录中,然后继续删除
/bin
/sbin
/usr/bin
/usr/sbin
上的世界执行位。(将
/lib
/usr/lib
等放在一边——在这个用户需要的库中复制无疑是一项艰巨的工作。)

强制访问控制 我将使用该系统对此进行解释;我在AppArmor上工作了十多年,这是我最熟悉的系统。有更多的选择:,都是很好的工具。AppArmor和TOMOYO致力于限制对路径名的访问。SMACK和SELinux的工作原理是,系统上的每个对象都分配了一个标签,并且策略指定了哪些标签(在进程上)可以读取、写入、执行等等。标签(在数据或其他进程上)。如果您想实施全面的公开、机密、绝密保护,SMACK或SELinux将是更好的工具。如果您想将某些程序限制在某些文件中,AppArmor或TOMOYO将是更好的工具

AppArmor应该可以在大多数Ubuntu、SUSE、PLD、Annvix、Mandriva和Pardus发行版上使用

AppArmor系统限制进程并控制进程在执行新程序时如何从一个域移动到另一个域。域通常由程序分配

最简单的入门方法是将
/bin/bash
复制到
/bin/jail\u bash
(或者不在
/etc/shells
中的其他名称),在
/etc/passwd
中为用户设置shell(
chsh(1)
可以让这变得简单),并为
/bin/jail\u bash
创建一个AppArmor配置文件,该配置文件只允许您想要允许的操作。如果我们正确地限制了流程,那么用户就无法逃脱我们为他们制作的配置文件

为该用户添加一个新的
sudoers(5)
条目,用于
sudo stop tomcat
sudo start tomcat
sudo restart tomcat
sudo status tomcat
——或者该用户管理tomcat服务需要执行的任何命令。有关编辑
sudo(8)
配置文件的详细信息,请参见
visudo(8)

在一个终端中,运行
aa genprof jail\u bash
。在另一个终端中,以用户身份登录(或以其他方式运行
/bin/jail\u bash
)并开始执行您希望允许此人执行的任务。我们将使用您所做的作为培训材料,以迭代方式构建概要文件。您可能有兴趣观看
/var/log/syslog
/var/log/audit/audit.log
(如果您安装了
auditd
软件包),查看AppArmor注意到您的程序在做什么。不要一次做太多——每次迭代只做一些新的事情

aa genprof
终端中,回答出现的问题。允许需要允许的事情。否认应该否认的事情。当您被问及执行权限时,首选inherit或child而不是profile。(配置文件选项将影响系统上的所有其他配置文件。Inherit或child将仅影响您当前正在改进的配置文件的执行。child将权限拆分为较小的部分,而Inherit将权限保留在较大的配置文件中。在这种情况下,首选Inherit。)

一旦您遇到有关执行tomcat的问题,请使用未定义的执行权限。这是危险的——如果tomcat启动方式中的一个bug允许人们启动未封壳,那么这可以用来越狱。您可以限制tomcat(这甚至是一个好主意——tomcat并不完美)以防止它成为一条逃生路线,但这可能不是立即需要的

AppArmor的设计目的是,随着时间的推移,可以轻松地在系统上扩展配置文件。AppArmor并不适用于所有安全情况,但我们在Capture the flag黑客竞赛中部署了非常类似的场景。我们必须允许其他攻击者
root
(和临时用户帐户)通过
telnet
,以及POP3、SMTP、HTTP+CGI和FTP访问机器

在允许用户登录之前,请确保手动检查
/etc/apparmor.d/
中的配置文件。你可以用纯文本编辑器修复任何你想要的东西;运行
/etc/init.d/apparmor restart
重新加载所有配置文件(并卸载可能删除的配置文件)