用户限制(阻止用户执行文件)

用户限制(阻止用户执行文件)

我想创建一个用户,使他/她无法执行任何文件

我正在使用 Ubuntu 11.10

更新

我尝试chmod 700 /bin/sh + /bin/chmod以 root 身份

这样,用户是否有任何方式或可能性可以执行文件?

有人能给我提供一些分步说明吗?

答案1

将用户的 umask 属性设置为 113。

用户文件创建模式掩码 (umask) 用于确定新创建文件的文件权限。它可用于控制新文件的默认文件权限。它是一个四位八进制数。umask 可以使用八进制值设置或表示

按如下方式计算任何用户的 umask:

八进制 umask 是通过使用按位非对参数的一元补码进行按位与来计算的。八进制表示法如下:

八进制值 :权限
0 :读、写和执行
1 :读和写
2 :读和执行
3 :只读
4 :写和执行
5 :只写
6 :只执行
7 :无权限

如果你想限制新创建的用户执行任何文件,请将其 umask 设置为 113(这意味着他只能读取和写入该文件,他的组只能读取和写入该文件,而其他任何人都只能读取该文件)

Linux 中任何用户的默认 umask 都是 002,而 root 用户的默认 umask 是 022。

您可以像这样为任何用户设置默认 umask:1) 打开 /etc/profile 2) 根据您想要授予用户的默认权限修改以下行“umask 022”。

查看 umask 的手册页以获取更多参考

man umask

答案2

做这样的事情的一种方法是将单独的文件系统作为用户 homedir 在 noexec 中挂载:

创建一个带有 ext4 文件系统的文件映像(512M):

~# dd if=/dev/zero of=/var/homedir_image seek=512 count=512 bs=1M

~# mkfs.ext4 /var/homedir_image

然后使用 noexec 选项将其添加到 /etc/fstab:

/var/homedir_image /home/user ext4 noexec,loop 0 2

然后将该图像挂载到未来用户的目录中:

~# mkdir /home/user && mount /home/user

并创建所需的用户:

~# adduser --home /home/user user

用户将能够创建具有 x 权限的文件,但不能执行任何事物位于他的 homedir 文件系统上。

相关内容