개발 노트

Linux // 2일차 [사용자] 본문

Linux

Linux // 2일차 [사용자]

Meter216 2022. 11. 22. 19:44

목차

1. 리눅스 구조 특징

2. 사용자 관련 명령어

  - sudo필요 명령어

3. 사용자 그룹

  - 그룹 관련 명령어

4. 파일 접근 권한 설정

5. 패키지 매니저


리눅스 구조 특징

 

멀티유저 = 여러 사용자가 동시에 하나의 시스템에 접근하는것이다.

 리눅스에서 작동하는 <모든 파일과 디렉토리>(a.k.a 프로세스) 는 사용자에서부터 시작한다.

 사용자(name1)이 파일 hello.txt 를 만들게 되면

 사용자(name2)이 파일 hello.txt 를 볼 수 있게, 못 보게, 수정을 할 수 있게, 못 하게 등 하나하나 파일을 설정 할 수 있다.

 모든 파일을 하나하나 설정 할 수 있기 때문에 보안에 안정적이라고 평가를 받는다.

 

 하지만 이렇게 사용자 하나 하나에 설정을 하게 되면  어렵다.  그냥 귀찮다.

 그래서 사용자들의 그룹을 만들어서 관리를 하기도 한다.

 

사용자 타입

 리눅스에는 사용자 타입이 3가지가 존재한다

  - 루트사용자 : UID 0 = supervisor 뭐든 할 수 있는 관리자. 

  - 시스템사용자 : UID 1~999 = 대략 1000번 이하로 아이디를 가지고 있다. 개발 할 때 필요한 프로세스가 여기 있다.

  - 일반사용자 : UID 1000~  = 일반 사용자들이 만들면 1000번부터 시작한다.

 ** 리눅스는 설치할 때 기본적으로 root 계정이 만들어져있고, 또 하나의 일반 사용자도 생성한다.


사용자 관련 명령어

 

사용자를 확인하는 명령어

 

id

 현재 사용자의 아이디와 사용자가 속한 그룹의 아이디를  포함한 정보를 보여준다

 $id -u #  = 현재 사용자의 아이디를 출력한다.

 $id -un #  = 현재 사용자의 이름을 출력한다.

**ID 는 위에서 말했던 uid의 번호이다. 사용자의 이름은 내가 입력해놓은 닉네임 같은 개념이다.

 

**Linux의 명령어는 어느정도 패턴이 있다. 명령어 -옵션 값의 형태를 띈다.

 

whoami

현재 사용자의 이름을 조회한다.

 

users

현재 로그인 되어 있는 전체 사용자의 정보를 조회.

 

- sudo필요 명령어

 #사용자 생성,수정,조회를 위한 명령어

 기본적으로 root 계정이 필요하다.

 

root 계정으로 접속을 하는 방법도 있지만, 잘못 건드릴 경우 큰일 나기 때문에(삭제 할 경우 휴지통없이 다이렉트다) 웬만하면 root의 권한만 빌려와서 사용하도록 하자. = sudo

sudo

super do

substitute user do

ShutUp and DO도 있다 기억에 잘 남는다.

 

useradd

새로운 사용자를 생성한다.

$useradd 이름

 

adduser(*) 얘를 일단 쓴다

얘도 위에 useradd와 비슷하다 새로운 사용자를 생성한다.

$adduser 이름

 

왜 sudo 명령어가 필요한가 ?

계정을 만들게 되면 /ect/passwd에 내용을 추가하게 된다

 

passwd 파일 내부 설명

tmp1:x:1001:1001:,,,:/home/tmp1:/bin/bash       ":" 은 구분값이다.

tmp1 : 사용자 이름 / 앞 1001 : 사용자id / 뒤 1001: 그룹id / ,,,: 코멘트, 풀네임 등 풀네임 메모지

/home/tmp1 홈디렉토리 / bin/bash : 로그인이 되었을 때 기본적으로 적용할 shell의 위치

 

passwd

사용자의 패스워드를 설정할 때

사용자의 패스워드를 설정 할 때

$passwd [사용자이름]

 

usermod

sudo usermod [사용자이름]

사용자 수정

-s

shell 경로를 변경하고 싶은 겅우

suod usermod s /bin/zsh tmp1

 

G-

그룹 아이디를 변경 할 경우

$ sudo usermod –G 그룹명

 

userdel

sudo userdel [사용자이름]

옵션 -r 을 사용해야 홈디렉토리 안에 있는 폴더까지 삭제한다.


사용자 그룹

 

리눅스에서 그룹을 통해서 파일에 관한 접근을 제한 할 수 있다.

기본적으로 name 계정명을 만들면 name 그룹이 만들어진다. 사용자를 만들면 최소한의 하나의 그룹을 가지고있 

 

 - 그룹 관련 명령어

groups

현재 로그인된 사용자가 속한 그룹 리스트를 확인한다.

$ groups 계정명

마찬가지로 계정명을 쓰면 그 계정명의 리스트를 확인 가능하다.

 

groupadd

새로운 그룹 생성가능 sudo 필요

$groupadd [그룹이름]

 

blockchain:x:1003:user1

1003 그룹 아이디

blockchain : 해당하는 유저 내용을 표현

사용자랑 같이 사용하기

$sudo adduser tmp1 

$sudo usermod - G 그룹명 사용자

 

groupmod

기존의 그룹을 수정한다.

sudo groupmod aG blockchain1 tmp1

 

groupdel

그룹을 삭제한다.

sudo groupdel 그룹명


파일 접근 권한 설정

 

-rw-r--r--     1      chl        chl         13          Nov 22 11:05 hello.txt

파일권한 개수 소유자 그룹명 파일사이즈 마지막 수정날짜 순서

맨처음

파일 타입에 대한 설명 조회된 내용중에 파일인지 폴더인지 구분값

- - : normal file 일반파일

- d : directory

- l : link file 바로가기

- p : named pipe

- s : socket

- c : character device

- b : block device

 

[1]rw- r : read w : write x : execute

[2]r--

[3]r--

이렇게 띄워서 읽는다

r = 읽을 수만 있다. 4

w = 수정권한 가능 2

x = 실행 할 수 있다. 1 숫자로도 표기함

 

[1] : 소유자에 대한 설정

[2] : 그룹에 대한 설정

[3] : 기타 사용자에 대한 설정

 

chmod

 

해당 파일에 접근 권한을 바꿔주는 것

rwx r-x r-x를 많이 한다. 소유자 말고는 수정을 못하게하는 것

rwx = 7

r-s=x 5

chmod 755 ./hello

ls al | grep hello

 

chown

 

해당파일의 소유권을 바꾸는 명령어

~$ chown root:root ~/hello.txt // root 기 때문에 sudo를 붙여야한다

명령어 소유자 그룹 위치,파일명

리눅스가 보안이 강한 이유는 이렇게 하나하나 설정 할 수 있는 것도 있다.

 

Shell

shell도 버전이 있는데 많이 쓰는버전

bash 리눅스의 기본 세팅 기본적으로 설정이 되어 있다.

zsh 최근에 많이 쓰이는거


 

 

패키지 매니저 

 

패키지 관리 = 새로운 소프트웨어를 설치, 업데이트 삭제하는 행위를 말함.

install 파일을 받는 행위

패키지 === 폴더

 

의존성

 

프로그램이 어떠한 다른 프로그램을 이용해서 실행이 되야 한다면 의존성이 있다고 생각하면 된다.

기존에 설정이 되어있는 패키지를 같이 다운로드 받게 하는것.

 

**zsh 설치

 

apt install zsh

 

cat /etc/passwd | grep chl

sudo usermod -s /bin/zsh chl

 

cd ~

ls al

 

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -o -)"

 

sudo apt install fonts-powerline

 

'Linux' 카테고리의 다른 글

Linux//github, branch합치기  (0) 2022.11.24
Linux // 3일차 [Git]  (0) 2022.11.23
Linux // 1일차 기본개념  (0) 2022.11.21