假设根用户几乎是禁止进入的,如何保护文件夹及其内容,以便拒绝查看和使用它或其中的任何内容?
例如
ls
如果您还不是 root 用户,则不会显示该文件夹 &
cd secret_folder
被拒绝。
我正在尝试构建一个环境,让用户(非 root)执行操作apt-get
等,但禁止此文件夹和 root 操作。
各位朋友对这个问题有什么了解吗?
答案1
您可以使用 sudo 让用户使用 apt-get,但如果该文件夹由 root 拥有并设置为 700,并且用户不在 wheel 组中,则他们不应该以任何方式访问它。
visudo 你可以明确授予命令
在/usr/bin/apt-get中
给用户或群组
userA ALL=(ALL) /usr/bin/apt-get
或者
%groupA ALL=(ALL) /usr/bin/apt-get
那么,这就是你所需要的:
chmod 700 secret_folder; chown root:root secret_foler
答案2
您可以通过清除执行权限来停止对文件夹的访问,但这不会隐藏它。要隐藏它,您需要将其放在另一个不可访问的文件夹中,命名为无害的文件夹,例如/.system
。
登录为根请执行下列操作:-
mkdir /.system
mkdir /.system/SecretFolder
chmod 700 /.system
如果你确定apt-get
拥有根并执行:-
chmod a+s `which apt-get`
这使用户在运行时具有 root 访问权限,apt-get
而无需授予他们访问权限sudo
。
答案3
好吧,这两种解决方案都不完全正确。但是……以供将来参考,哪种方法有效以及为什么有效:
sudo visudo
# ... then put this at the end of the file
username ALL = NOPASSWD: /usr/bin/apt-get
我的经验是,如果你对其他组合(全部)执行此操作,其他文件似乎被锁定
秘密文件夹
su
mkdir .some_other_folder
cd .some_other_folder
mkdir secret_folder
cd ../
chmod -R 700 .some_other_folder
chown -R root:root .some_other_folder
最后结果 :
.其他文件夹/秘密文件夹
这是有效的,因为ls
甚至不会显示.some_other_folder
,但即使他们确实使用类似的东西ls -las
,cd .some_other_folder
也会被拒绝。
希望这对某人有帮助。