我有一个文件hello.c,带有" hello world" C中的程序。我还在shell上完成了以下操作(UNIX):
$ ls > 1
$ chmod 0 1
$ cc -o hello hello.c
$ chmod 400 hello
$ ./hello > 1
我在1上获得了许可。
为什么我没有在hello上获得权限被拒绝错误?
答案 0 :(得分:1)
因为当你要求shell为命令执行输出重定向时,shell要打开要写入的文件,在调用命令之前。
你的shell会:
1
进行撰写./hello
stdout
至1
./hello
1
拥有权限0o000
,因此第一个操作将失败。