Linux 服务器上账户的多种访问级别模式

Linux 服务器上账户的多种访问级别模式

当我目前在 Linux 服务器上工作时(我是 sysadmin 2),我有以下 3 个用例:

  1. 最终用户使用(例如个人或普通项目组)
  2. 用户问题解决和低风险变更(例如 Apache vhost 变更)
  3. 真正的系统管理员工作(例如配置守护进程)

在 NIS 中,我们有 1 个用户帐户用于管理所有内容(其中几乎所有内容都配置了详细且正确的组),并且总体运行良好。

问题是我们目前sudo -i为 2 和 3 打开了一个 root shell ( )。由于完全访问权限,这会带来风险。此外,我们还遇到过具有 root 访问权限的人高估自己能力而犯的错误(非营利组织,因此一般是出于好意)。

我想通过正确授予组权限来区分 2 和 3(例如,站点团队对 apache 具有完全访问权限,但没有其他权限)。问题是我也不想授予用户帐户权限,我希望他们像现在这样进入“管理员模式”,因为它很容易记录,并让人们意识到他们现在可能会造成损害。

是否有可能创建多个级别的权力,而不仅仅是正常的用户/根区分?

当然也欢迎其他建议

答案1

您可以用来su强制人们在执行第二类事情时更改为高级用户。

每个用户将有两个帐户:$normal_account$admin_account。将所需的权限分配给$admin_account该人员,该人员才能su $admin_account -访问该帐户并执行其管理工作。

对于第 3 类功能,我会说不要添加另一个帐户停止花钱。直接使用 运行你的管理命令sudo <command>。如果你真的想非常小心,请关闭 sudoers 文件中的密码缓存。

答案2

您有两个选择,最复杂但最安全的是强制访问控制 (MAC),它可以通过 SELinux 实现。第二个是配置您的 /etc/sudoers 以授予部分控制权。

 User_Alias     OPERATORS = bob, tippy, george
 Runas_Alias    OP = root, operator
 Host_Alias     OFNET = 10.1.2.0/255.255.255.0
 Cmnd_Alias     PRINTING = /usr/sbin/lpc, /usr/bin/lprm

OPERATORS ALL=ALL

# The users in the OPERATORS group can run any command from
 any terminal.

linus ALL=(OP) ALL

# The user linus can run any command from any terminal as any 
user in the OP group (root or operator).

user2 OFNET=(ALL) ALL

# user user2 may run any command from any machine in the 
OFNET network, as any user.

user3 ALL= PRINTING

# user user3 may run lpc and lprm from any machine.

bob ALL=(ALL) ALL

您可以在以下位置找到更多详细信息Sudoers 手册

相关内容