我有一个需要运行的程序 sudo
.我使用 mkdir 创建一个目录,但此目录的所有者和组设置为 root。这是有道理的,因为我使用的是 sudo
.我想将所有者和组更改为普通用户,但我不知道该怎么做。我想运行 system("chown $USER:$USER /directory/")
会工作,但我想因为我在 sudo 中,它只会设置为 root。我正在考虑使用 chown ,但我不确定我应该如何获得所有者和组 ID。此外,它的便携性也很好,所以我不想只是硬编码用户/组 ID。
最佳答案
您已经走在正确的道路上, chown 是您要在这里寻找的命令。
您可以将要创建的两个命令串在一起,然后使用分号一起拥有该目录。
须藤 mkdir 测试; sudo chown $USER:$USER 测试
我已经在 ubuntu 18.04 和 ubuntu 20.04 上测试过了,因为那是你的标签。 $USER 变量解析为您最初登录的用户,而不是 root,只要您在上述命令的开头使用它即可。请注意,在执行 chown 部分时,您需要再次调用 sudo ;结束 sudo 海拔。
关于在 sudo 中运行程序时将目录的所有权更改为用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63145297/