我在使用mkdir系统调用时获得的权限存在问题。我知道一个事实,我称之为正确,它是八进制,所有这一切。我已经测试了模式输入是一个整数,我可以用数学运算,绝对是511的十进制。
#include <sys/stat.h>
#include <sys/types.h>
#include <cstdlib>
int main (int argc, char* argv[]) {
if (mkdir(argv[argc-1], 0777) == -1) {
perror(argv[0]);
return EXIT_FAILURE;
} // if
return EXIT_SUCCESS;
} // main
但是当我创建一个目录并检查权限时,它始终是0755而不是0777。
Access: (0755/drwxr-xr-x)
当我使用mkdir实用程序或chmod或者它可以完美地设置为0777时。这只是系统调用无效。
它也适用于较小的权限,就像我将模式设置为0111一样。
答案 0 :(得分:4)
你的umask是0022?
用
检查@if (Auth::check())
//User is logged in
//HTML that we want to show to authenticated user
@else
//User is not logged in
//HTML that we want to show to general public
@endif
来自你的shell。
在这种情况下,使用
将umask设置为零$ umask
再次尝试使用您的程序