2009년 9월 17일 목요일

[리눅스] FTP 폴더 목록 권한 설정



FTP 폴더가 /home 디렉 토리 아래 일반 계정 디렉토리와 함께 존재 할경우

/home 까지만 접근 하도록 하는 디렉토리 권한 설정 방법이다.


1. 일단 특정 그룹을 생성한다. (필자의 경우 ftp 그룹생성)

$addgroup ftp




2. /home 과 /home/FTP 폴더의 그룹 권한을 변경한다.

$chown root.ftp -R /home/



3. 사용자를 생성하거나 기존 사용자를 FTP 그룹에 추가 한다.
$vi /etc/group 해서
ftp 계정 부분에 ftp 를 사용하게 할 사용자를 추가한다.



4. vsftpd 설정을 바꾼다
$vi /etc/vsftpd.config
chroot_local_user=YES 부분을 찾아 주석을 제거한다 이렇게 하면 사용자는 자기 폴더 상위를 접근 못하게 된다.




5. 4번까지만 하면 자기 폴더 상위는 접근 못하게 되므로 상위에 있는 FTP 폴더를 접근 못한다.
따라서 아래와 같이 변경해준다.

$usermod -d /home/ 사용자
이렇게 해주면 해당 사용자는 /home/폴더 아래에 있는 모든 폴더 들이 보여진다 물론 FTP 폴더도 접근 가능해진다. 하지만 /home 상위의 폴더는 접근 불가한다.

만약 특정 사용자(root )수준의 ftp 사용자가 /home 상위 이상을 접근하고 싶다면 그 사용자만
$usermod -d ../ 사용자 해주면 모든 디렉토리를 ftp를 통해 접근 가능해 진다.

[리눅스] usermod 명령어



usermod

사용자 계정정보를 수정하는 명령어이다.
기존에 생성되어 있는 계정사용자의 다음과 같은 계정정보들을 수정할 수 있다.

사용형식

       usermod [-c comment] [-d home_dir [ -m]]
               [-e expire_date] [-f inactive_time]
               [-g initial_group] [-G group[,...]]
               [-l login_name] [-p passwd]
               [-s shell] [-u uid [ -o]] [-L|-U] login

사용예 #1

다음은 sspark5라는 계정사용자의 /etc/passwd, /etc/shadow, /etc/group내에 설정된 기본 설정내용이다.

[root@host3 root]# grep sspark5 /etc/passwd
sspark5:x:506:508::/home/sspark5:/bin/bash
[root@host3 root]#
[root@host3 root]# grep sspark5 /etc/shadow
sspark5:$1$/H.bOlGk$jeEdF1g7naK9vVe4v5i/s/:12314:0:99999:7:::
[root@host3 root]#
[root@host3 root]# grep sspark5 /etc/group
sspark5:x:508:
[root@host3 root]#

위의 초기 설정값을 간단히 보면 UID는 506, GID는 508, 코멘트는 현재 없으며, 홈디렉토리는 /home/sspark5이며, 사용하는 기본쉘은 bash쉘임을 알 수 있다.
이제 이 값들을 usermod로 바꾸어 보도록 하자.

먼저, sspark5사용자의 코멘트를 입력해 보자.

[root@host3 root]# usermod -c 박성수 sspark5
[root@host3 root]#

위의 예와 같이 코멘트를 수정하는 usermod의 옵션은 -c이다.

다음은 /etc/passwd내에 sspark5의 변경된 코멘트를 확인한 것이다.

[root@host3 root]# grep sspark5 /etc/passwd
sspark5:x:506:508:박성수:/home/sspark5:/bin/bash
[root@host3 root]#

사용예 #2

이번에는 sspark5사용자의 홈디렉토리를 변경해보자.
usermod에서 홈디렉토리를 변경하는 옵션은 -d이다.

[root@host3 root]# usermod -d /usr/sspark5 sspark5
[root@host3 root]#

위와 같이 홈디렉토리를 변경하였다.

다음은 변경된 값을 확인한 것이다.

[root@host3 root]# grep sspark5 /etc/passwd
sspark5:x:506:508:박성수:/usr/sspark5:/bin/bash
[root@host3 root]#

한가지 주의할 것은 홈디렉토리의 위치가 변경되었지만 원래 있던 홈디렉토리파일들이 삭제되거나 이동되는 것은 아니다.
원래의 홈디렉토리내에 존재하는 파일들은 모두 그대로 존재한다.

사용예 #3

이번에는 -e옵션을 사용하여 sspark5의 계정 종료일을 설정해보자.

[root@host3 root]# usermod -e 2006-12-31 sspark5
[root@host3 root]#

위와 같이 설정한 후에 /etc/shadow파일을 확인한 것이다.
계정 종료일의 설정은 위에서 보았던 /etc/shadow파일의 내용과는 달리 '13513"이 설정되어 있는 거을 알 수가 있다.

[root@host3 root]# grep sspark5 /etc/shadow
sspark5:$1$/H.bOlGk$jeEdF1g7naK9vVe4v5i/s/:12314:0:99999:7::13513:
[root@host3 root]#

사용예 #4

이번에는 sspark5의 기본사용쉘을 변경해 보자.
sspark5의 원래 사용했던 기본사용쉘은 /bin/bash(Bash Shell)이였다.
이것을 usermod로 다음과 같이 /bin/csh(C Shell)로 변경한 것이다.

[root@host3 root]# usermod -s /bin/csh sspark5 
[root@host3 root]#

이를 확인하기 위하여 /etc/passwd의 내용을 확인하였다.

[root@host3 root]# grep sspark5 /etc/passwd
sspark5:x:506:508:박성수:/usr/sspark5:/bin/csh
[root@host3 root]#

사용예 #5

이번에는 sspark5의 UID를 변경해 보자.
UID를 변경하기 위해서는 -u옵션을 사용하면 된다.

[root@host3 root]# usermod -u 508 sspark5    
[root@host3 root]#

원래 sspark5의 UID는 506이였던 것을 508로 변경한 것이다.
다음은 변경된 UID값을 확인한 것이다.

[root@host3 root]# grep sspark5 /etc/passwd
sspark5:x:508:508:박성수:/usr/sspark5:/bin/csh
[root@host3 root]#

이상과 같이 usermod에 대해서 살펴보았다.
usermod명령어는 useradd, useradd -D, userdel과 함께 익혀두는 것이 바람직한다.
여러분들의 건투를 빈다.

2009년 9월 3일 목요일

[리눅스] useradd 옵션



useradd 옵션

-d /user/id --> 홈디렉토리 위치를 /user/id 로 지정함

-u 2000 --> UID 를 2000 으로 지정함

-s /bin/sh --> id 사용자가 기본으로 사용할 쉘 종류를 C쉘로 지정함

-c I'm a man --> 계정사용자의 간단한 코멘트

-e 2009-09-03 --> id의 계정사용기간

-p 1234 --> id의 기본 패스워드

siidc --> 생성할 계정명

1번) useradd -d /home/xnote -u 2000 -s /bin/sh -c NOTEBOOK -e 2007-11-11 -p 1 siidc

ex) useradd -u 1000 -g web -d /user/web -s /bin/sh

2번) useradd에 관한 사용자 생성 및 관리 를 하는 (3개의 파일 _ 디렉토리)

cat /etc/default/useradd--->해당 추가유져 에 대하여 세부적으로 설정가능

cat /etc/login.defs--->메일디렉토리/패스워드기간및알림/UID/GID설정

cat /etc/skel--->계정생성시 자동복사 되는 원본 디렉토리

# useradd defaults file

GROUP=100---> 소속될 그룹의 GID

HOME=/home/web---> 사용자의 홈디렉토리위치

INACTIVE=-1---> 사용자의 패스워드 종료일수 이후의 유효기간

EXPIRE=---> 앞으로 추가 되는 계정들의 종료일수 “2010-10-30” 라고 함

SHELL=/bin/bash---> 기본쉘로 사용할 쉘의 종류이다.

SKEL=/etc/skel---> 새로 생성되는 사용자의 홈디렉토리로 복사될 초기환경파일들이 저장된 디렉토리 지정하는곳

※ 리눅스 는 2번 예제로 설정하는 것보다 1번 예제로 설정하였는것 을 우선으로 함! ※
\