it-swarm.cn

如何以系统管理员(root)身份运行命令

我需要以管理权限运行命令。有人说我应该以root用户身份运行命令。我该怎么做呢?

66
Stefan

使用su

$ su -c command

要么

$ su
# command
# exit

无论哪种情况,都将提示您输入root密码。有关更多信息,请参见 手册页

8
Steven D

或者,您可以赋予某些命令超能力。我说的是特殊权限,其中在拥有者权限下执行命令。

通过#which <command>获取命令路径,并为该路径设置SUID或SGID。

附言-应该谨慎设置SUID和SGID位。它们会使您的系统不安全。

3
Ayush Goyal

由于问题不是特定于Linux的,因此以下是在Solaris 9+(或Trusted Solaris 8)中如何实现相同的目标:

从版本9开始,Solaris已包含一组工具,它们被亲切地称为RBAC或基于角色的访问控制。

RBAC的要旨是,通过向用户和/或角色授予授权和权利,或者向用户授予角色,您可以为谁可以使用哪些特权运行什么创建难以置信的精细模型。

本质上,您可以在/ etc/security/auth_attr中标识授权,然后将其授予/ etc/user_attr中的用户或角色。

您可以在/ etc/security/prof_attr中定义配置文件。然后,您将命令与/ etc/security/exec_attr中的那些概要文件相关联,然后将这些概要文件分配给/ etc/user_attr文件中的用户。

完成这些操作后,您实际上可以运行pfexec <command>以授予that命令的that用户的特权或授权执行命令。

RBAC的好处是,没有授予命令本身或用户的其他特权,只有授予用户+命令的组合的特权。因此,它比制作二进制+ s或仅使用Sudo使用户能够执行几乎任何东西都更安全。 (我知道您可以锁定Sudo,但根据我的经验,大多数人不会这样做)

RBAC的另一个优点是,您可以将root用户设置为角色帐户,并使用'su'命令和root密码将该角色分配给能够成为root用户的用户。 root用户也将能够以“单用户模式”登录,(我认为)比Linux模式更好,在Linux模式中,您可以禁用root密码passwd -d root,或锁定根帐户passwd -l root,当出现问题时,这两者都使得以root用户身份登录非常困难。

Ben Rockwood在RBAC上有一篇很棒的博客文章,可以在 在(Open)Solaris上使用RBAC 上阅读。

3
Tim Kennedy