我的代码的源代码都属于 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/