在 sudo 中运行程序时将目录的所有权更改为用户

标签 c linux ubuntu directory permissions

我有一个需要运行的程序 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/

相关文章:

python - 使python程序在linux下独立可执行

linux - 通过特定客户端连接到 centos 服务器时出错

java - jni 中的 ASCII 到 HEX 的转换得到错误的值

c - 将十六进制数解释为十进制

c++ - gcc 是否有丢弃 -g 标志的选项?

linux - 打印第一行部分,直到到达第一个空间

ubuntu - 如何为 jenkins build设置 chroot?

ubuntu - ubuntu中的hadoop命令和SLF4J错误信息cdh

c - Android使用C(ndk)从 Assets 文件夹中读取文本文件

c - Extended Inline Assembly GCC-编译时表达式错误后错误的寄存器名称和垃圾 'done'