sudo su
不是在shell中运行的命令-它会启动一个新的shell。
新的外壳程序不再运行您的脚本,而运行脚本的旧外壳程序在新脚本继续运行之前等待退出。
该sudo su
命令将启动一个新的外壳。旧的shell等待旧的shell退出并继续执行其余代码。您的脚本在“旧” shell中运行,这意味着这些命令:
cd /home/drupal
touch test.txt
仍然以root用户身份执行,因此这些文件的所有者也是root用户。
您可以将脚本修改为此:
#! /bin/bash
sudo useradd -m drupal
sudo -u drupal bash -c 'cd ~/; touch text2.txt'
它应该工作。该-u
标志根据用户指定执行命令,在这种情况下为“ drupal”
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句