我可以在运行某些进程时强制自己输入密码吗?

我可以在运行某些进程时强制自己输入密码吗?

我经常在这样的环境中工作,我们称他们为“恶作剧者”可能会访问我的控制台。

chmod -R 777 *每当我走开时​​,我都会努力锁定屏幕,但只要有足够的时间,当我看向另一个方向/削铅笔/其他什么时,有人就有机会打字。

有什么方法可以强制为某些命令重新输入密码(我正在考虑rm, chmod, chown, vi ~/.bashrc, &c )?

我曾想过将 .bashrc 和 .bash_profile 更改为对所有用户(包括我自己)只读,然后将别名 chown / chmod / 无论是需要密码的脚本,但这看起来很黑客。

编辑:我不是这台机器上的 sudoer

答案1

脑海中浮现出几种不同的方式:

1)

使用文件系统 ACL 删除用户对这些特定二进制文件的执行权限。然后要求使用sudo来运行它们。

例如,阻止您的用户执行 chmod

setfacl -m u:trideceth12:- `which chmod`

现在,任何运行尝试chmod都会导致“权限被拒绝”错误。

(这种方法的缺点是,如果二进制文件更新,ACL 将被重置。但是您可以在 shell 启动脚本中对 ACL 进行简单检查,并在它丢失时发出警告。)

2)

正如评论中提到的,将命令别名为其他内容(例如 yes,/bin/true以使命令看起来像是有效的)。

3)

一个稍微不太容易解决(但仍然很容易)的方法是在$PATH正常搜索位置之前放置一个特殊目录,并将 .txt 文件复制/bin/true到该目录中chmod。这样它就不会显示为别名。


明显地#1是最好的解决方案,因为它实际上不仅仅是误导用户,它还实现了真正的安全性。

相关内容