나는 코드의 일부가액세스 모드() SYS 호출 리눅스 C
if(mkdir(name, 0666/*permission*/) == -1)
{
printf("ERROR");
return ERROR;
}
나는 다른 사람에 대한 쓰기 권한이 그것을 원하지만
drw-rw-r-- 2 atg atg 4096 Oct 3 17:54 f,,,
같이 새로 생성 된 디렉토리는 보인다 즉
drw-rw-rw-
입니다.
내가 cd
를 사용하여 디렉토리를 입력하려고 할 때, 나는 bash는
얻을 : CD : F :이처럼, 그것은 실행 권한으로 만드는 경우 권한이
거부 :
if(mkdir(name, 0777/*permission*/) == -1)
{
printf("ERROR");
return ERROR;
}
나는
drwxrwxr-x 2 atg atg 4096 Oct 3 18:00 f
를 얻을 수
cd
으로 디렉토리를 입력 할 수 있습니다. 내가 왜 쓰기 권한이
DR-XR-XR-X 2 ATG의 ATG 4096 10월 3일 18시 2분 F
설정되지 얻을
if(mkdir(name, 0777/*permission*/) == -1)
{
printf("ERROR");
return ERROR;
}
와
?
내가 umask를 확인
case RD_WRT_DATA:
permission = 0666;
break;
if(mkdir(name, permission) == -1)
{
printf("ERROR");
return ERROR;
}
else
{
return SUCCESS;
}
if(chmod(name, permission) == -1)
{
printf("ERROR");
return ERROR;
}
else
{
return SUCCESS;
}
로 chmod를 사용 : 내가 얻을
여전히grep UMASK /etc/login.defs
UMASK 022
권한은 -> 나는
drw-rw-r-- 2 atg atg 4096 Oct 3 18:15 f
을 umask를 변경해야합니까? 그 일을하지 않으면 어떤 대안이 있습니까?
가'이다 DRW--RW RW-'_ - 당신이 확신? 즉, 아무도 디렉토리 내의 아무 것도 액세스 할 수 없습니다. 당신은 이름 (x' 당신은'perror는 사용해야 – mata
거의 쓸모가'없이'r'을 (당신이 무엇을 알고있는 경우) x'가 디렉토리의 콘텐츠에 액세스하고,'r'는 내용을 나열하는 것이 아니라 '필요)'(대신의 printf ("ERROR"'의) 변화와의 umask를 복원하는 것은 여전히 멀티 스레드 애플리케이션에서 안전하지이라고 –