CHMOD
Section: 리눅스 프로그래머 메뉴얼
(2)
Updated: 1997년 12월 10일
Index
Return to Main Contents
이름
chmod, fchmod - 파일의 권한 변경.
사용법
#include <sys/types.h>
#include <sys/stat.h>
int chmod(const char *path, mode_t mode);
int fchmod(int fildes, mode_t mode);
설명
path나 fildes참조에 의해 주어진 파일의 모드를 바꾼다.
모드는 아래와 같이 or'ing에의해 설명할 수 있다;
-
- S_ISUID
-
04000 실행을 위한 사용자 ID설정.
- S_ISGID
-
02000 실행을 위한 그룹 ID설정.
- S_ISVTX
-
01000 스티키 비트.
- S_IRUSR (S_IREAD)
-
04000 읽기.
- S_IWUSR (S_IWRITE)
-
02000 쓰기.
- S_IXUSR (S_IEXEC)
-
00100 실행/찾기
- S_IRGRP
-
00040 그룹에 의한 읽기
- S_IWGRP
-
00020 그룹에 의한 쓰기.
- S_IXGRP
-
00010 그룹에 의한 실행/찾기.
- S_IROTH
-
00004 다른사람이 읽기
00004 read by others
- S_IWOTH
-
00002 다른사람이 쓰기
- S_IXOTH
-
00001 다른사람이 실행/찾기.
프로세스의 유효 UID는 0이거나 파일의 소유자와 같아야 한다.
프로세스의 유효UID가 0이 아니고 파일의 그룹이 프로세스의 그룹 유효ID나 추가 그룹
ID중 하나가 다르다면 S_ISGID 비트가 꺼질것이다. 하지만 이것은 에러를 유발하지 않는다.
NFS파일 시스템에서 접근제어는 서버가 하기 때문에 권한 제한은 이미 열린 파일에 영
향을 줄것이지만, 열린 파일은 클라이언트가 다루게 된다.
반환값
성공시, 0을 반환한다. 실패시, -1을 반환하고 errno가 적절히 설정된다.
에러
- EPERM
-
유효 UID가 파일의 소유자와 같지 않고 0이 아니다.
- EROFS
-
파일이 read-only 파일시스템상에 위치했다.
- EFAULT
-
path
가 접근 불가 공간에 있다.
- ENAMETOOLONG
-
path
가 너무 길다.
- ENOENT
-
파일이 없다.
- ENOMEM
-
커널 메모리가 부족하다.
- ENOTDIR
-
path가 디렉토리가 아니다.
- EACCES
-
찾기 권한이 없다.
- ELOOP
-
링크가 너무 많다.
path.
- EIO
-
I/O 에러.
fchmod의 일반적인 에러는 아래와 같다:
- EBADF
-
파일 디스크립터 fildes가 적절하지 않다.
- EROFS
-
위 참고.
- EPERM
-
위 참고.
- EIO
-
위 참고.
호환
chmod
명령은 SVr4, SVID, POSIX, X/OPEN, 4.4BSD에 따른다.
SVr4, EINTR, ENOLINK, EMULTIHOP는 반환하지만 ENOMEM은 반환하지 않는다.
fchmod
명령은 4.4BSD와 SVr4에 따른다.
관련 항목
open(2),
chown(2),
execve(2),
stat(2)
역자
ASPLINUX<man@asp-linux.co.kr>, 2000년 7월 29일
Index
- 이름
-
- 사용법
-
- 설명
-
- 반환값
-
- 에러
-
- 호환
-
- 관련 항목
-
- 역자
-
This document was created by
man2html,
using the manual pages.
Time: 08:07:01 GMT, March 25, 2004