리눅스 Primary, Slave DNS, 사용자 관리
기본구성
Primary DNS
01. 네임서버에서 사용할 도메인의 zone 파일을 설정해줘야 한다.
# mount /dev/cdrom /cdrom
# yum -y install bind caching-nameserver
# vi etc/named.caching-nameserver.conf
# vi /etc/named.rfc1912.zones
zone "x.com" IN {
type master;
file "x.com.zone";
notify yes;
allow-transfer {192.168.10.2;};
allow-update {192.168.10.2;};
};
zone "10.168.192.in-addr.arpa" IN {
type master;
file "x.com.rev";
notify yes;
allow-transfer {192.168.10.2;};
allow-update {192.168.10.2;};
};
02. zone 파일 생성하기
# cd /var/named
# cp localdomain.zone x.com.zone
# cp named.local x.com.rev
03. 퍼미션 설정하기
# chown root.named x.com.zone
# chmod 777 x.com.zone
# chown root.named x.com.rev
# chmod 777 x.com.rev
04. zone 파일 편집하기
# vi x.com.zone
# vi x.com.rev
05. 서비스 시작
# service named restart
Slave DNS
# mount /dev/cdrom /cdrom
# yum -y install bind caching-nameserver
# vi /etc/named.caching-nameserver.conf
# vi /etc/named.rfc1912.zones
zone "x.com" IN {
type slave;
file "slaves/x.com.zone";
masters {192.168.10.1 port 53;};
};
zone "10.168.192.in-addr.arpa" IN {
type slave;
file "slaves/x.com.rev";
masters {192.168.10.1 port 53;};
};
# service named restart
결과
- L3에서 확인
# cd /var/named.slaves
# ls
x.com.zone
x.con.rev
복제가 제대로 잘 되었다.
사용자 관리
계정 | 설명 |
---|---|
root | 관리자 계정이며, 모든 권한을 행사할 수 있음. |
system | 시스템 운영시 필요한 계정이며, 로그인은 불가능함. |
user | 일반 계정이며, root처럼 모든 권한을 행사할 수 없음. |
명령어 | 설명 |
---|---|
/etc/passwd | 계정 전체 정보 관리 파일. |
/etc/shadow | 계정 패스워드 관리 파일. |
/etc/group | 계정 그룹 관리 파일. |
User1 생성
Step 01.
# vi /etc/shadow
user1:암호화된 패스워드:::...
- gdm 행 복사(yy) -> 붙이기(p) : gdm 사용자를 user1로 변경 후 저장(wq!)
# vi /etc/passwd
user1:x:501:501:sales:/home/user1:/bin/bash
# vi /etc/group
user1:x:501:
Step. 02
# mkdir -p /home/user1
# cd /etc/skel
# cp .* /home/user1/
# chmod -R 700 /home/user1
# chown -R user1.user1 /home/user1
Step. 03
# passwd user1
새 패스워드 : cisco
확인 패스워드 : cisco
user1로 잘 로그인이 되어진다.
Ex. user 만들어 보기
방법
# vi /etc/shadow
user1:~
user2:~
user3:~
user4:~
# vi /etc/passwd
user1:x:501:505:sales:/home1/user1:/bin/bash
user2:x:502:505:sales:/home2/user2:/bin/csh
user3:x:503:506:sales:/home3/user3:/bin/ksh
user4:x:504:506:sales:/home4/user4:/bin/sh
# vi /etc/group
sales:x:505:user1,user2
humans:x:506:user3,user4
- user1
# mkdir -p /home1/user1
# cd /etc/skel
# cp .* /home1/user1/
# chmod -R 700 /home1/user1
# chown -R user1.sales /home1/user1
# passwd user1
새 패스워드 : cisco
확인 패스워드 : cisco
- user2
# mkdir -p /home2/user2
# cd /etc/skel
# cp .* /home2/user2/
# chmod -R 700 /home2/user2
# chown -R user2.sales /home2/user2
# passwd user2
새 패스워드 : cisco
확인 패스워드 : cisco
- user3
# mkdir -p /home3/user3
# cd /etc/skel
# cp .* /home3/user3/
# chmod -R 700 /home3/user3
# chown -R user3.humans /home3/user3
# passwd user3
새 패스워드 : cisco
확인 패스워드 : cisco
- user4
# mkdir -p /home4/user4
# cd /etc/skel
# cp .* /home4/user4/
# chmod -R 700 /home4/user4
# chown -R user4.humans /home4/user4
# passwd user4
새 패스워드 : cisco
확인 패스워드 : cisco
결과
- user1로 로그인 해서
$ echo $SHELL
$ pwd
$ ls -ld /home1/user1
$ id
$ touch 1.txt
$ ls -l
user1에 sales 그룹에 잘 생성 되었다.
사용자 관리
- 참고
# rm -rf /home/user1
# userdel -r user1
# userdel -r user2
# userdel -r user3
# userdel -r user4
# groupdel sales
# groupdel humans
/etc/passwd, /etc/group, /etc/shadow
cat /etc/passwd
- root:x:0:0:root:/root:/bin/bash
root | 계정 이름 |
---|---|
x | 패스워드이며, etc/shadow 파일에 저장되어 있음 |
0 | 커널이 참조하는 root 계정 식별자 |
0 | root 계정이 소속된 그룹, 0이면 Primary 그룹을 의미함 |
root | 계정 주석 |
/root | root 계정의 사용자 Home 디렉토리 |
/bin/bash | root 계정이 로그인할 때, 할당 받는 쉘 |
useradd
- useradd [옵션] 유저이름
- -d : 홈 디렉토리 지정 (자동으로 홈디렉토리 생성)
- -g : group 지정 (미리 생성되어 있어야 함)
- -c : 사용자에 대한 설명
- -s : 사용할 shell 지정 (bash, csh, ksh)
- -p : 새로운 사용자와 패스워드를 함께 생성한다. (Ex:useradd -p 123456798 user6)
-m -k skel_dir : skel 디렉토리를 지정한다.
- -G : 기본그룹 외에 추가로 그룹 지정
- -D : /etc/default-useradd 에 설정된 유저 추가와 관련된 기본 사항 보기
# useradd user1
# useradd -g users user1
# ls -dl /home/user1
# ls -al /etc/skel
Ex. 사용자 관리
# mkdir /dir1
# chmod 755 /dir1
# mkdir /skel2
# touch /skel2/1
# chmod 755 /skel2
# groupadd -g 502 sales
# groupadd -g 503 humans
# useradd -d /dir1/user1 -u 5011 -s /bin/csh -c Tester -m -k /skel2 -g sales -G humans -e 2023-03-21 -p 123 user1
# cat < /etc/passwd | grep user1
# cat /etc/group | grep user1
# cat /etc/shadow | grep user1
# cd /dir1
# ls
참고
# userdel -r user1 (삭제 시)
# useradd user1
# chfn user1 : 사용자 정보 변경하기
# finger user1 : 사용자 정보 확인하기
usermod
usermod [옵션] 사용자명
- -c ( 사용자 설명 )
- -p (패스워드 변경)
- -d ( 홈디렉토리 변경 )
- -m ( 홈디렉토리 변경시 파일도 옮김 )
- -e ( 계정 종료일 변경 )
- -s ( 기본 쉘 변경 )
- -u ( UID 변경 )
- -g ( 기본그룹 변경 )
- -G ( 추가그룹 변경 )
- -l ( 사용자명 변경 )
- -L ( 사용자 패스워드에 LOCK 걸기 )
- -U ( 사용자 패스워드에 LOCK 풀기 )
# useradd user1
# passwd user1
# usermod -c manager user1
# usermod -p 123 user1
# mkdir /home2
# usermod -d /home2/user1 -m user1
# usermod -l newuser1 -d /home2/newuser1 -m user1
# groupadd sales
# groupadd humans
# usermod -G sales, humans user1
# usermod -g sales user1
# cat /etc/group
# usermod -L user1
# usermod -U user1
# usermod -e 2020-12-31 user1
userdel
- userdel [옵션] 유저명
- -r (사용자의 홈디렉터리도 제거함)
# userdel user1
# ls -l /home
- 홈 디렉터리는 남아 있고, user1 생성 시 그룹을 지정하지 않아 user1 그룹이 생성되었으면 그 그룹도 제거된다.
# userdel -r user2
# ls -l /home
홈 디렉터리는 제거되고, user1 생성시 그룹을 지정하지 않아 user1 그룹이 생성되었으면 그 그룹도 제거 된다.
참고) 유저 추가시
/var/spool/mail/
폴더에 유저 계정과 같은 파일이 생성된다.
유저 추가시 마다Creating mailbox file: File exists
에러 나오면
rm -rf /va/spool/mail/user1
rm -rf /home/user1
스크립트를 이용한 사용자 계정 생성(참고)
# groupadd staff
# mkdir /home1
# vi adduser.sh
01 #!/bin/ksh
02
03 i=1
04
05 while (( i <= 100))
06 do
07 echo " Add user name user${i} "
08 useradd -d /home1/user${i} -m -s /bin/ksh -g staff user${i}
09 passwd -d user${i}
10 (( i = i + 1 ))
11 done
# chmod 777 adduser.sh
# ./adduser.sh
# tail /etc/passwd
# logout
user1 로그인 -> passwd
정상적으로 로그인이 되었다.
user100까지 스크립트로 사용자 계정이 생성 되었다.
- user 삭제하기
# vi adduser.sh
01 #!/bin/ksh
02
03 i=1
04
05 while (( i <= 100))
06 do
07 echo " Del user name user${i} "
08 userdel -r user${i}
09 (( i = i + 1 ))
10 done