공부

[리눅스] 5. 리눅스 사용자 관리와 파일 관리

Codey 2023. 9. 20. 11:50

ubuntu 사용자 살펴보기

ubuntu:x:1000:1000:ubuntu,,,:home/ubuntu:/bin/bash
-- 사용자 이름 : ubuntu
-- 비밀번호 : x
-- ubuntu의 사용자 id : 1000
-- ubuntu가 속한 그룹의 id : 1000
-- 추가 정보 '이름, 방 번호, 직장 전화번호, 집 전화번호, 기타'가 있으나 모두 생략됨
-- 현재 사용자 이름만 ubuntu로 설정
-- ubuntu 사용자의 홈 디렉터리는 /home/ubuntu이고, 로그인 시 제공되는 셸은 /bin/bash

/etc/group 파일 열어보기

-


adduser

- 새로운 사용자를 추가하는 명령어

- 해당 명령어를 실행하면 아래와 같은 파일에 새로운 행이 추가된다.

- /etc/passwd

- /etc/shadow

- /etc/group 

adduser cookuser 
새 unix 암호 입력 : 
새 unix 암호 재입력 :
이름 [] :
방 번호 []
직장 번화번호 []
집 전화번호 []
기타 []
정보가 올바릅니까? [y/n]
adduser --uid 1111 cookuser2 -- cookuser2 사용자를 생성하고 사용자 ID를 1111로 지정
adduser --gid 1000 cookuser3 -- cookuser3 사용자를 생성하고 그룹 ID가 1000인 그룹에 포함
                                (실습에서 그룹 ID 1000은 ubuntu 그룹임)


useradd

- 사용자 추가

- 추가 작업없이 바로 생성

useradd test1

passwd

- 사용자의 비밀번호를 변경하는 명령어

passwd cookuser1 -- cookuser1 사용자의 비밀번호 설정, 변경

sudo passwd root

- 관리자 패스워드 변경


cat /etc/passwd

- 사용자 정보 확인

- userdel로 사용자를 지워도 환경 설정만 지워주고 폴더만 남겨둬서 조회가능


usermod

- 사용자의 속성을 변경하는 명령어

usermod --shell /bin/csh cookuser1 -- cookuser1 사용자의 기본 셀을 /bin/csh로

chage

- 사용자의 비밀번호를 주기적으로 변경하도록 설정하는 명령어


groups

- 사용자가 소속된 그룹을 보여주는 명령어

groups -- 현재 사용자가 소속된 그룹 출력
groups cookuser1 -- cookuser1 사용자가 소속된 그룹 출력

cat /etc/group

- 그룹 확인


groupadd

- 새로운 그룹을 생성


groupmod

- 그룹의 속성 변경


groupdel

- 그룹 삭제


gpasswd

- 그룹의 비밀번호 설정


파일 유형

소유권과 허가권

- 리눅스는 파일을 데이터를 보관하는 장소와 리스트 2가지로 분류함

- 우리가 보는 것은 리스트 부분이므로 링크가 1이됨


파일 허가권

// rwx


chmod

- 파일 허가

- 실행은 프로세스에 올리는거


chown

- 파일 소유권을 변경하는 명령어


./

- 파일 실행

./mydata.txt - mydata 실행

하드 링크와 심벌릭 링크

하드 링크

- 실제데이터 공간을 가르킴

심벌릭 링크

- 원본 파일 포인터를 가르킴

-- 실습전 /root/linkdir/ -- 디렉터리 생성 후 그 안에 originalfile 생성
ln originalfile hardlink -- 하드링크 생성
ln -s originalfile softlink -- 심벌릭 링크(소프트 링크) 생성
ls -il -- inode 번호를 맨 앞에 출력
cat hardlink -- 하드 링크의 내용 확인
cat softlink -- 심벌릭 링크의 내용 확인

- 원본 파일을 다른 곳으로 이동하고 하드 링크 파일과 심벌릭 링크 파일 확인

mv originalfile ../ 원본 파일을 상위 디렉터리(..)로 이동
ls -il
cat hardlink
cat softlink

- 하드 링크는 실제 데이터 공간을 가르키기 때문에 내용 표시 가능

- 소프트 링크는 원본 파일 포인터를 가르키기 때문에 내용이 표시 되지 않음

- 파일을 다시 원래 경로에 보내면 둘 다 내용이 표시된다.


프로세스

프로세스의 정의

- 프로그램이 메모리에 올라와 실행된 상태

포그라운드 프로세스

- 화면에 나타나서 상호작용하는 프로세스

백그라운드 프로세스

- 화면에 나타나지 않은채 뒤에서 실행되는 프로세스

'&'를 사용하면 백그라운드에서 실행
백그라운드에서 실시간 동작확인 가능


ps

- 현재 프로세스 상태를 확인

- ps -ef | grep 프로세스명, 프로세스명과 포트번호 확인

 


kill

- 프로세스를 강제로 종료하는 명령어

1237은 프로세스 번호, 1은 부모 프로세스 번호


top

- 현재 os의 상태를 알려줌


서비스와 소켓의 구분

서비스

- 평상시에도 늘 작동하는 서버 프로세스

소켓

- 필요할 때만 작동하는 서버 프로세스

netstat -ano | more

- 포트 확인