linux - 是否可能/建议让用户不拥有自己的主文件夹?

标签 linux permissions

<分区>

我之前曾问过有关防止用户通过执行以下操作删除其主目录中的某些关键文件/文件夹的问题:

/home
└── [-rw-rw-r-- daedalus    ]  daedalus
    ├── [-rw-rw-r-- root    ]  do_not_delete_file.cpp
    ├── [-rw-rw-r-- root    ]  do_not_delete_file.html
    ├── [-rw-rw-r-- root    ]  do_not_delete_file.php
    ├── [drwxrwxr-x root    ]  do_not_delete_folder
    │   ├── [-rw-rw-r-- root    ]  do_not_delete_file.cpp
    │   ├── [-rw-rw-r-- root    ]  do_not_delete_file.html
    │   └── [-rw-rw-r-- root    ]  do_not_delete_file.php
    └── [-rw-rw-r-- daedalus  ]  index.html

但这失败了,因为用户 daedalus 对他们自己的 /home/daedalus 文件夹具有写入权限,因此具有删除权限。因此,虽然他们无法修改,例如 do_not_delete_file.php,但他们始终可以删除它,然后再替换它。

但是如果我有这样的东西呢

/home
└── [-rw-rw-r-- root    ]  daedalus
    ├── [-rw-rw-r-- root    ]  do_not_delete_file.cpp
    ├── [-rw-rw-r-- root    ]  do_not_delete_file.html
    ├── [-rw-rw-r-- root    ]  do_not_delete_file.php
    ├── [drwxrwxr-x root    ]  do_not_delete_folder
    │   ├── [-rw-rw-r-- root    ]  do_not_delete_file.cpp
    │   ├── [-rw-rw-r-- root    ]  do_not_delete_file.html
    │   └── [-rw-rw-r-- root    ]  do_not_delete_file.php
    ├── [drwxrwxr-x daedalus    ]  Documents
    └── [-rw-rw-r-- root  ]  index.html

我假设这可以通过一个小的 chmod 操作来实现,但是当程序自然地假设它们对主目录具有写权限时,它会导致许多问题吗?如果这是个坏主意,我能否就如何解决这个问题获得一些其他建议。

编辑: 我问这个问题的原因与 LAMP 编程有关。我正在创建一系列 VHost,即:

  • www.user1.example.com
  • www.user2.example.com
  • ...
  • www.userN.example.com

我希望将 DocRoot 设置为:

  • /home/user1
  • /home/user2
  • ...
  • /home/userN

但是,我在为个人用户授予过多/过少的自由方面苦苦挣扎。在最简单的情况下,我可能想要一个用户可以访问但不能修改/删除的 do_not_delete_folder

最佳答案

这有点棘手,但您可以使用 Sticky Bit 做到这一点。

http://en.wikipedia.org/wiki/Sticky_bit

Linux 内核忽略 Sticky Bit,目录除外。对于目录,linux 只允许 super 用户和所有者删除、重命名或取消链接文件。它不允许有权使用组权限访问文件的用户。

比如我的用户名为grape,是grape组的成员

要添加 Sticky Bit,请使用 chmod:

chmod +t [file]

在这里,您可以创建一个目录,用户有权使用组,但归 root 所有

drwxrwxr-T 2 root grape 4096 2012-04-19 20:49 st

在这种情况下,用户仍然可以在 st 中创建/删除自己的文件,但不能删除 root 的文件,即使用户具有写权限:

-rwxrwxrwx 1 root  root  0 2012-04-19 20:45 test 
-rw-rw-r-- 1 grape grape 0 2012-04-19 20:56 test2

我仍然可以读/写这两个文件,但只有我拥有的文件可以删除/移动

关于linux - 是否可能/建议让用户不拥有自己的主文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10238751/

相关文章:

linux - 如何在 grep 命令中放入变量进行搜索?

android - 为什么Android APP不需要网络权限,还能上网?

java - 使用 SecurityManager 通过代码提升 Java 权限

c# - 如何远程调用MySQL中的用户授予所有权限?

linux - Subversion Hook 问题

linux - 在 Linux 中安装和构建 Boost 库

c - msgrcv() 中的错误 :receiving data through message queue in C

linux - 无法访问 Azure 云上 Linux VM 上托管的应用程序

linux - bash 提示用户编辑字符串并输入

mysql - Django,权限错误:OSError at/upload/[Errno 13] Permission denied: