我在C中有一个带有“ hello world”程序的文件hello.c。我还在shell(UNIX)上执行了以下操作:
$ ls > 1
$ chmod 0 1
$ cc -o hello hello.c
$ chmod 400 hello
$ ./hello > 1
而且我在1上被拒绝了许可。
为什么我没有收到“拒绝权限”错误消息?
因为当您要求外壳程序执行命令的输出重定向时,在调用命令之前,外壳程序将打开要写入的文件。
您的外壳将:
1
写作./hello
stdout
到1
./hello
1
具有权限0o000
,因此第一个操作将失败。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句