我们最近拥有了一台 Linux 服务器,服务器上有一个可以运行的站点创建脚本,但似乎缺少必要的 chmod 文件夹权限(755?)。
我认为我们需要在下面的代码中添加一个 chmod 行,以便将其应用于正确的“新创建”文件夹
我对 Linux 的了解很基础,因此任何帮助我都会很感激。
echo "Please enter the domain name"
read domainname
echo "Please enter a username"
read username
echo "Please enter a password. This will be the FTP password, and MySQL Database password if used"
read password
echo "Please enter a database name. If empty, one will not be created"
read databasename
passcrypt=$(perl -e 'print crypt($ARGV[0], "password")' $password)
mkdir /home/$domainname
useradd -g webusers -d /home/$domainname -p $passcrypt $username
chown $username:webusers /home/$domainname
(我删除了最后的一些代码,因为我怀疑它可能需要保密)
谢谢
答案1
由于您正在创建webusers
目录的组所有者,如果运行 Web 服务器的用户属于该组,则您不需要chown
。
例如,Ubuntu 上 webserver 进程的常用用户是www-data
,该用户属于该www-data
组。通过使任何目录归该www-data
组所有,webserver 将能够使用常规组权限(默认情况755
下)访问该目录。
答案2
不,这取决于您想如何保护文件和目录的安全性。
默认情况下授予以下权限,
目录 777 文件 666
7 表示二进制的 111,转换成二进制后加入到目录信息表中,翻译为
111 111 111
读取命令执行/读取命令执行/读取命令执行
用户/组/通用
因此,如果您想提供更多安全性,则添加 chmod,否则不需要执行任何操作
默认目录权限为 777。默认文件权限为 666。因此,如果您的 umask 值为 002(或 0002),则最终目录权限为 775,文件权限为 664。775 数字表示用户“读、写、执行”,组“读、写、执行”,其他人“读、执行”。664 数字表示用户“读、写”,组“读、写”,其他人“读”。来源