我想创建一个用户,使他/她无法执行任何文件
我正在使用 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 文件系统上。