如何强制应用程序始终需要 root 权限?
例如,如果我运行 nautilus,它应该告诉我权限被拒绝并让我以 root 身份运行它。
在 Ubuntu 中有没有办法做到这一点?强制要求 root 权限?
答案1
我认为您需要将 bin 文件(程序)的所有者设置为 root,并使其只能由 root 执行。
举例来说,这是我的当前权限nautilus
,位于/usr/bin/nautilus
:
alaa@aa-UBUNTU:~$ ls -l /usr/bin | grep nautilus
-rwxr-xr-x 1 root root 1542692 Feb 20 23:13 nautilus
如果您需要了解有关权限的更多信息,请单击这里。另外,在做任何事情之前,请记住在执行任何命令之前程序的权限,以便在出现任何问题时可以改回这些权限。
请注意,有三个“x”,这意味着所有者、组和其他(基本上意味着每个人)都有权执行它。如果我们希望应用程序需要 root 权限,我们需要将其设置为只有 root 才能执行它,因此我们需要从“组”和“其他”中删除“x”(即可执行权限),只保留第一个“x”。为此,您可以执行以下操作:
sudo chmod go-x /usr/bin/nautilus
该命令的意思是:
- 修改模式:更改模式/权限
- 去:将以下内容应用于“组”和“其他”
- -X:删除(因为有减号)“组”和“其他”的可执行权限
- /usr/bin/nautilus:应用此操作的文件
因此,我们将“group”和“other”中的“x”删除。现在,权限如下所示:
alaa@aa-UBUNTU:~$ ls -l /usr/bin | grep nautilus
-rwxr--r-- 1 root root 1542692 Feb 20 23:13 nautilus
如果我尝试nautilus
使用我的用户名运行,我会得到以下信息:
alaa@aa-UBUNTU:~$ nautilus
bash: /usr/bin/nautilus: Permission denied
为了 能够 跑步nautilus
, 我 必须 这么做sudo nautilus
.