stat, fstat, lstat 함수 |
#include <sys/stat.h>
int stat(const char *restrict pathname, struct stat *restrict buf);
int fsat(int filedes, struct stat *buf); int lstat(const char *restrict pathname, struct stat *restrict buf);
반환값 : 성공시 0 , 오류 시 -1 ▶ 파일의 속성을 알려준다. |
#include "apue.h"
|
|
[ls 출력 설명]
- /etc/vi passwd , 실제로 파일을 열어보면 ls 의 출력부분인 ID는 숫자로 저장되어있다.
(1) (2) (3) (4) (5) (6) (7) (8) -rw-r--r-- 1 root root 1999 9월 2 12:30 passwd |
-rw-r--r-- |
첫 글자는 파일과 디렉토리,장치등을 구분하는 기호로 사용하고 나머지 9개 기호는 파일의 사용권한(permission)을 나타냄.(총 10글자)
▶ 첫번째 기호부분 '-' 기호 : file 'd' 기호 : directory 'c' 기호 : Character device 'b' 기호 : Block device 'I' 기호 : link file 사용권한(permission)을 나타내는 9 글자는 rwxrwxrwx와 같은 형태로 표시 첫 번째 줄은 'rwxr-xr-x'의 형태로 표시. r 은 읽기(read), w 는 쓰기(write), x 는 실행(execute) 을 뜻함 첫번째 글자를 뺀 9개 글자는 각각 3개씩 User , Group, Others(User와 Group을 제외한 나머지) 의 사용권한(Permission) 을 나타낸다. 즉,
▶ User : 읽기, 쓰기 허용 Group : 읽기 허용 Others : 읽기 허용 |
1 |
하드링크 번호로 링크된 파일의 숫자를 뜻합니다. 1이 적혀 있으니 1개의 파일이 링크되었다는 것을 알 수있음. |
root |
소유자 ID |
root |
그룹 ID |
1999 |
파일의 크기를 바이트 단위로 표시 |
9월2 |
파일이 만들어지거나 수정된 날짜 |
12:30 |
파일이 만들어지거나 수정된 시간을 표시 |
passwd |
파일 이름 |
사용권한 설정하기 |
|
chmod |
▶ Permission 을 바꿔주는 커맨드
- symbolic mode (
- absolute mode ( 8진법을 이용한 퍼미션 설정 ) r => 4 , w => 2 , x => 1
chmod 444 smart : 0100 0100 0100 => -r--r--r-- chmod 777 smart : 0111 0111 0111 => -rwxrwxrwx
|
chown, chgrp |
▶ user와 group을 바꿔주는 커맨드
chown smart linuxer chgrp smart mygroup
|
/etc/passwd와 /etc/shadow 필드 설명 |
|
/etc/passwd
root:x:0:0:root:/root:/bin/bash ① ②③④ ⑤ ⑥ ⑦ |
/etc/shadow uec:$1$WbVWBFex$LwvDKJ896fP92Exq/YwpP1:15950:0:99999:7 : : : ① ② ③ ④ ⑤ ⑥⑦⑧⑨ |
① 필드 1 : 사용자명 ② 필드 2 : 패스워드(/etc/shadow 파일에 암호화되어 있음) ③ 필드 3 : 사용자 계정 uid ④ 필드 4 : 사용자 계정 gid ⑤ 필드 5 : 사용자 계정 이름(정보) ⑥ 필드 6 : 사용자 계정 홈 디렉토리 ⑦ 필드 7 : 사용자 계정 로그인 쉘 |
① 필드 1 : 사용자명 ② 필드 2 : 패스워드 ( "$1$" + [salt] + "$" + [암호화 된 password] ) ③ 필드 3 : 패스워드 파일 최종 수정일 ④ 필드 4 : 패스워드 변경 최소일 ⑤ 필드 5 : 패스워드 변경 최대일 ⑥ 필드 6 : 패스워드 만료 경고기간 ⑦ 필드 7 : 패스워드 파기 기간(패스워드 파기후 게정 비활성 기간) ⑧ 필드 8 : 계정 만료 기간 ⑨ 필드 9 : 예약 필드 |
※ 참고(shadow의 최종수정일에 대한 세부설명)
15950 / 365 = 43.xxxxx...
1970(컴퓨터에 내장되어있는 년도) + 43 = 2013 ( 년도 )
'UNIX 프로그래밍' 카테고리의 다른 글
2013.09.10_UNIX_7.7(DLL)~setjmp,longjmp 함수 (0) | 2013.09.10 |
---|---|
2013.09.03_정리(수정중) (0) | 2013.09.04 |
2013.09.04_수정중_ (0) | 2013.09.04 |
2013.08.30_UNIX_파일I/O_연산 및 함수 (0) | 2013.08.30 |
2013.08.29_UNIX 프로그래밍_3장_파일 I/O (2) | 2013.08.29 |