본문 바로가기

OS/Linux

[linux] 리눅스 관리시 자주 쓰이는 명령어 개인적 정리

$ ls [옵션] <대상 파일 또는 디렉토리>

현재 디렉토리 또는 대상 디렉토리의 파일과 디렉토리의 목록을 출력하는 명령

-a    hidden파일 포함해 모든 파일 출력

-d    디렉토리만 출력

-h    읽기 편한 형태로 출력

-i     파일명 왼쪽에 inode 번호를 함께 출력

-l     디렉토리, 파일에 대한 자세한 정보를 출력

-r     정렬 순서를 역순으로

-t     최근 수정된 파일부터 출력

-F    파일의 유형에 따라 구분기호를 함께 출력 (*:실행파일, @:심볼릭 링크, |:FIFO, =:소켓 /:디렉토리)

-S    크기가 큰 파일부터 출력

-R    지정된 디렉토리와 하위 디렉토리까지 출력


$ ls -l 에 대한 화면 설명

① 파일유형

② 파일 소유자 퍼미션

③ 파일 소유 그룹 퍼미션

④ 나머지 사용자 퍼미션

⑤ 하드링크 수

⑥ 파일 소유자

⑦ 파일 소유 그룹

⑧ 파일 크기

⑨ 파일 생성 및 변경 시간

⑨ 파일 이름


$ cp(copy) [옵션] <복사원본> <복사대상>

파일이나 디렉토리를 복사하는 명령

-a    복사 원본의 속성과 링크정보를 유지하며 복사

-b    복사 대상이 존재하는 경우 '~'문자를 갖는 백업 파일 생성

-d    복사 원본이 심볼릭 파일일 경우 그 심볼릭 파일 자체를 심볼릭 정보와 함께 복사

-f     복사 대상이 존재하는 경우 강제로 지우고 복사

-i     복사 대상이 존재하는 경우 질문

-p    복사 원본의 속성을 그대로 유지하며 복사

-r     복사 원본이 파일인경우 해당 파일 복사, 디렉토리인 경우 포함된 하위 디렉토리와 파일을 함께 복사

-R    복사 원본이 디렉토리면 포함된 하위 디렉토리와 파일을 함께 복사

-u    복사 대상이 존재하는 경우 복사 원본의 변경시간이 최근인 경우만 복사


$ ln [옵션] <원본 파일명> <링크 파일명>

링크를 생성

무옵션 하드링크를 생성

-s       심볼릭 링크를 생성


$ useradd <계정이름> [옵션] 

계정생성

-u UID           사용자 ID 지정

-g GID           사용자의 초기 그룹 ID 지정

-G GID          사용를 지정한 그룹의 구성원으로 추가

-d 디렉토리명 사용자의 홈 디렉토리를 직접 지정

-s 쉘이름        사용할 쉘을 지정

-c 코멘트        사용자 계정에 대한 설명

-m                 홈 디렉토리를 생성


Ex> $ sudo useradd -G mygroup -m -s /bin/bash seconduser

-G mygroup : 새 사용자를 mygroup에 추가

-m  : /home/seconduser 라는 홈 디렉토리가 만들어진다

-s /bin/bash : bash 쉘을 사용

seconduser : 새 계정 이름


$ deluser <계정이름> [옵션]

사용자 계정을 삭제한다

--remove-home          메일스풀과 사용자의 처음디렉토리를 제거

--remove-all-files       사용자의 모든 파일을 제거

--backup                   삭제하기 전에 백업

--backup-to <DIR>     백업할 대상 디렉토리 /기본값 현재 디렉토리./

--system                    시스템사용자만 제거


--group <그룹>            시스템에서 그룹 삭제.

--system                     시스템그룹만 삭제

--only-if-empty 일원이   아닌것만 제거

deluser <사용자> <그룹>          그룹의 사용자 제거


$ usermod [옵션] <계정이름>

사용자 계정정보를 수정한다.

-u UID              새로운 UID 를 지정합니다. -o 옵션과 같이 사용하면 강제설정이 가능합니다.(root로 가능)

-g GID              새로운 GID 를 지정합니다.

-G group          새로운 보조그룹을 지정합니다.

-d 디렉토리명    새로운 홈디렉토리를 지정합니다. -m 옵션과 같이 사용해서 새로 생성도 가능합니다.

-s 쉘                새로운 쉘 을 지정합니다.

-c 코멘트          새로운 주석을 지정합니다.

-l ID                  로그인 ID를 바꾸는 옵션 입니다. 새로운 계정명으로 변경합니다.


$passwd [옵션] <계정이름>

해당 계정에 대한 비밀번호를 변경


$ groupadd [옵션] <그룹명>

그룹을 생성한다.

-g GID     그룹에 gid를 지정 합니다.

-r             시스템에 사용되는 GID를 부여 합니다. 500번 이하의 가장 빠른 GID를 생성


# groupmod [옵션] <그룹명>

그룹의 정보를 수정한다.

-g GID             gid 를 변경합니다.

-n 새그룹명      그룹명을 변경할때 사용합니다


$groupdel <그룹명>

해당 그룹을 삭제한다.


$ chown [옵션]... <소유자>[:<그룹>] <파일 혹은 디렉토리>

EX>

  chown root /u           /u의 소유자를 "root"로 바꿈

  chown root:staff /u    똑같으나, 그룹은 "staff"로 바꿈

  chown -hR root /u     /u와 하위 파일의 소유자를 "root"로 바꿈


$ chgrp [옵션] <그룹> <디렉토리 혹은 파일명>

EX>

  chgrp staff /u /u의 그룹을 "staff"로 변경

  chgrp -hR staff /u /u와 하위 파일들의 그룹을 "staff"로 변경


$ chmod

해당 디렉토리나 파일의 퍼미션을 변경

심볼릭 모드

$ chmod [a, u, g, o] [+ / -] [r, w, x] [해당 파일 또는 디렉토리]

a : 모든 사용자

u : 소유자

g : 소유 그룹

o : 나머지 사용자


+ : 퍼미션 추가

- : 퍼미션 삭제


r : 읽기

w : 쓰기

x : 실행


EX> file1 이란 이름의 파일에서 나머지 사용자의 읽기 퍼미션을제거 

$ chmod o-r file1


8진수 모드

$ chmod [8진수] [해당 파일 또는 디렉토리]

8진수 모드에서 4 = 읽기, 2 = 쓰기, 1 = 실행을 의미 하며 퍼미션은 허용된 각 숫자의 총합으로 표시.

읽기와 실행이 허용되었다면 5, 모두 허용되었다면 7 등의 형식.

<소유자> <소유그룹> <나머지사용자> 순서대로 한자리씩 총 3자리의 숫자로 표시.


EX> file1에 소유자에겐 모든권한, 소유 그룹엔 읽기와 실행, 나머지 사용자에게는 읽기만은 허가

$ chmod 754 file1

7 : 소유자에게 모든 권한

5 : 소유 그룹에게 읽기와 실행

4 : 나머지 사용자에게는 읽기만



setuid, setgid

setuid는 심볼릭 모드로 's'로 표현되고 8진수 모드로는 4000 으로 표현

setuid 퍼미션이 설정되어 있는 실행 파일은 실행되는 동안에는 그 파일의 소유자 권한을 가지게 된다.


setgids도 심볼릭 모드로 's' 하지만  8진수 모드는 2000 이다.

setgid 퍼미션이 포함되어 있는 실행 파일은 실행되는 동안은 그 파일의 소유 그룹의 권한을 가지는 것 빼고는 setuid와 같다. 


EX>

setuid : 

-rwsr-xr-x    1 root     root        14112  1월 16  2001 /bin/su 


setgid :

-rwxr-sr-x    1 root     root        14112  2월 5  2001 /usr/bin/man 


file1 이라는 실행 파일에 setuid 퍼미션을 설정할 때

$ chmod 4755 file1


 file1 이라는 실행 파일에 setgid 퍼미션을 설정할 때

$ chmod 2755 file1


sticky bit

나머지 사용자의 쓰기 권한에 대한 특별한 퍼미션

/tmp 디렉토리와 /var/tmp 디렉토리에의 퍼미션이 stickbit가 포함되어 있다. 

sticky bit는 8진수 모드로는 1000으로 설정되고 심볼릭 모드로는 't' 또는 'T' 로 설정된다.

이 sticky bit가 포함되어 있는 디렉토리에 나머지 사용자가 쓰기 권한이 있을 경우 나머지 사용자들은 디렉토리 안에 파일을 만들 수는 있어도 디렉토리 삭제는 할 수 없다. 


sticky bit를 적용할려면 당연히 쓰기 권한도 주어야 되다.


EX>

sticky bit가 포함되어 있는 디렉토리의 ls -al 결과

drwxrwxrwt   14 root     root         4096 Aug 30 02:05 /tmp


dir1 이라는 디렉토리에 sticky bit를 설정할 때

$ chmod 1707 dir1   또는 $ chmod 1777 dir1


$ mv [옵션] <이동 원본> <이동 대상>

파일이나 디렉토리를 이동

$ rm [옵션] <삭제 대상>

파일을 삭제

$ pwd(present working directory)

현재 위치하고 있는 작업 디렉토리 출력하는 명령

$ mkdir 

디렉토리 생성

$ mrdir

디렉토리 삭제

$ gpasswd

그룹에 유저 추가 삭제 등등