我的桌面上有 Suse Linux。所以我是 root 和“普通”用户。通常,例如启动 tomcat 或安装/删除我应该使用sudo
或切换到超级用户的程序。但我在.bashrc
、 路径.profile
等中定义了许多别名。
是否可以为普通用户分配超级用户的一些权限?例如安装程序?
答案1
是的,但这是你能做的最糟糕的事情。您的操作系统中有不同的用户具有不同的权限。这是故意的。永久授予用户 root 权限会损害系统的安全性。 (还记得 Windows 9x 和所有病毒吗?)
我猜执行命令sudo
不需要任何自定义内容,除非您执行/bin/sh
(shell)。
为了达到您想要的效果,您可以执行以下操作:
您可以将您的内容从系统移出~/.bashrc
或~/.profile
移入系统/etc/bash/bashrc
,/etc/profile
甚至更好地将它们放在单独的脚本中/etc/profile.d/mystuff.sh
(不要忘记chmod +x /etc/profile.d/mystuff.sh
)。这些文件将为每个登录会话执行。
然后启动 root 会话su -
,-传递给的(减号)符号su
将执行登录会话,因此将执行上述文件。根据您的 Linux 发行版,您可能需要拨打电话sudo su -
。
完成 root 会话后,最好logout
保留 root 权限。
如果您只需要特定二进制文件的 root 权限,还有另一种方法,称为有效 UID。例如,您可以将其用于mtr
二进制:
chmod a+s `which mtr`
这样,当您执行mtr
二进制文件时,它将获得拥有该二进制文件的用户的有效权限 - 在本例中为 root ( chown root /path/to/mtr
)。它会节省您输入 sudo 的时间,但您应该仔细选择要授予 root 权限的二进制文件。如果您不知道风险,那就很危险。最好使用第一个选项。
答案2
tomcat 的启动应该在初始化脚本。如果您想授予一组用户(重新)启动 tomcat 的权利,请添加一行/etc/sudoers使用visudo
。这可能看起来像:
%tomcatcontrol localhost = NOPASSWD : /etc/init.d/tomcat *
将 localhost 替换为您的计算机的名称。然后该组的每个用户汤姆猫控制将能够发出:
sudo /etc/init.d/tomcat restart
(或状态、或停止、或开始)。
这就是 sudo 的用途。如果您想使用 root 帐户工作更长时间,您可以这样做su -
。如果您希望其他用户实际管理 tomcat 内容(用户 tomcat 拥有的文件),您可以允许su - tomcat
一个用户或一组用户。
至于你的别名 - 我认为 OpenSuSE 有 /etc/profile.local 用于此目的:在那里你可以放置对每个用户都有效的内容。