사용자 정보 검색
whoami
현재 사용자를 알려줌
who
현재 시스템에 로그인 되어있는 사용자들에 대한 정보를 알려줌
w
현재 시스템의 워크로드와 로그인한 사용자들이 수행중인 태스크를 보여준다
id
현재 사용자에 대한 사용자ID, 기본그룹ID, 소속 그룹리스트를 보여준다
su 명령
- su 명령: 다른 사용자 ID로 '새로운 쉘을 시작'하는 명령
su [-] [username]
- ex.
- username에 해당하는 사용자로 새로운 쉘을 시작. 새로운 사용자의 암호를 입력해야 성공적으로 동작
- user id를 인자가 없는 경우 root 사용자로 쉘을 시작
- 현재 사용자가 root인 경우 암호 없이 임의의 사용자로 변경 가능
-
옵션은 user 로그인 환경(환경변수&현재 디렉토리)을 그대로 적용하려는 경우에 선택
- 새로 생성된 쉘을 빠져나오려면 'exit' 명령 사용
sudo 명령
- sudo 명령: 다른 사용자(root가 디폴트)로 '명령을 수행'하는 프로그램
- /etc/sudoers 파일을 통해 sudo 명령을 이용할 수 있는 사용자를 설정
- root 사용자의 암호를 몰라도 root 권한으로 명령을 수행할 수 있음
sudo su -
- ubuntu에서 root 사용자로 쉘을 사용하기 위한 명령
- 우분투에서는 root 사용자에 대해 암호가 없으므로 root사용자로 로그인하는 것이 불가능(보안측면에서 우수)
- 따라서 sudo를 통해서만 root 사용자로 쉘 사용 가능
- /var/log/auth.log를 통해 root 사용자에 대한 sudo 사용 내용 볼 수 있음
/etc/passwd
- 리눅스 사용자에 대한 정보를 유지하는 파일
- ':' 문자로 각 컬럼의 값을 구분
- 각 컬럼의 정보
- 사용자 이름
- x
- 사용자 ID
- 기본 그룹ID
- 사용자에 대한 설명
- 홈디렉토리
- 로그인 쉘
사용자 생성과 제거
사용자 생성
/user/sbin/useradd
/user/sbin/adduser
사용자 제거
/user/sbin/userdel
/user/sbin/deluser
사용자 정보 변경
관련파일
/etc/default/useradd
: 새로 생성되는 사용자에 대한 디폴트 설정값 보관
/etc/skel/
: 새로 생성된 사용자의 홈디렉토리에 복사될 파일들이 위치
cash
- 자신의 로그인쉘을 변경하는 명령
ex. chsh -s /bin/ksh
암호 변경
passwd [username]
- 인자로 주어진 사용자에 대한 암호를 변경
- 인자로 주어지지 안흔 경우, 현재 사용자의 암호를 변경
/etc/shadow
- 각 사용자에 대한 암호를 관리하는 파일(암호는 암호화되어 저장됨)
- ':'으로 구분된 컬럼값 유지
- 사용자 이름
- 암호화된 암호
- 가장 최근 암호가 변경된 날짜
- 암호를 변경할 수 없는 날짜수
- 암호 만료일
- 암호 변경 경고 날짜수
- 암호 만료일 이후 해당 사용자 계정을 불능화하는..
- 불능화된 일자
기타
/etc/login.defs
- 암호를 비롯한 로그인 관련 디폴트값들을 정의
- 'PASS_'로 시작하는 값들은 암호 설정과 관련된 디폴트 값을 가짐
/etc/passwd 파일의 직접적인 변경
- vi보다는 vipw 명령 사용(locking에 유리)
사용자 환경 설정
- 사용자가 로그인할때 환경에 영향을 미치는 여러 설정 파일들이 순차적으로 적용됨
/etc/profile
~/.bash_profile
~/.bash_login
(~/.bash_profile
이 없는 경우 적용)
~/.profile
(~/.bash_profile
과 ~/.bash_login
이 없는 경우 적용)
~/.bashrc
: 새로 시작되는 쉘에는 모두 적용됨
~/.bash_logout
: bash 쉘을 빠져나갈 때 적용되는 파일
그룹 관리
- 그룹은 사용자의 집단을 구분하여 데이터 공유 및 권한관리를 위해 사용
groupadd
groups
groupdel
gpasswd
/etc/group
/etc/gshadow