尝试在另一个用户的文件夹下创建文件夹时遇到一些困难/home/devuser1/pubic_html
。我试图避免使用sudo
并寻找替代方案。该文件夹的权限如下:
drwxr-s--- 2 devuser1 www-data 4096 Apr 28 19:40 public_html
或者,假设我使用sudo
前缀,会产生什么影响?我读过,使用sudo
创建文件夹是不好的做法。创建新文件夹后,我仍然将其所有权更改为相关用户。例子:
chown -vR devuser1:www-data /home/devuser1/public_html/$vhost
答案1
使用install
,您可以创建具有特定所有者、组和模式的目录:
install -d -o <user> -g <group> -m <mode> <path>
答案2
sudo -u [username] mkdir /home/[username]/public_html/[folder_name]
工作正常。
据我所知,如果我以同一用户身份登录并在public_html
.
您也可以致电su -c "mkdir /home/[username]/public_html/[folder_name]" [username]
答案3
赋予这些权限,只有目录的所有者或超级用户才能创建子目录。
您可以避免使用额外权限来创建文件夹的唯一方法是将所有权更改为您自己(使用sudo
),创建子目录并最终将所有权返回给所有者,但对我来说这似乎不是一个好的解决方案。
答案4
我尝试做一个mkdir -p /srv/postgres/data/mydir
但是因为
drwxr-xr-x 3 root root 4.0K Apr 7 08:26 srv
有主人root
两者都不install -d -o <user> -g <group> -m <mode> <path>
@用户2313838
也不sudo -u postgres mkdir -p /srv/postgres/data/mydir
行@maGz
解决方案是将其分为两个命令:
sudo mkdir -p /srv/postgres/data/mydir
sudo chown postgres:postgres /srv/postgres -R