我mint install
经常使用应用程序,但如果我允许我使用的普通用户对其拥有完全权限,则认为它不安全。我想知道是否有办法仅在输入 root 密码时才能访问此应用程序。基本上能够在终端安装新应用程序时使用类似于Windows的管理员密码提示的功能。我知道我可以使用 su 登录 root,但我知道这绝对不安全。有任何想法吗?
编辑:同样,我不想使用 sudo 或 chmod 或其他任何东西向普通用户授予权限。
答案1
如果您需要执行需要 root 权限的操作,则需要使用某种方法来获取 root 权限,这在大多数现代系统上意味着su
、sudo
或其中之一的包装。以 root 身份运行命令(无论是使用su
或sudo
)的危险之处在于,它为您提供了更多破坏系统的方法。因此,您应该仅在命令实际需要时以 root 身份运行该命令。
su
和的典型配置之间的主要区别sudo
在于,对于sudo
,您输入与登录时相同的密码,而su
需要不同的密码(用户的密码root
)。对于典型的单用户计算机,两者在安全性方面没有显着差异。也可以配置sudo
为不需要密码。
如果您在终端中工作并且想要以 root 身份运行命令,请su
运行:
su -c 'somecommand an_argument another_argument'
和sudo
:
sudo somecommand an_argument another_argument
无论哪种方式,系统都会提示您输入密码( 的 root 密码su
、您自己的密码sudo
)。 Sudo 可以记住您的密码,并且在接下来的几分钟内不会再次询问您;使用su
,您每次都必须重新输入。
您还可以获得图形提示来输入密码(使用gksu
, kdesu
, ...),但如果您已经在终端中工作,那就不太方便了。
答案2
虽然天下没有免费的饭菜,但还是可以将风险降到最低。
如果您想以 root 身份运行脚本并立即退出而无需密码提示和exit
命令,那么您将不得不做出一些妥协。
以下解决方案可让您将加密的两次(或更多)root
密码存储在具有当前用户权限的任何位置。
高水平:
将
root
密码加密base64
两次并将文件放置在任意位置(例如可以是 1234.txt)。使用
expect
参数调用脚本(上面解码的字符串)Expect
运行所需的脚本并退出。清理文件下
/root
调用expect
并删除bash_history
(普通用户的)包含root
、密码加密文件和 的行base64
。要删除任何痕迹,请调用脚本(从普通用户的角度来看)。此脚本仅可由root
用户访问。
总的来说,从普通用户的角度来看,这个脚本似乎从未运行过,并且它不包含任何敏感密码。
此外,双重base64
加密对我来说似乎相当随机到无辜(尽管我不是安全专家,我不会将其识别为 2x base64
)。例如:
V1c5MVFYSmxWMlZzWTI5dFpRbz0K decrypted to YouAreWelcome
将密码编码两次base64
一次:
$ cat pass.txt | base64 | base64 > innocent_name.txt
$ rm pass.txt
然后:
运行脚本:
$ ./root_wrap.exp "$(cat innocent_name.txt | base64 -d | base64 -d)"
期望脚本:
#!/usr/bin/expect -f
set root_user root;
set root_pass [ lindex $argv 0 ];
spawn bash
expect "*$ "
send -- "whoami\r"
expect "*$ "
send -- "su $root_user\r"
expect "*?assword:*"
send -- "$root_pass\r"
expect "*# "
send -- "./whoam.sh\r"
expect "*# "
send -- "/root/rm_trace.sh\r"
expect "*# "
send -- "exit\r"
send -- "whoami\r"
expect "*$ "
expect eof
清理历史脚本/root/rm_trace.sh
:
#!/bin/bash
sed -i '/base64/d' /home/<user>/.bash_history
sed -i '/root_wrapp/d' /home/<user>/.bash_history
sed -i '/innocent_name/d' /home/<user>/.bash_history
以 root 身份运行的示例 bash 脚本:
#!/bin/bash
echo "now running as root"
whoami