Host
: 네트워크에 연결되어 있는 장치, 컴퓨터
리눅스는 다중 시스템
으로 설계되어 있고, 리눅스가 설치된 컴퓨터 1대를 HOST라고 부른다.
혼자 사용 가능, 가족 전체 사용 가능 -> 각자 계정으로 로그인 가능한다.
관리자 지정이 필요하며, 공용 프로그램들을 설치/제거를 모두에게 허용할 수 없기 때문에, 관리에만 가능토록 설정한다.
리눅스를 처음 설치하면 해당 계정은 관리자인 root
로 부터 권한을 부여받는다.
터미널을 켜면 User ID @ Host Name
남의 파일들을 건들지 못하게 설정이 가능하다. 하지만, root 계정
은 모든 것을 할 수 있다.
Host Name
: 장치를 지목할 때 사용하는 이름
네트워크의 특정 PC를 지목하는 방법 : IP 주소
, Host Name
sudo apt install net-tools
ifconfig
: ip를 확인하는 명령어
passwd
명령어를 통해 변경가능하다. 해당 명령어는 sudo
를 앞에 안붙혀도 된다. 비밀번호 변경만큼 시스템에 영향을 끼치는 명령어를 관리자가 아닌 사람이 실행가는 한지에 대해 의문을 가질 수 있지만, 사용자 본인이 본인의 비밀번호를 변경
할 수 있게 끔 설계 한것입니다.
sudo passwd
명령어는 root 비밀번호를 변경합니다. root는 관리자
로 보안상의 이유로 root 비밀번호는 사용자 모두가 몰라야하는게 정상입니다. root 비밀번호 변경은 보안상 치명
적이기 때문에 변경하지 말자!!
관리자 타 사용자의 비밀번호를 바꿀수도 있다. sudo passwd [사용자이름]
참고) 비밀번호는 보통 더 짧게 바꾸지 못한다.
우분투에서는 보안상의 이유로 root로 로그인 하는것을 막아놓았다.
따라서, 일반 계정으로 접속하여 사용자 변경을 통해
root 계정을 사용해보겠습니다.
sudo su
를 통해 root계정으로 접속가능합니다.
사용자가 root 권한을 사용할 때에는 명령어 입력시 앞에 $
와 중대한 변경 시 sudo
를 사용하였는데, root 계정에 접속하면 명령어 입력시 앞에 #
과 관리자이므로 sudo
를 제외시킵니다.
그렇다고, 아무나 root로 변경이 가능한 것은 아닙니다.
root 권한이 있는 사람만이 변경이 가능하고, root로 변신할 수 있는 계정을 지목가능합니다.
sudo usermod -aG sudo [username]
sudo는 관리자의 힘(root 권한)으로 명령어를 수행하는 의미입니다.
프로그램 추가/삭제, 시스템 중요파일/vi 편집, User 계정 추가/삭제 등 모든게 가능하다.
임베디드 개발자
는 root 밖에 다루지 않는다. sudo라는 명령어 따로 불필요
임베디드 리눅스
에서는 실행하자마자 바로 root로 자동로그인 후 APP 실행
시스템 로그 메세지에 시간을 정확히 찍기 위해 시간부터 세팅한다.
로그 메세지
: 사용 이력을 나타내는 메세지로, 에러 디버깅
에 필수적이고, 시간 정보가 중요하다.
한국시간(KST) : UTC(세계 표준 시간) + 9시간
date
: 현재 시간 확인 명령어
sudo apt install rdate
: rdate(remote date) 설치
sudo rdate time.bora.net
: LG유플러스가 운영하는 시간 서버에 맞추기
시간 정보를 가지고 있는 Time Server에 접속하여 시간 정보를 가져오고, 내 HOST에 Time 적용
root 권한이 없는
새로운 계정이 만들어진다. /home/[user 이름]
경로에 user 전용 디렉토리가 만들어진다.
sudo adduser [user 이름]
필요한 모든 설정들을 Default로 자동설정 해준다.
su [user 계정 이름]
: user계정으로 접속한다. 로그아웃 하고 exit
deluser
을 통해 계정을 삭제할 수 있는데, deluser 명령어에는 다양한 옵션이 존재합니다.
deluser 옵션 확인 명령어 : man deluser
계정 완전 삭제 명령어 : sudo deluser [계정명] --remove-all-files
권한을 그룹별로 설정
해주기위해 그룹을 만들어준다.
계정을 생성하면 그룹
이 함께 자동으로 생성된다.
그룹 생성 명령어 : sudo addgroup [그룹명]
그룹에 사용자 추가 : sudo gpasswd -a [계정명] [그룹명]
그룹에서 사용자 제거 : sudo gpasswd -d [계정명] [그룹명]
사용자가 어떤 그룹에 소속되었는지 확인 : groups [계정명]
그룹마다 어떤 사람들이 소속되었는지 확인 : cat /etc/group
한 User는 여러 개의 그룹
에 참여 가능하다!
그룹 제거 : sudo delgroup [그룹명]
리눅스 커널 내부에서는 폴더도 파일
취급한다.
Regular File
: 일반 파일
Directory File
: 리눅스 커널 내부에서는, 디렉토리도 파일로 취급
Link File
: 윈도우의바로가기
와 비슷한 파일
Device File
: 새로운 장치를 연결하면, 상징물과 같은 파일이 하나 생긴다. -> 이 파일을 통해장치 제어
가능
ls –al
을 통해 레귤러(-), 디렉토리(d), link(I), 장치파일(c,b)를 통해 파일 종류 확인
ls -al /etc
: etc -> 시스템 전반의 설정 파일, 환경설정
파일종류/rwx권한(user,group,other 순)/oner/oner Group
순으로 명시된다.
파일종류
: 레귤러(-), 디렉토리(d), link(I), 장치파일(c,b)
rwx
->r
: 파일 read 권한 ,w
: 파일 write 권한,x
: 파일 실행 권한,-
: 권한 없음
oner
: 사용자 ,oner Group
: 그룹
other
은 guest가 아니고 owner와 owner Group을 제외한 모든 사람들을 뜻한다.
sudo chown [owner명] : [owner 그룹명] [파일명]
-> 파일의 owner와 그룹명 바꾸기
sudo chmod[변경할 mode] [파일명]
: 파일의 rwx 권한 변경
- u=rwx : user의 rwx 권한 부여
- g=rw : group의 rw 권한 부여
- o = : other의 권한 부여 x
- u+r : user에 r 권한 부여
- o-w : other에 w 권한 제외
- a+w : user/group/other에 w 권한 부여
rwx => 421 = 7
113 : --x --x -rw
777 : rwx rwx rwx
660 : rw- rw- ---
파일을 초기 생성하면 권한은 rw- rw- r--
, 디렉토리를 초기 생성하면 권한은 rwx rwx rx
가 된다.
r
: ls로 파일 목록 읽기
w
: 디렉토리 내 파일 생성/삭제
x
: cd로 폴더 접근
텍스트 파일을 실행하면 쉘 스크립트로 동작한다.
read, excute
를 둘다 지정해 실행
./test.txt로 실행