linux - 在linux中如何控制gcc生成的文件的权限?

标签 linux gcc file-permissions

我的代码的源代码都属于 unix 组group1:

> ls -l *c
-rw-r--r--  1 user1 group1 4976 Nov  9 13:42 commands.c
-rw-r--r--  1 user1 group1 2347 Nov  9 13:42 env_list.c
-rw-r--r--  1 user1 group1 2468 Nov  9 13:42 job_list.c
-rw-r--r--  1 user1 group1 4453 Nov  9 13:42 jobs.c
-rw-r--r--  1 user1 group1 3278 Nov  9 13:42 smash.c
-rw-r--r--  1 user1 group1 2151 Nov  9 13:42 variable.c

gcc 属于group2:

> ls -l gcc
-rwxrwsr-x  1 toolsusr group2 72 Dec 30  2008 /usr/intel/pkgs/gcc/4.3.2/bin//gcc

出于某种原因,当我编译时,所有目标都被标记为属于 group2。然而,当我编译一个类似的项目时,目标仍然在 group1 下。

我如何控制生成文件的组(以及我在组中时的任何其他权限)?

我正在使用 gcc 4.3.2 和这个版本的 Linux:x86-64_linux_2.6.5_ImageSLES9SP3-3

最佳答案

查看您正在编译的目录的 stick 位。如果设置,它将使写入该目录的所有文件都与该目录本身具有相同的组。如果未设置,它们将拥有正在写入文件的用户(运行 gcc 的用户)的默认组。 你可以使用

chmod +t dir

将粘滞位添加到目录。

评论:

这不是粘性位,而是 setguid 位:

chmod +s dir

关于linux - 在linux中如何控制gcc生成的文件的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4133292/

相关文章:

linux - "find -ls"具有适当的时间样式

linux - DD-WRT Shell脚本Wifi IP和名称添加

c - 对大页面使用 mmap 和 madvise

linux - 编译 curl 库时出错

ansible "sed: can' t读取文件: No such file or directory"

android - 权限拒绝 : reading com. android.providers.downloads.DownloadStorageProvider 需要 android.permission.MANAGE_DOCUMENTS

c - 如何理解程序

linux - Linux系统的OPEN_MAX定义在哪里?

optimization - 矩阵/向量运算的 GCC 优化标志

linux - 权限问题,无法以 root 身份运行脚本