以root身份运行bash脚本会改变文件的所有权吗?

我知道在备份副本后,我应该只测试我的脚本之一,但我想知道是否会有任何区别,因为我有几个脚本可以在多个文件上执行相同的任务。今天我被诱惑运行一个或两个以root身份运行。相反,我选择“谨慎起见”并来到这里。
谢谢

2这取决于脚本,但通常情况下,如果您以sudo(作为root用户)运行脚本,所有创建或修改的内容都将归属于root。这可能会导致问题,特别是当您运行图形界面应用程序时,这些应用程序通常在您的主目录中有配置文件。在这种情况下,您应该使用sudo -H gui-program,例如sudo -H gedit,但建议您使用文本模式编辑器,例如sudo nano,当您需要提升权限时。 - sudodus
4欢迎来到Ask Ubuntu。如果一个文件被读取,所有权不会改变。然而,如果一个文件被创建,它将以'root'作为所有者。如果文件被添加到,所有权不应该改变(例如,使用sudo cat >>file命令不会改变'file'的所有权)。 - guiverc
1个回答

如果你没有说明脚本的具体功能,那么就无法确定,但是这里有一个关于不同文件操作的简要介绍:

  • 读取/写入现有文件:不会改变文件所有权
    • 例如:cat/tee
  • 创建新文件:是的,新文件将由root所有
    • 例如:touch
  • 更改文件所有权:当然可以
    • 例如:chown root
  • 更改文件权限:不行
    • 例如:chmod

脚本是用命令行可执行文件来修改图像文件的。我不希望看到文件的所有权从我的用户名变为root,而我并不打算让脚本改变它。 - Steve Wright