📅  最后修改于: 2023-12-03 15:42:23.442000             🧑  作者: Mango
有时,你可能需要在 Linux 系统上安装或升级软件包,但却被拒绝了。这时,你或许会发现,需要使用 sudo
命令来获得足够的权限。
然而,如果你总是需要使用 sudo
,这可能会让你的工作流程变得不那么顺畅。在本文中,我们将介绍一些方法来防止你总是需要使用 sudo
命令。
首先,我们来了解一下 sudo
命令。sudo
是一种特殊权限,允许你以超级用户的身份运行指定的命令。如果你不是超级用户,你需要使用 sudo
命令来获得这个权限。
为了允许普通用户获得 sudo
特权,我们需要将其添加到 sudo
组中。这可以通过以下步骤完成:
使用以下命令创建一个新用户:
# 将 username 替换成你要创建的新用户的名称
sudo adduser username
使用以下命令将新用户添加到 sudo
组:
# 将 username 替换成你创建的新用户的名称
sudo usermod -aG sudo username
退出当前的终端,并使用新用户重新登录。
现在,新用户就可以使用 sudo
命令来获得特权,并且不需要输入密码。但是,这并不是一种安全的方法,因为任何拥有该用户帐户的人都可以获得特权。因此,我们需要更安全的解决方案。
setuid 和 setgid 是一种 Linux 文件权限,允许程序以文件所有者的身份执行。这意味着,如果一个普通用户运行一个具有 setuid 权限的程序,那么这个程序将以超级用户身份执行。
一个示例是 passwd
程序。当你运行 passwd
命令来更改你的密码时,该命令将以 setuid 标志运行。这允许你更改你的密码,即使你没有超级用户权限。
为了使用 setuid 和 setgid 权限,我们需要执行以下步骤:
使用以下命令创建一个新的目录:
# 创建一个名为 myapp 的新目录
mkdir ~/myapp
在 myapp
目录中创建一个新的 Shell 脚本:
# 在 myapp 目录中创建一个名为 myscript.sh 的新脚本
nano ~/myapp/myscript.sh
在脚本中添加以下内容:
# 这将以超级用户身份执行 whoami 命令
/usr/bin/whoami
将脚本设置为可执行文件:
chmod +x ~/myapp/myscript.sh
使用以下命令设置 setuid 和 setgid 标志:
sudo chown root ~/myapp/myscript.sh
sudo chmod +s ~/myapp/myscript.sh
现在,当一个普通用户运行 myscript.sh
文件时,该脚本将以超级用户身份执行。这样,普通用户就不必再输入 sudo
命令了。
在本文中,我们介绍了两种方法来防止总是需要输入 sudo
命令。第一种方法是将用户添加到 sudo
组中,第二种方法是使用 setuid 和 setgid 权限。请记住,无论哪种方法,都应该在安全的环境下使用,并且应该遵循最佳安全实践。