我之前曾问过有关防止用户通过执行以下操作来删除其主目录中的某些关键文件/文件夹的问题:
/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
用户可以访问但不能修改/删除的。