我有一个问题。我想在我的服务器上设置权限。我有以下目录结构:
/var/www/html/project_1
/var/www/html/project_2
/var/www/html/project_3
我也有用户:
user_1
user_2
user_3
我的目标是授予用户对指定目录的权限,例如“user_1”应该只对“project_1”和“project_2”具有权限。
我希望有一种简单的方法来添加和删除用户对目录的权限。我该怎么做?
谢谢帮助。BR
答案1
我不知道这对您来说是否足够“简单”,但可以使用系统中已包含的工具来完成。
chmod
使用和命令可以轻松实现这一点chown
。使用chown
可以设置文件和目录的所有权,使用chmod
可以设置权限。
由于您可能希望多个用户访问单个目录,因此您必须为其创建一个用户组并向其中添加用户:
groupadd g_project_1
useradd -G g_project_1 user_1
#Repeat useradd for every user who is to access project_1
现在您将所有权组设置为project_1
(g_project_1
我不知道是否有必要,但您可能希望保留www-data
为目录的所有权用户),因此您可以执行此命令:
chgrp g_project_1 project_1
现在您需要将目录权限设置为 0770 (rwx*对于用户,具有 rwx 权限;对于组,具有 rwx 权限;对于其他用户,无权访问):
chmod 0770 project_1
为了确保文件和目录在创建时获得相同的所有权,还请执行以下命令:
chmod g+s project_1
对其他项目目录和用户执行类似操作。请先在一个虚拟项目上尝试一下,很可能是我犯了一个错误……
*目录的可执行权限控制某人是否可以进入该目录 ( cd
),而读取权限控制是否可以查看其内容 ( ls
)