일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 웹 프로그래밍
- Arduino pin
- 아두이노 와이파이
- Arduino pin map
- ubuntu
- Arduino
- 알고리즘
- web
- Virtual Box
- mysql api
- 데이터베이스
- 아두이노 프로미니
- database
- 아두이노 핀
- vm
- 라즈베리파이
- wifi멀티탭
- HTML
- MySQL
- 아두이노 wifi
- Codility
- mysql c
- html input
- 코딜리티
- Mysql c API
- 아두이노 pro mini
- 아두이노 핀 맵
- 아두이노 핀맵
- Raspberry Pi
- 아두이노
- Today
- Total
offfff
[Linux] 사용자 계정 관리 본문
최근 라즈베리파이를 집에 상시로 켜두고 몇몇 친구들과 공유하고 있습니다.
일전에 저의 멘토께서 공유하던 라즈베리파이가 있었는데, sudoer로 등록된 계정(pi)을 공유하셨었죠.
원격으로 접속해서 해보고 싶은 실습을 하곤 했었는데, 설정을 잘못 건들어 공유지의 비극(?)을 일으킨 적이 있습니다.
이러한 경험이 생각나 친구들에게 계정을 새로 만들어주고, 제한적인 사용만 가능하도록 설정해두었습니다.
이 포스트에서는 데비안 계열 리눅스(우분투, 라즈비안 등...)에서 사용자 계정을 추가하는 방법을 기록합니다.
A. 사용자 계정 추가
인터넷을 찾아보니 레드헷 계열 리눅스는 useradd, adduser의 기능은 차이가 없었습니다.
이와 다르게 데비안 계열의 리눅스는 두 명령어에 차이가 있습니다.
(1) adduser
계정 생성시 자동적으로 홈디렉토리 생성, 비밀번호 설정, 사용자 정보 입력을 수행합니다.
각 계정이 각자 디렉토리를 가지고 작업하는데 유용한 명령입니다.
아래와 같이 사용합니다.
[그림 1] adduser with no options
adduser 명령 실행시 입력하는 정보는 /etc/passwd 파일에서 확인할 수 있습니다.
각 필드의 내용은 콜론을 기준으로 구분되며 다음과 같습니다.
사용자 ID : 패스워드 : User ID 번호 : Group ID 번호 : 사용자 정보 : 사용자 계정 홈 디렉토리 : 사용자 계정 로그인 쉘
사용자 정보는 이름, 방번호, 직장 전화번호, ... 등이 콤마로 구분되어 작성됩니다.
/home/dkws 폴더를 확인하면 음악, 다운로드, 문서 등의 기본 홈 디렉토리가 구성된 것을 확인할 수 있습니다.
(2) useradd
기본적으로 계정만 추가하는 명령어입니다.
아래와 같이 사용합니다.
[그림 2] useradd with no options
계정을 추가하는 작업이기 때문에 관리자 권한이 필요합니다.
명령에 sudo를 붙여 관리자 권한을 끌어옵니다.
계정 생성후에는 'passwd (사용자 ID)' 명령으로 비밀번호를 설정하여 사용합니다.
useradd의 경우 기본적으로 계정만을 생성하는데 사용합니다.
홈 디렉토리 없이 시스템에 로그인 하는 용도로 적합합니다.
/etc/passwd에 기록된 각 필드는 옵션을 사용하여 세부적으로 설정이 가능합니다.
옵션은 useradd --help로 확인할 수 있습니다.
여기서는 몇가지 옵션에 대해서만 다룹니다.
'-m' 옵션 : 홈 디렉토리를 새로 생성하면서 사용자를 추가합니다.
[그림2]과 같이 계정 기본생성 후, /etc/passwd를 확인해 보면, '사용자 계정 홈 디렉토리' 필드는 분명 /home/dkws로 되어있습니다.
하지만 실제 /home에 가보면 dkws 디렉토리는 추가되지 않은 것을 확인 할 수 있습니다.
-m 옵션을 사용하면 dkws라는 폴더까지 /home 디렉토리 아래에 추가됩니다. 폴더 안에는 아무것도 없습니다.
useradd 디폴트 명령 후, mkdir로 경로를 생성해 주는 것과 같습니다.
'-s (사용할 쉘)' 옵션 : 사용자의 기본 쉘을 설정합니다.
해당 계정이 디폴트인 bash 쉘(/bin/bash) 대신, 옵션에서 설정한 쉘을 사용하도록 합니다.
혹은 /bin/false, /sbin/nologin을 사용하여 쉘 프롬프트를 사용하지 못하게끔 할 수도 있습니다.
nologin의 경우 시스템에 로그인이 불가능하여 쉘을 사용하지 못합니다.
따라서 ssh는 사용 불가능하지만, ftp, smtp 등의 다른 서비스는 사용가능합니다.
false의 경우 로그인은 되나 쉘, 서비스, 홈디렉토리 사용이 불가능합니다.
개인적인 생각으로는 사용자를 블럭할 때 사용하지 않나 싶습니다.
각종 옵션들을 테스해보면서, 세부적인 설정에 useradd가 유용하지만, 잘 알지 못하면 골치 아프다는 생각이 들었습니다.
특히 '-p (비밀번호)' 옵션으로 비밀번호를 설정할 수 있다고 되어있으나,
막상 해당옵션으로 생성하면 로그인에 실패하는 현상을 볼 수 있었습니다.
이후 'passwd (계정)' 명령으로 비밀번호 재설정 후에는 로그인이 정상적으로 되었습니다.
B. 사용자 계정 삭제
(1) userdel
생성된 계정을 삭제하는데 사용하는 명령어입니다.
아래와 같이 사용합니다.
[그림 3] userdel with options(r, f)
기존에 있는 사용자 계정을 삭제합니다.
[그림 3]과 다르게 옵션을 모두 제거하고 사용시, 계정만 삭제합니다.
/etc/passwd에 적힌 계정정보가 사라지고, 홈 디렉토리는 여전히 남습니다.
홈 디렉토리까지 삭제하려면 -r 옵션을 추가하면 됩니다.
간혹 [그림 3] 두번째 줄과 같이 '사용자 dkws는 프로세스 16867번이 현재 사용중입니다'라는 경고메시지가 뜨며, 계정삭제가 이루어지지 않는 경우가 있습니다.
이러한 경우, -f 옵션을 추가하여 강제적으로 삭제할 수 있습니다.
'프로그래밍' 카테고리의 다른 글
아두이노 우노 핀 맵 (0) | 2017.09.12 |
---|---|
Atmel Studio에서 아두이노 보드 사용하기 (0) | 2017.09.04 |
[Linux] VIM 설정 : 키 맵 사용/ 토글키 만들기 (0) | 2017.08.31 |
3. 아두이노+ESP8266 (6) | 2017.02.15 |
2. ESP8266 IDE 구축 (0) | 2017.02.14 |