흐르는 시간의 블로그...

출처 : 수퍼유저코리아(www.superuser.co.kr)

-- 필요시에는 위의 링크에서 자료를 찾길 바랍니다. --


useradd / adduser

새로운 사용자를 생성할때 사용하는 명령어이다.
계정사용자를 생성할 수도 있고, 메일사용자를 생성할 수도 있다.
용도에 맞는 원하는 계정을 생성할때 사용하는 명령어이다.

또한 이 명령어는 "useradd -D"명령어와 반드시 함께 알아두기 바란다. (강추)

계정을 생성하는 관리자용 명령어이므로 일반사용자들은 사용하지 않는 명령어이다.

또한 리눅스에서 useradd와 adduser명령어가 어떻게 다르냐고 질문하시는 분들이 있다.
다음의 사실을 명확하게 확인하기 바란다.

[root@host3 root]#ls -l /usr/sbin/adduser
lrwxrwxrwx 1 root root 7 8월 28 02:29 /usr/sbin/adduser -> useradd
[root@host3 root]#

즉, adduser명령어는 useradd명령어로 링크되어 있는 것에 불과하다.
따라서 실제로 adduser명령어와 useradd명령어는 완전히 동일하다고 보면 된다.
앞으로 이런 문제로 고민하는 일이 없기를 바라면서...

서버관리자가 해야하는 계정생성 관련업무에는 다음과 같은 것들이 있다.

- /etc/passwd 파일에 사용자의 계정(ID 및 패스워드)생성
- /etc/shadow 파일에 계정 패스워드 등록
- /etc/group파일에 사용자의 그룹생성
- /home에 사용자의 홈디렉토리 생성
- FTP사용을 위한 FTP사용 환경설정
- 메일사용을 위한 메일환경설정
- 사용자의 로그인정보 및 환경설정
- 사용자의 디렉토리 및 파일 소유권 변경 및 확인
- DB 사용을 위한 환경설정 및 응용프로그램사용을 위한 환경설정
- 기타 응용 소프트웨어 사용을 위한 설정등

이외에도 여러가지 작업들이 있지만, 서버관리자는 새로운 계정사용자가 생성이 되면 기본적으로 위와
같은 작업을 해야한다.

이런 업무중에 계정생성에 관련된 작업을 useradd를 이용하여 작업한다.


사용형식

useradd [-c comment] [-d home_dir]
[-e expire_date] [-f inactive_time]
[-g initial_group] [-G group[,...]]
[-m [-k skeleton_dir] | -M] [-p passwd]
[-s shell] [-u uid [ -o]] [-n] [-r] login

사용예 #1

useradd로 간단히 계정을 생성하는 예를 보았으므로 이번에는 좀 더 다양한 옵션사용의 예를 보도록 하자.

sspark1이라는 계정사용자를 다음과 같이 새로 생성하였다.

[root@host3 root]#useradd -d /home/sspark1 -u 600 -s /bin/csh sspark1
[root@host3 root]#

즉, 홈디렉토리위치를 /home/sspark1로 지정하였고, UID를 600으로 지정하였으며, 기본사용쉘을 C Shell로 지정하였다.
다음은 결과를 확인하 것이다.

[root@host3 root]#grep sspark1 /etc/passwd
sspark1:x:600:600::/home/sspark1:/bin/csh
[root@host3 root]#

[root@host3 root]#grep sspark1 /etc/group
sspark1:x:600:
[root@host3 root]#
[root@host3 root]#ls -al /home/sspark1
합계 32
drwx------ 3 sspark1 sspark1 4096 9월 19 11:46 .
drwxr-xr-x 8 root root 4096 9월 19 11:46 ..
-rw-r--r-- 1 sspark1 sspark1 24 9월 19 11:46 .bash_logout
-rw-r--r-- 1 sspark1 sspark1 191 9월 19 11:46 .bash_profile
-rw-r--r-- 1 sspark1 sspark1 124 9월 19 11:46 .bashrc
-rw-r--r-- 1 sspark1 sspark1 854 9월 19 11:46 .emacs
-rw-r--r-- 1 sspark1 sspark1 120 9월 19 11:46 .gtkrc
drwxr-xr-x 3 sspark1 sspark1 4096 9월 19 11:46 .kde
[root@host3 root]#

이렇게 옵션을 직접 지정하면 기본설정값에 우선하여 생성이 됨을 알아두기 바란다.


사용예 #2

다음의 예는 좀 더 다양한 옵션을 사용하여 계정을 생성한 예이다.

[root@host3 root]#useradd -c 박성수 -e 2004-12-12 -d /home/sspark2 -u 601 -s /bin/ksh -p 12345 sspark2
[root@host3 root]#

위에서 사용한 옵션을 간단히 설명하면 다음과 같다.

. -c 박성수 : 계정사용자의 간단한 설명
. -e 2004-12-12 : 계정사용 종료일자
. -d /home/sspark2 : 홈디렉토리 위치
. -u 601 : UID 601로 지정
. -s /bin/ksh : 사용할 기본쉘을 Korn Shell로 지정
. -p 12345 : 패스워드를 12345로 지정
. sspark2 : 생성할 계정명

위와 같이 지정한 다음 생성된 내용을 간단히 확인한 것이다.

[root@host3 root]#grep sspark2 /etc/passwd
sspark2:x:601:601:박성수:/home/sspark2:/bin/ksh
[root@host3 root]#
[root@host3 root]#grep sspark2 /etc/shadow
sspark2:12345:12314:0:99999:7::12764:
[root@host3 root]#
[root@host3 root]#grep sspark2 /etc/group
sspark2:x:601:
[root@host3 root]#


이상과 같이 다양한 옵션을 사용하여 useradd를 사용할 수 있음을 알 수 있을 것이다.
위에서도 말씀드렸지만 useradd명령과 함께 "useradd -D"명령도 추가적으로 알아두기 바란다.


vsftp를 서버에 깔게 되었다.


<= 이 링크에 매우 상세하고 편리하게 되어 있다.


저 링크의 내용에 따라 vsftp를 깔다보니...

첨에는 library가 32비트 버전과 링크도되서 한번 속 썩였다.

vsftp의 library search 쉘 스크립트를 수정하여 64비트 버전의 so를 연결해줘서 해결했다.

그런데...xinetd에 의해 재실행 시키니 ftp 포트를 바인드 할 수 없어 리슨을 할수 없다는 에러가 뜬다.

그에 대한 해답은http://kldp.org/node/41994<- 이곳에서 얻었다.

뭐 아주 완벽한 해답은 아니지만 나에게는 충분한 해결책이었다.

//-------------------------------------------------------------------------------------------------------

xinetd 데몬이 올라와 있으면 이미 ipv4가 xinetd에 할당 되어 있기 때문에더이상 바인드 되지 않습니다.

즉,. 1개의 자원이 같은 서비스에 2중 할당 되는 꼬라지가 되기 때문에vsftpd를 독립모드로 실행 시키시고, xinetd에 의하여 시작되어진것을중지 시키시믄 됩니다.

vi /etc/xinet.d/vsftpd으로 편집하여

disable = no 를
disable = yes 로 수정하고

/etc/rc.d/init.d/xinetd restart

를 실행하여 변경된 내용을 적용시킵니다.

//-------------------------------------------------------------------------------------------------------

위와 같이 한 이후에 vsftpd를 따로 띄워서 실행시켜주면 된다.



--꼬리--

# sooyoung change

if locate_library /lib64/libcap.so.1; then

echo "/lib64/libcap.so.1";

elif locate_library /lib/libcap.so.1; then

echo "/lib/libcap.so.1";

elif locate_library /lib/libcap.so.2; then

echo "/lib/libcap.so.2";

else

locate_library /usr/lib/libcap.so && echo "-lcap";

locate_library /lib/libcap.so && echo "-lcap";

locate_library /lib64/libcap.so && echo "-lcap";

fi



출처 : http://anipage.tistory.com/766

출처 : http://rootrator.tistory.com/tag/ssh%EC%B0%A8%EB%8B%A8

ssh 로그인 할때 root 로 직접 로그인 하지 못하도록 막는 방법입니다.

#vi /etc/ssh/sshd_config

아래부분의 주석을 해제하고 no 로 수정

PermitRootLogin no

#/etc/rc.d/init.d/sshd restart 프로세스 재시작

------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

간혹 특정 서버의 Sucure로그를 보면 해외IP로 무수히 많은 SSH접근을 시도한 흔적이 있었다.


그래서 특정 IP또는 특정 계정만 접속이 가능하도록 설정을 하였다.

먼저 특정 IP만 SSH가 가능하도록 설정을 하기 위해선

일단 SSH를 전부 차단하도록 하자.

[root@localhost ~]# vi /etc/hosts.deny

sshd : ALL

위 설정으로 모든 호스트(IP)는 ssh 사용이 불가능하다.

이후에

[root@localhost ~]# vi /etc/hosts.allow

sshd : xxx.xxx.xxx. : ALLOW (C클래스 단위 ssh접속 허용)
sshd : xxx.xxx.xxx.xxx : ALLOW (단일 호스트 ssh 접속허용)


hosts.deny와 hosts.allow는 deny가 먼저 적용 된 후에 allow가 적용이 된다.

이제 ssh서비스를 재시작하면 끝.


계정을 차단하기 위해선 pam을 이용해야 한다.

[root@localhost ~]# vi /etc/pam.d/sshd

account required pam_access.so

해당 줄을 추가 해준다음

[root@localhost ~]# vi /etc/security/access.conf

-:ALL EXCEPT 계정1, 계정2:ALL

위 내용추가한 후에는 access.conf에 정의해준 계정 이외엔 SSH접속이 불가능하다.


1. 하드 디스크 파티션 및 용량 보기 ( h옵션은 표기 단위를 쉽게 보여줌)
df - h

2. 현재 이하 디렉토리 용량 보기 ( h옵션은 표기 단위를 쉽게 보여줌)
du -h

3. Mysql 실행 및 종료
실행 : mysqld_safe &
종료 : mysqladmin -uroot -p shutdown

4. 프로세스 전체 보기 (필요시 grep 이용)
ps -ef
ps -ef | grep mysql

5. 네트웍 상태 보기
netstat -lnp

6. 서버 default 각종 포트 확인(아래의 파일 확인)
/etc/services

7. 로그파일이나 변하는 텍스트 파일의 tail을 보는 방법 (30줄 단위)
tail -30f mylog.txt