如何解决只限制用户访问一个特定的文件,没有别的
我希望用户能够rwx 访问仅一个特定文件,命令nano
、/bin/bash
和NOTHING ELSE。用户将能够使用 ssh 登录。
我按照 Victor Wong 在这个问题的第二个回答:How to limit user commands in Linux 使用 nano 设置了这个东西,但到目前为止我无法限制对这个文件的访问。
使用普通的 linux 权限,用户将始终能够导航到 /etc 甚至阅读 /etc/groups 等。
我尝试了这两个命令:
setfacl -m u:myuser:0 /
然后 setfacl -m u:myuser:rwx /etc/network/interfaces
但是后来 linux 告诉我 /etc/network/interfaces
上的权限被拒绝,我猜是因为 / 上的限制被优先考虑或者只是在先。
自从我读到之后我就没有尝试过 root jail,那时你仍然可以用 nano 打开其他文件。我这样做对吗?
我现在用谷歌搜索了几个小时并四处玩弄,但还没有找到解决方案。你们能帮我,或者至少给我一些流行语太谷歌/试试吗?
解决方法
哪个用户试图运行
setfacl -m u:myuser:0 /
setfacl -m u:myuser:rwx /etc/network/interfaces
命令?
/etc/network/interfaces 是否属于该用户?
你能分享当前的 getfacl
命令输出吗?
请尽量对用户和操作更具体。
顺便说一下,对于文件,您可以尝试将 -M
选项与 setfacl 一起使用,并与 /etc/network/nterfaces
的所有者等特权用户一起使用。
setfacl - u:myuser:rwx /etc/network/interfaces
你可以试试这个。
,我最终按照本文中的步骤创建了一个 chroot jail:
https://www.tecmint.com/restrict-ssh-user-to-directory-using-chrooted-jail/
通过创建指向文件的硬链接,我需要用户能够进行编辑。我还在可用命令中添加了 nano
。
它就像一个魅力。
我也跳过了子步骤 14 将 ForceCommand internal-sftp
添加到 sshd_config
文件,因为我仍然需要 ssh。
万一有人跑过这篇文章并想添加nano
:
您需要将 /lib/terminfo
及其所有内容添加到您的 /home/myuser/lib/
文件夹中!
我会使用相关的 setuid 编写一个 syscalls(2) C 程序,仔细编译它(成静态可执行文件),让同事审查该 C 代码,并使该可执行文件成为登录 shell(请参阅chmod(1)、execve(2)、seteuid(2)、credentials(7)、shells(5)、elf(5) 和 passwd(5) 和 pam_shells(8)... ) 的特定用户。
编码setuid 可执行文件 时要小心(错误会打开一个巨大的安全漏洞)。阅读Advanced Linux Programming
顺便说一句,一旦您的用户运行 /bin/bash
,他就可以做任何事情。也许您只想允许一个 restricted bash shell?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。