OpenSCManager FAILED 5 Error
OpenSCManager FAILED 5위의 에러가 나타난다면 CLI의 경우에는 관리자 권한으로 CMD를 시작한 후에 해보자. 그럼 작동할 것이다.
2015.09.18
KPROCESS struct
typedef struct _KPROCESS { DISPATCHER_HEADER Header; LIST_ENTRY ProfileListHead; ULONG DirectoryTableBase; ULONG Unused0; KGDTENTRY LdtDescriptor; KIDTENTRY Int21Descriptor; WORD IopmOffset; UCHAR Iopl; UCHAR Unused; ULONG ActiveProcessors; ULONG KernelTime; ULONG UserTime; LIST_ENTRY ReadyListHead; SINGLE_LIST_ENTRY SwapListEntry; PVOID VdmTrapcHandler; LIST_ENTRY ThreadListHead; ULONG ProcessL..
2015.09.14
EPROCESS struct
typedef struct _EPROCESS { KPROCESS Pcb; EX_PUSH_LOCK ProcessLock; LARGE_INTEGER CreateTime; LARGE_INTEGER ExitTime; EX_RUNDOWN_REF RundownProtect; PVOID UniqueProcessId; LIST_ENTRY ActiveProcessLinks; ULONG QuotaUsage[3]; ULONG QuotaPeak[3]; ULONG CommitCharge; ULONG PeakVirtualSize; ULONG VirtualSize; LIST_ENTRY SessionProcessLinks; PVOID DebugPort; union { PVOID ExceptionPortData; ULONG Excep..
2015.09.14
GDB 사용법
GDB 사용법 *참조도서: "유닉스 리눅스 프로그래밍 필수 유틸리티" GDB 사용 방법 GDB를 이용하기 위해서는 컴파일 과정에서 디버깅 정보를 삽입해야 한다. 컴파일 시 옵션 'g' 이용 $ gcc -g -o main main.c 컴파일이 정상 종료 되면 GDB를 실행한다. gdb [프로그램명] $ gdb main gdb [프로그램명] [프로세스PID] $ gdb main 1928 GDB가 정상 실행되면 터미널의 프롬프트가 (gdb)로 바뀌게 된다. 종료방법에는 크게 두가지가 있다. ctrl + d (gdb) q (gdb) quit 옵션에 따라 실행중인 프로그램의 소스를 다양한 방법으로 볼 수 있다. l(list) list 10 list [함수명] list - //이전 10라인을 출력한다. list [..
2015.09.05
Kali linux 부팅 디스크 만들기
이걸로 유일하게 만들어졌다
2015.08.21
원격접속과 FTP
#Telnet & SSH 1.Telnet 텔넷 사용을 위해서는 텔넷 클라이언트와 텔넷 서버가 필요. Telnet은 수퍼데몬에 의해 동작하기에 xinetd를 설치해야한다. sudo apt-get install xinetd ... sudo apt-get install telnetd ... 텔넷 서버를 동작시키려면 /etc/xinetd.conf 파일을 설정해야함 service telnet disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure = USERID ~ :wq! 를 추가해야함 그후에 sudo /etc/init.d/xinetd restart 를 통해 활성..
2015.08.16
파일의 접근 권한,setuid,gid,스티키비트,chmod
#파일의 접근 권한ls -l 을 할경우-파일의 종류-접근권한표시-하드링크개수-로그인id-그룹id-파일크기-최종수정날짜-파일명 flie [filename] : 지정한 파일의 종류를 알려준다 groups [username] : 사용자가 속한 그룹을 알려준다. 표기방법 소유자 그룹 기타사용자 rwx rwx rwx접근권한 변경 chmod [option] file&directoryname *기호모드 u:파일소유자 g:소유자가 속한그룹 o:소유자와 그룹이외의 기타사용자 a:전체사용자 +:권한부여 -:권한제거 =:접근권한설정 r:읽기 w:쓰기 x:실행 *숫자모드 0-7 0-7 0-7 r-x : 4 0 1 = 5 rw- : 4 2 0 = 6 rwx : 4 2 1 = 8 rwxrwxrwx = 777 rwxr-xr-x =..
2015.08.16
리다이렉션
#입출력 방향바구기 파일 디스크립터0 stdin 명령어의 표준입력1 stdout 명령어의 표준출력2 stderr 명령어의 표준오류 표준 입출력 장치를 파일로 바꾸는 것을 '리다이렉션'이라한다.-출력 리다이렉션 파일 덮어쓰기 : > 명령 1> 파일이름 명령 > 파일이름 (확인을 할때는 cat을 통해 확인을 한다.) 파일에 내용추가 : >> 명령 >> 파일이름 -오류 리다이렉션 오류메세지를 위의 출력 리다이렉션처럼 > 으로 한다면 리다이렉션이 되지 않는다. 명령 2> 파일이름 ***결과를 무조건 '>'으로 담을수 있는 것이아니라 성공메세지는 1> 을 통하여 실패메세지는 2>를 통하여 리다이렉션 할 수 있다. //한번에 리다이렉션하기 ls ./abc>ls.out 2>ls.err //오류 메세지 버리기 /dev..
2015.08.16

OpenSCManager FAILED 5

위의 에러가 나타난다면 CLI의 경우에는 관리자 권한으로 CMD를 시작한 후에 해보자. 그럼 작동할 것이다.


'O / S > Window' 카테고리의 다른 글

Memory.dmp  (0) 2015.10.09
Jump List App ID  (0) 2015.09.27
KPROCESS struct  (0) 2015.09.14
EPROCESS struct  (0) 2015.09.14
Windows System Error Codes  (0) 2015.07.06

KPROCESS struct

Kail-KM
|2015. 9. 14. 21:29
typedef struct _KPROCESS
{
     DISPATCHER_HEADER Header;
     LIST_ENTRY ProfileListHead;
     ULONG DirectoryTableBase;
     ULONG Unused0;
     KGDTENTRY LdtDescriptor;
     KIDTENTRY Int21Descriptor;
     WORD IopmOffset;
     UCHAR Iopl;
     UCHAR Unused;
     ULONG ActiveProcessors;
     ULONG KernelTime;
     ULONG UserTime;
     LIST_ENTRY ReadyListHead;
     SINGLE_LIST_ENTRY SwapListEntry;
     PVOID VdmTrapcHandler;
     LIST_ENTRY ThreadListHead;
     ULONG ProcessLock;
     ULONG Affinity;
     union
     {
          ULONG AutoAlignment: 1;
          ULONG DisableBoost: 1;
          ULONG DisableQuantum: 1;
          ULONG ReservedFlags: 29;
          LONG ProcessFlags;
     };
     CHAR BasePriority;
     CHAR QuantumReset;
     UCHAR State;
     UCHAR ThreadSeed;
     UCHAR PowerState;
     UCHAR IdealNode;
     UCHAR Visited;
     union
     {
          KEXECUTE_OPTIONS Flags;
          UCHAR ExecuteOptions;
     };
     ULONG StackCount;
     LIST_ENTRY ProcessListEntry;
     UINT64 CycleTime;
} KPROCESS, *PKPROCESS;

출처 : http://www.nirsoft.net/kernel_struct/vista/KPROCESS.html

'O / S > Window' 카테고리의 다른 글

Memory.dmp  (0) 2015.10.09
Jump List App ID  (0) 2015.09.27
OpenSCManager FAILED 5 Error  (0) 2015.09.18
EPROCESS struct  (0) 2015.09.14
Windows System Error Codes  (0) 2015.07.06

EPROCESS struct

Kail-KM
|2015. 9. 14. 21:28
typedef struct _EPROCESS
{
     KPROCESS Pcb;
     EX_PUSH_LOCK ProcessLock;
     LARGE_INTEGER CreateTime;
     LARGE_INTEGER ExitTime;
     EX_RUNDOWN_REF RundownProtect;
     PVOID UniqueProcessId;
     LIST_ENTRY ActiveProcessLinks;
     ULONG QuotaUsage[3];
     ULONG QuotaPeak[3];
     ULONG CommitCharge;
     ULONG PeakVirtualSize;
     ULONG VirtualSize;
     LIST_ENTRY SessionProcessLinks;
     PVOID DebugPort;
     union
     {
          PVOID ExceptionPortData;
          ULONG ExceptionPortValue;
          ULONG ExceptionPortState: 3;
     };
     PHANDLE_TABLE ObjectTable;
     EX_FAST_REF Token;
     ULONG WorkingSetPage;
     EX_PUSH_LOCK AddressCreationLock;
     PETHREAD RotateInProgress;
     PETHREAD ForkInProgress;
     ULONG HardwareTrigger;
     PMM_AVL_TABLE PhysicalVadRoot;
     PVOID CloneRoot;
     ULONG NumberOfPrivatePages;
     ULONG NumberOfLockedPages;
     PVOID Win32Process;
     PEJOB Job;
     PVOID SectionObject;
     PVOID SectionBaseAddress;
     _EPROCESS_QUOTA_BLOCK * QuotaBlock;
     _PAGEFAULT_HISTORY * WorkingSetWatch;
     PVOID Win32WindowStation;
     PVOID InheritedFromUniqueProcessId;
     PVOID LdtInformation;
     PVOID VadFreeHint;
     PVOID VdmObjects;
     PVOID DeviceMap;
     PVOID EtwDataSource;
     PVOID FreeTebHint;
     union
     {
          HARDWARE_PTE PageDirectoryPte;
          UINT64 Filler;
     };
     PVOID Session;
     UCHAR ImageFileName[16];
     LIST_ENTRY JobLinks;
     PVOID LockedPagesList;
     LIST_ENTRY ThreadListHead;
     PVOID SecurityPort;
     PVOID PaeTop;
     ULONG ActiveThreads;
     ULONG ImagePathHash;
     ULONG DefaultHardErrorProcessing;
     LONG LastThreadExitStatus;
     PPEB Peb;
     EX_FAST_REF PrefetchTrace;
     LARGE_INTEGER ReadOperationCount;
     LARGE_INTEGER WriteOperationCount;
     LARGE_INTEGER OtherOperationCount;
     LARGE_INTEGER ReadTransferCount;
     LARGE_INTEGER WriteTransferCount;
     LARGE_INTEGER OtherTransferCount;
     ULONG CommitChargeLimit;
     ULONG CommitChargePeak;
     PVOID AweInfo;
     SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo;
     MMSUPPORT Vm;
     LIST_ENTRY MmProcessLinks;
     ULONG ModifiedPageCount;
     ULONG Flags2;
     ULONG JobNotReallyActive: 1;
     ULONG AccountingFolded: 1;
     ULONG NewProcessReported: 1;
     ULONG ExitProcessReported: 1;
     ULONG ReportCommitChanges: 1;
     ULONG LastReportMemory: 1;
     ULONG ReportPhysicalPageChanges: 1;
     ULONG HandleTableRundown: 1;
     ULONG NeedsHandleRundown: 1;
     ULONG RefTraceEnabled: 1;
     ULONG NumaAware: 1;
     ULONG ProtectedProcess: 1;
     ULONG DefaultPagePriority: 3;
     ULONG PrimaryTokenFrozen: 1;
     ULONG ProcessVerifierTarget: 1;
     ULONG StackRandomizationDisabled: 1;
     ULONG Flags;
     ULONG CreateReported: 1;
     ULONG NoDebugInherit: 1;
     ULONG ProcessExiting: 1;
     ULONG ProcessDelete: 1;
     ULONG Wow64SplitPages: 1;
     ULONG VmDeleted: 1;
     ULONG OutswapEnabled: 1;
     ULONG Outswapped: 1;
     ULONG ForkFailed: 1;
     ULONG Wow64VaSpace4Gb: 1;
     ULONG AddressSpaceInitialized: 2;
     ULONG SetTimerResolution: 1;
     ULONG BreakOnTermination: 1;
     ULONG DeprioritizeViews: 1;
     ULONG WriteWatch: 1;
     ULONG ProcessInSession: 1;
     ULONG OverrideAddressSpace: 1;
     ULONG HasAddressSpace: 1;
     ULONG LaunchPrefetched: 1;
     ULONG InjectInpageErrors: 1;
     ULONG VmTopDown: 1;
     ULONG ImageNotifyDone: 1;
     ULONG PdeUpdateNeeded: 1;
     ULONG VdmAllowed: 1;
     ULONG SmapAllowed: 1;
     ULONG ProcessInserted: 1;
     ULONG DefaultIoPriority: 3;
     ULONG SparePsFlags1: 2;
     LONG ExitStatus;
     WORD Spare7;
     union
     {
          struct
          {
               UCHAR SubSystemMinorVersion;
               UCHAR SubSystemMajorVersion;
          };
          WORD SubSystemVersion;
     };
     UCHAR PriorityClass;
     MM_AVL_TABLE VadRoot;
     ULONG Cookie;
     ALPC_PROCESS_CONTEXT AlpcContext;
} EPROCESS, *PEPROCESS;


'O / S > Window' 카테고리의 다른 글

Memory.dmp  (0) 2015.10.09
Jump List App ID  (0) 2015.09.27
OpenSCManager FAILED 5 Error  (0) 2015.09.18
KPROCESS struct  (0) 2015.09.14
Windows System Error Codes  (0) 2015.07.06

GDB 사용법

Kail-KM
|2015. 9. 5. 02:37

GDB 사용법


*참조도서: "유닉스 리눅스 프로그래밍 필수 유틸리티"

GDB 사용 방법

<<실행>>
GDB를 이용하기 위해서는 컴파일 과정에서 디버깅 정보를 삽입해야 한다.

    컴파일 시 옵션 'g' 이용
    $ gcc -g -o main main.c

컴파일이 정상 종료 되면 GDB를 실행한다.

    gdb [프로그램명]
    $ gdb main
    gdb [프로그램명] [프로세스PID]
    $ gdb main 1928

GDB가 정상 실행되면 터미널의 프롬프트가 (gdb)로 바뀌게 된다.

<<종료>>
종료방법에는 크게 두가지가 있다.

    ctrl + d
    (gdb) q
    (gdb) quit

<<소스보기>>
옵션에 따라 실행중인 프로그램의 소스를 다양한 방법으로 볼 수 있다.

    l(list)
    list 10
    list [함수명]
    list -  //이전 10라인을 출력한다.
    list [파일명]:[함수명]
    list [파일명]:10

list 명령어를 사용하면 소스코드가 10줄 단위로 출력된다.
다음의 명령을 통해 출력단위를 변경할 수 있다.

    set listsize 20

<<세그멘테이션 폴트가 발생했을대>>
컴파일한 프로그램을 실행했을때 segmentation fault 가 발생하여
비정상 종료되었다면 다음의 명령어를 통해 오류 지점을 확인할 수 있다.

    (gdb) r(run)

run 명령어는 GDB가 프로그램을 실행시켜 이상이 발생했을때의 파일과 지점을 출력해준다.
또한 관련 함수 또는 변수에 담긴 값을 출력하여 오류수정에 많은 도움을 준다.

오류 지점에 도달하기 전 과정을 확인하기 위해서는 다음 명령어를 이용하면 된다.

    (gdb) bt

bt명령어는 백트레이스로 프로그램 스택을 역으로 탐색한다.

<<브레이크포인트>>
브레이크포인트는 다음의 방법들을 통해 설정 가능하다.

    (GDB) b(break) [함수명]
    (GDB) break 10
    (GDB) break [파일명]:[함수명]
    (GDB) break [파일명]:10
    (GDB) break +2  //현재 행에서 2개 행 이후 브레이크포인트 설정
    (GDB) break -2  //현재 행에서 2개 행 이전 브레이크포인트 설정
    (GDB) break *0x8049000  //메모리주소에 설정(어셈블리로 디버깅시 이용)
    (GDB) break 10 if var == 0  //var 변수의 값이 0일때 10번 행에 설정

브레이크포인트의 발동 조건은 다양하게 변경 가능하다.

    (GDB) condition [N] var == 0   //var변수가 0일때 N번 브레이크포인트 동작
    (GDB) condition [N] func(i) > 5

현재 설정된 브레이크포인트의 목록은 다음의 명령으로 확인 가능하다.

    (GDB) info break

브레이크포인트는 GDB가 종료될때까지 유효하다.
따라서 필요없을때는 다음의 방법들을 통해 설정을 지운다.

    (GDB) cl(clear) [함수명]
    (GDB) clear 10
    (GDB) clear [파일명]:[함수명]
    (GDB) clear [파일명]:10
    (GDB) d   //모든 브레이크포인트 지움
    (GDB) disable br  //모든 브레이크포인트 비활성화
    (GDB) disable br 1 3  //1번, 3번 브레이크포인트 비활성화
    (GDB) ensable br  //모든 브레이크포인트 활성화
    (GDB) ensable br 1 3  //1번, 3번 브레이크포인트 활성화

<<프로그램 실행>>
프로그램의 실행은 run 명령어를 이용한다.
만일 이미 실행중일때는 재실행한다.

    (gdb) r(run)

프로그램 실행시 인자를 지정하기 위해서는 다음과 같이 이용한다.

    (gdb) run arg1 arg2

실행중인 프로그램을 종료할 때는 kill 명령어를 이용한다.

    (gdb) k(kill)

현재 실행중인 행의 수행을 멈추기 위해서는 step 명령어를 이용한다.
step 명령어는 한행씩 동작하도록 한다. next 명령어와는 함수 호출시 다른 결과를 보인다.

    (gdb) s(step)
    (gdb) step 6   //step을 6번 수행

현재 행의 실행이 멈춘상태에서 다음 행을 실행하기 위해서는

    (gdb) n(next)
    (gdb) next 6   //next를 6번 수행

만일 step명령을 이용중 루프에 빠져 나오지 못할경우에는 until 명령어를 이용한다.

    (gdb) u(until)

한행씩이 아닌 다시 연달아서 실행하기 위해서는

    (gdb) c(continue)

함수가 매우 길어 끝나는 지점으로 이동하기 위해서는 finish 명령어를 사용한다.

    (gdb) finish

함수의 남은 부부을 수행하지 않고 빠져나오기 위해서는 return 명령어를 사용한다.

    (gdb) return

return 명령어를 사용시 return 값을 임의로 지정하기 위해서는 다음과 같이 이용한다.

    (gdb) return 1234

<<와치포인트 설정>>
와치포인트는 변수값의 변화와 코드의 변화를 확인할때 편리하게 이용가능하다.

    (gdb) watch [변수명]   //변수에 값이 써질 때 브레이크
    (gdb) rwatch [변수명]  //변수의 값이 읽혀질 때 브레이크
    (gdb) awatch [변수명]  //변수에 읽기, 쓰기 경우에 브레이크

<<변수와 레지스터 값 검사>>
현재 위치한 행에서 접근 가능한 지역변수들 목록 확인

    (gdb) info locals

현재 위치한 행에서 접근 가능한 전역변수들 목록 확인

    (gdb) info variables

확인하고싶은 변수의 값을 출력하기 위해서는 print 명령어를 사용한다.

    (gdb) p(print) [변수명]  //변수의 값
    (gdb) print [함수명]   //함수의 주소 값

포인터 변수의 경우 위의 방법으로 하면 주소값만이 출력된다.
포인터 변수의 값 또는 포인터 구조체 등의 값을 보기 위해서는 * 를 붙여준다.

    (gdb) print *[변수명]

이중 포인터라면 ** 를 붙여준다.

GDB는 변수 뿐만 아니라 레지스터의 값도 확인할 수 있다.

    (gdb) print $[레지스터명]

print 명령어는 지역변수를 우선하여 보여주기 때문에
지역변수와 전역변수에서 동일한 이름을 사용할때 전역변수를 확인하기 위해서는 :: 을 이용한다.

    (gdb) print 'main.c'::[변수명]

파일명은 '따옴표' 으로 감싸야한다.

특정 함수에 있는 변수를 확인하기 위해서는

    (gdb) print [함수명]::[변수명]

print 명령어로 변수 또는 레지스터를 확인할 때는 기본적으로 10진수로 출력한다.
이를 다른 형식으로 보고싶을 때는 다음과 같은 방법을 이용한다.

    (gdb) print/t [변수명]    //2진수로
    (gdb) print/o [변수명]    //8진수로
    (gdb) print/d [변수명]    //10진수로 (int)
    (gdb) print/u [변수명]    //부호없는 10진수로 (unsigned int)
    (gdb) print/x [변수명]    //16진수로
    (gdb) print/c [변수명]    //최초 1바이트 값을 문자형으로
    (gdb) print/f [변수명]    //부동소수점값
    (gdb) print/a [변수명]    //가장 가까운 심볼의 오프셋

print 명령어는 값을 보여줄뿐 아니라 값을 설정하는 것도 가능하다.

    (gdb) print [변수명] = [값]

<<화면에 변수의 값을 자동으로 디스플레이하기>>
display 명령어를 이용하면 매 단계가 진행될때마다 자동으로 변수의 값을 출력해준다.

    (gdb) display [변수명]

display 변수를 해제하기 위해서는 undisplay 명령어를 이용한다.

    (gdb) undisplay [N]

display 역시 x,c,o 등등을 이용해 다양한 형태로 출력 가능하다.


출처 : http://kwanseob.blogspot.kr/2012/03/gdb.html

'O / S > Linux' 카테고리의 다른 글

Kali Linux Commands Cheat Sheet  (0) 2015.10.09
Kali linux 부팅 디스크 만들기  (0) 2015.08.21
원격접속과 FTP  (0) 2015.08.16
파일의 접근 권한,setuid,gid,스티키비트,chmod  (0) 2015.08.16
리다이렉션  (0) 2015.08.16


rufus-2.2.exe


이걸로 유일하게 만들어졌다

'O / S > Linux' 카테고리의 다른 글

Kali Linux Commands Cheat Sheet  (0) 2015.10.09
GDB 사용법  (0) 2015.09.05
원격접속과 FTP  (0) 2015.08.16
파일의 접근 권한,setuid,gid,스티키비트,chmod  (0) 2015.08.16
리다이렉션  (0) 2015.08.16

원격접속과 FTP

Kail-KM
|2015. 8. 16. 13:32

#Telnet & SSH

 1.Telnet

텔넷 사용을 위해서는 텔넷 클라이언트와 텔넷 서버가 필요.

Telnet은 수퍼데몬에 의해 동작하기에 xinetd를 설치해야한다.

sudo apt-get install xinetd

...

sudo apt-get install telnetd

...

텔넷 서버를 동작시키려면 /etc/xinetd.conf 파일을 설정해야함

service telnet


        disable = no

        flags = REUSE

        socket_type = stream

        wait = no

        user = root

        server = /usr/sbin/in.telnetd

        log_on_failure = USERID

~

:wq! 를 추가해야함

그후에 

sudo /etc/init.d/xinetd restart 를 통해 활성화시킨다.

***port 23이 열려 있어야함


telnet>open xxxx

...

 2.SSH (Secure Shell)

텔넷에서 텔넷 클라이언트와 리눅스 사이에 주고받는 데이터가 암호화되지 않기에 이를 보완된것이 바로 SSH이다.

...

ssh 192.168.x.x -l user1


#VNC -- p.624


#파일 송수신

FTP는 TCP/IP 프로토콜중 5계층에 있는 프로토콜로, 다른 운영체제와도 파일을 주고 받을수 있다.

 1.FTP서버 설치,설정

sudo apt-get install vsftpd

...

ps -ef | grep vsftpd  : 작동하는지 확인

 2.FTP 클라이언트 사용

ftp 192.168.0.2

...

사용자 : 

암호 :

...

get 파일명 mget 파일명

put 파일명 mput 파일명

prompt hash

bin bye

open user

cd !cd

pwd !pwd

ls !ls

mkdir dir rmdir

 3.익명 FTP 사용

sudo vi /etc/vsftpd.conf

..

anonymous_enable=YES

...

sudo service vsftpd restart

...

id : anoymous

passwd : E-mail

...

'O / S > Linux' 카테고리의 다른 글

GDB 사용법  (0) 2015.09.05
Kali linux 부팅 디스크 만들기  (0) 2015.08.21
파일의 접근 권한,setuid,gid,스티키비트,chmod  (0) 2015.08.16
리다이렉션  (0) 2015.08.16
Linux 디렉터리와 파일다루기  (0) 2015.08.16

#파일의 접근 권한

ls -l 을 할경우

-파일의 종류

-접근권한표시

-하드링크개수

-로그인id

-그룹id

-파일크기

-최종수정날짜

-파일명


flie [filename] : 지정한 파일의 종류를 알려준다

groups [username] : 사용자가 속한 그룹을 알려준다.


표기방법

소유자 그룹 기타사용자

   rwx rwx rwx

접근권한 변경

chmod [option] file&directoryname


*기호모드

u:파일소유자

g:소유자가 속한그룹

o:소유자와 그룹이외의 기타사용자

a:전체사용자


+:권한부여

-:권한제거

=:접근권한설정


r:읽기

w:쓰기

x:실행


*숫자모드

0-7 0-7 0-7

r-x : 4 0 1 = 5

rw- : 4 2 0 = 6

rwx : 4 2 1 = 8


rwxrwxrwx = 777

rwxr-xr-x = 755

rw-rw-rw- = 666

r-xr-xr-x = 555


기본접근권한 확인하고 변경하기

umask [option] [mask value] : 기본 접근권한출력하거나 변경한다.

-S : 마스크 값을 문자로 출력한다.

마스크값

:마스크값이 022 일경우 ----w--w- 에게 권한을 부여하지 않겠다는것

즉, 그룹과 기타사용자에게 쓰기 권한을 부여하지않는다. = 755


특수 접근권한

SetUID : 맨앞자리가 4

SetGID : 맨앞자리가 2

Sticky bit : 맨앞이 1

-1.SetUID : SetUID가 설정된 파일을 실행하면 해당 파일이 실행되는 동안에는 파일을 실행한 사용자의 권한이 아니라 파일 소유자의 권한으로 실행할수 있도록한다.

ex)chmod 4755 set.exe

-2.SetGID : 위의 것과 거의 동일. 파일이 실행되는 동안 파일 소유 그룹의 권한을 쇨행 된다.

ex)chmod 2755 set.exe

-3.스티키비트 : 디렉터리에 스티키 비트가 설정되어 있으면 이 디렉터리에는 누구나 파일을 생성 할 수 있다. 파일은 파일을 생성한 계정으로 소유자가 설정되며, 다른 사용자가 생성한 파일은 삭제 할수 없다. 

기타사용자의 실행권한에 't' 로 표시가 된다.

ex)chmod 1755 temp

'O / S > Linux' 카테고리의 다른 글

Kali linux 부팅 디스크 만들기  (0) 2015.08.21
원격접속과 FTP  (0) 2015.08.16
리다이렉션  (0) 2015.08.16
Linux 디렉터리와 파일다루기  (0) 2015.08.16
Shell 기본 사용법  (0) 2015.08.16

리다이렉션

Kail-KM
|2015. 8. 16. 13:30

#입출력 방향바구기


파일 디스크립터

0  stdin 명령어의 표준입력

1  stdout 명령어의 표준출력

2  stderr 명령어의 표준오류

표준 입출력 장치를 파일로 바꾸는 것을 '리다이렉션'이라한다.

-출력 리다이렉션

파일 덮어쓰기 : >

명령 1> 파일이름

명령 > 파일이름

(확인을 할때는 cat을 통해 확인을 한다.)

파일에 내용추가 : >>

명령 >> 파일이름


-오류 리다이렉션

오류메세지를 위의 출력 리다이렉션처럼 > 으로 한다면 리다이렉션이 

되지 않는다.

명령 2> 파일이름

***결과를 무조건 '>'으로 담을수 있는 것이아니라 성공메세지는

1> 을 통하여 실패메세지는 2>를 통하여 리다이렉션 할 수 있다.

  //한번에 리다이렉션하기 ls ./abc>ls.out 2>ls.err

  //오류 메세지 버리기 /dev/null은 버리고 싶은 내용을 담는 장치 파일로 이  파일에 전달된 모든 내용은 시스템에서 사라지고 복구할 수 없다.

  //한파일로 리다이렉션하기 ls ./abc>lsout 2>&1

(표준출력파일은 &1이라고 표현한다.) 

-입력 리다이렉션

< : 표준 입력을 바꾼다.

명령 0<파일이름

명령 < 파일이름

cat 명령이 파일을 읽어서 출력하는 기능은 표준 입력을 자동으로 파일로 리다이렉션 한 것으로 < 를 생략한 것이다.

'O / S > Linux' 카테고리의 다른 글

원격접속과 FTP  (0) 2015.08.16
파일의 접근 권한,setuid,gid,스티키비트,chmod  (0) 2015.08.16
Linux 디렉터리와 파일다루기  (0) 2015.08.16
Shell 기본 사용법  (0) 2015.08.16
Kali Linux 2.0 Adob Flash Install  (0) 2015.08.14