现在买了个Ubuntu云服务器,今天早上安装了Webmin,现在有个问题。
是否可以创建只能使用一个目录、SVN、FTP、PHP、Python、MySQL 或 Apache 的用户?例如,用户 Kevin 只能使用 /var/www/kevin/?他可以查看 /var/www/ 中的所有内容,但不能执行/写入,并且禁止查看/执行/写入所有其他内容。
答案1
在您的情况中,您有文件夹及其目录的所有者,例如apache
。Kevin
是允许读取内容但不能写入或执行内容的用户。所有其他用户均被拒绝读取、写入和执行权限。
这非常适合Linux文件系统权限系统。
permission bits
Read 4
Write 2
eXecute 1
可以根据所有者、组或其他所有人授予每个文件或目录的权限。
- 所有者(
apache
)可以执行任何操作,因此我们授予其读写权限(4 + 2 =6
) - 为了将来做好准备,万一您需要授予其他 Kevin 对该文件的读取权限,请创建一个新组,例如
apache-users
。然后,将 Kevin 添加到此组并将组权限位设置为4
(R(读) - 接下来,拒绝不拥有该文件或不是该
apache-users
组成员的任何人的所有权限0
。
要添加群组apache-users
并将 Kevin 添加为成员,请转到系统->用户和组. 打开标签本地团体并按创建新组. 输入群组名称 ( apache-users
)团队名字. 选择 Kevin成员并按->. 按确认这些更改创造。
对于文件,您可以运行以下命令来更改所有者、组和权限:
sudo chown apache filename
sudo chgrp apache-users filename
sudo chmod 640 filename
目录
目录的权限几乎相同,除了执行位 ( 1
)。执行位配置用户是否被允许进入目录,即访问目录内的其他文件和目录。读取位控制您是否可以列出目录的内容 ( ls
)。
因此,如果某个文件夹/dir
的所有者为 root:root(组 root),并且的权限/dir/file
设置为 777,则/dir/file
如果的权限/dir
设置为 666 或 770(请注意缺少的 eXecute 权限),则您无法访问(读取、写入或执行)。
文件夹的权限将变为 750:7
所有者 ( ) 具有读取、写入和执行 ( ) 权限,组 ( ) 具有apache
读取和执行 ( ) 权限,其他任何人都无权限 ( )。5
apache-users
0
对于您的设置,权限变为(*
= 取决于):
location owner group permissions
/ root root 755
/var/ root root 755
/var/www/ root root 755
/var/www/kevin/ kevin * 700 or 750
/var/www/apache/ apache apache-users 750
/var/www/other/ * * 700 or 750
/var/www/anyoneread/ * * 755
/var/www/other/
是其他用户的目录,不允许您(kevin)进入该目录。