我经常在这样的环境中工作,我们称他们为“恶作剧者”可能会访问我的控制台。
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是最好的解决方案,因为它实际上不仅仅是误导用户,它还实现了真正的安全性。