是否可以创建只能使用一个目录的用户?

www*_*com 4 permissions folder directory

现在我已经购买了一台 Ubuntu 云服务器。我今天早上安装了 Webmin,现在我有一个问题。

是否可以创建只能使用一个目录的用户,SVN、FTP、PHP、Python、MySQL、Apache?例如,用户 Kevin 只能使用 /var/www/kevin/? 他可以查看/var/www/ 中的所有内容,但不能执行/写入,并且禁止查看/执行/写入所有其他内容。

Lek*_*eyn 5

在您的情况下,您拥有文件夹及其目录的所有者,例如apache. Kevin是允许读取内容但不能写入或执行内容的用户。所有其他人都被拒绝读取、写入和执行权限。

这非常适合 Linux 文件系统权限系统。

permission  bits
  Read       4
  Write      2
 eXecute     1
Run Code Online (Sandbox Code Playgroud)

每个文件或目录都可以根据所有者、组或其他所有人授予权限。

  • 所有者 ( apache) 可以做任何事情,所以让我们给它读写权限 (4 + 2 = 6)
  • 为将来做准备,如果您需要向其他 Kevin 授予对该文件的读取权限,请创建一个新组,例如apache-users. 然后,添加凯文到该组和该组权限位设置为4- [R EAD)
  • 接下来,拒绝不拥有该文件或不是该apache-users组成员的任何人的所有权限,0

要添加组apache-users并将 Kevin 添加为成员,请转到System -> Users and Groups。打开“本地组”选项卡,然后按“创建新组”。输入组名(apache-users)的组名。在成员处选择 Kevin,然后按->。按Create确认这些更改。

对于文件,您将运行以下命令来更改所有者、组和权限:

sudo chown apache filename
sudo chgrp apache-users filename
sudo chmod 640 filename
Run Code Online (Sandbox Code Playgroud)

目录

除了执行位 ( 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
Run Code Online (Sandbox Code Playgroud)

/var/www/other/ 是一些其他用户的目录,不允许您 (kevin) 进入该目录。