<로그파일 개론>


시스템관리에 있어서 무시못할 일이 로그파일분석과 관리일 것이다.

시스템에 이상징후가 발생을 했을 때, 시스템관리자가 가장먼저 확인해 보는 것이 로그파일이다.

시스템이 해킹을 당했다고 느낄에 우린 로그파일에 의존하게된다.

어디서(IP Address) 누가(ID) 어떻게(port) 들어와서 어떤작업을 했는지를 확인하려할 때 우린 전적으로 로그파일에

의존하게 된다.

로그파일을 잘 관리함으로 인해서 시스템관리자에게 마지막 희망을 주기도 한다.

따라서 시스템관리자는 로그파일관리에 절대 소홀해서는 아니된다.


기본적으로 운영체제(시스템이라고 하자)에서 남겨지는 기본적인 로그들(syslogd에 관한 로그들)만도 여러개지만

웹서버(주로 아파치)를 운영하고 있다면 웹로그가 있을 것이고

메일서버(주로 sendmail과 pop)를 운영한다면 메일로그파일이 존재할 것이다.

또한 DNS, 즉 named를 운영하고 있다면 named에 관한 로그파일이 존재할 것이고,

ftp서버를 운영하면서 파일서버로 운영을 한다면 ftp 로그파일도 존재할 것이며,

samba서버를 운영한다면 이에 대한 로그도 존재할 것이다.


로그파일에 대해서 일일이 열거하는 일 자체가 그리 중요한 것은 아니지만, 자기가 운영하는 시스템에 어떤 로그파일이

존재하며 어떤데몬(또는 프로세스)에 의해서 로그가 남겨지는가는 정확히 알고 있어야한다.

아울러 로그파일시스템이 어떤 경로로 남겨지게 되는지에 대해서도 정확히 알고 있어야할 것이다.


 

<로그파일의 종류>


로그이름

로그파일명

관련데몬

설명

커널로그

/dev/console

 

콘솔에 뿌려지는 로그

시스템로그

/var/log/messages

syslogd

리눅스커널로그 및 주된로그

보안로그

/var/log/secure

inetd

inetd에 의한 로그

메일로그

/var/log/maillog

sendmail
popper

메일로그(sendmail에 의한 로그)

크론로그

/var/log/cron

crond

crond에 의한 로그

부팅로그

/var/log/boot.log

 

시스템부팅시의 로그

FTP로그

/var/log/xferlog

ftpd

ftp로그

웹로그

/usr/local/apache/logs/access_log

httpd

아파치(웹서버)로그

네임서버로그

/var/log/named.log

named

네임서버(DNS)로그



기본적인 로그들은 syslogd에 의해서 제어가 되며, syslogd의 설정파일인 /etc/syslog.conf 파일을 수정함으로써

이 파일들의 저장위치와 저장파일명을 변경할 수도 있다.



콘솔로그(/dev/console)


이 로그는 커널(kernel)에 관련된 내용을 시스템콘솔에 뿌려주는 로그이다.

물론, messages내용과 일치하지는 않지만

시스템에 관련된 중요한 내용들(예, 시스템풀, 다운등)에 대한 로그를 관리자에게 알리고자 함이 목적이기 때문에

출력을 파일로 저장하는 것이 아니라 장치명(/dev/console)을 사용하여 콘솔로 로그를 뿌려주게 된다.



시스템로그(/var/log/messages)


이 로그파일의 내용을 잠깐만 보면 다음과 같다.

이 로그에 기록되는 내용은 주로 접속시의 인증에 관한 것과 메일에 관한 내용, 그리고 시스템에 관한 변경사항등 시스템에 관한 전반적인 로그를 기록하는 파일이다.

시스템관리자에 의해서 가장 소중하게 다루어지는 로그이기도 하다.

이 파일에 기록되는 내용을 변경하고자 한다면 /etc/syslog.conf 파일의 내용에서 수정을 해주면 된다.



보안로그(/var/log/secure)


이 로그파일의 내용을 잠깐만 보면 다음과 같다.

이것은  inetd에 의한 로그파일이다.

inetd에 관한 것은 이미 강좌를 한 것이 있으므로 참조하기 바라며, 요즘 리눅스의 배포판에는 inetd보다도 xinetd로 업그레이드되어 배포되는 경우가 대부분이다.

하지만 xinetd를 사용하는 시스템에도 이 파일에 로그가 기록된다.

xinetd데몬의 확인 방법은 간단히 다음과 같이 할 수 있다.


-ef라는 옵션외에도 aux라는 옵션으로 다음과 같은 방법으로도 확인이 가능하다.

#ps aux | grep xinetd

또한 실행중인 xinetd의 PID저장 파일은 /var/run/xinetd.pid 이다.



메일로그(/var/log/maillog)


이 로그파일의 내용을 잠깐만 보면 다음과 같다.

이 로그파일의 이름에서 의미하는 바와같이 sendmail이나 pop등의 실행에 관한 기록이 남겨지게 된다.

메일을 주고받을 때에 이 로그파일에기록이 된다.

즉, smtp와 pop에 관한 로그라고 말할 수 있다.

이 로그파일과 관련된 sendmail 데몬의 확인 방법은 간단히 다음과 같이 할 수 있다.


또한 실행중인 sendmail의 PID저장 파일은 /var/run/sendmail.pid 이다.

 


크론로그(/var/log/cron)


이 로그파일의 내용을 잠깐만 보면 다음과 같다.

시스템의 크론이 작업한 기록을 보관하고 있는 파일이다.

이파일을 보면 크론데몬인 crond가 언제 어떤작업을 했는가를 확인할 수가 있다.

위의 예를 보면 알 수 있는 바와 같이 crond에 의해서 실행되었던 데몬(프로세스, 응용프로그램등)들이 기록되어 있음을 알 수 있다.

즉, crond에 의해서 생성되는 로그가 기록되는 파일이다.

이 로그파일과 관련된 crond데몬의 확인 방법은 간단히 다음과 같이 할 수 있다.

 

또한 실행중인 crond의 PID저장 파일은 /var/run/crond.pid 이다.

 


부팅로그(/var/log/boot.log)


이 로그파일의 예를 잠깐 살펴보자.

시스템의 데몬들이 실행되거나 재시작되었을 때 기록되는 로그파일로서 위의 예는 sendmail을 재시작했을 때 boot.log파일에 기록된 예를 보인 것이다.

 

 

FTP로그(/var/log/xferlog)


이 로그파일의 내용을 잠깐만 보면 다음과 같다.

ftp나 ncftp등의 접속이 이루어 졌을 때 이 로그파일에 기록이 된다.

예를 들어  ws_ftp나 cute_ftp등을 사용했을 때 이 로그파일에 기록되고, 업로드한 파일과 다운로드한 파일들에 대한 자세한 기록과 함께 남겨지게 된다.



웹로그(/usr/local/apache/logs/access_log)



리눅스에서 웹서버로는 대부분 아파치를 사용하므로 아파치로그에 대한 예를 든 것이다.

대부분 아파치의 설치위치가 /usr/local/apache이므로 아파치 로그파일의 위치는

/usr/local/apache/logs/access_log 가 된다.

만약, 웹호스팅등으로 여러개의 웹사이트를 운영한다면 각각의 웹사이트 로그파일의 위치는

/home/ID/www_log 가 될 것이다.

물론, 이 위치는 필자가 권하는 위치이며, 다른곳에 저장을 해도 무방하다.

사용자 각각의 웹사이트의 위치를 지정하는 곳은 아파치 설정파일인 /usr/local/apache/conf/httpd.conf 파일중

<Virtual Host>라는 곳에서 하게된다.


가장히 예를 들어본다면 다음과 같다.



httpd.conf 파일의 내용중 가상호스트 설정부분을 예를 든 것으로 이 사이트(abcc.or.kr)의 로그파일위치는

지정한 대로 /home/abcc/www_log/access_log가 된다.

다른 가상호스트의 사이트위치도 이와 같다고 할 수 있다.

이 로그파일과 관련된 httpd데몬의 확인 방법은 간단히 다음과 같이 할 수 있다.


 

또한 실행중인 httpd의 PID저장 파일은 /usr/local/apache/logs/httpd.pid 이다.



라스트로그(/var/log/lastlog)

이 파일에는 가장 최근에 로긴한 정보를 저장하고 있습니다.  last 라는 명령어를 입력했을때의 정보를 저장하고 있는
파일이다. 관련 명령어는 last 이다.



utmp 로그(/var/run/utmp)

이 파일은 현재시스템에 접속해 있는 사용자의 정보를 가지고 있습니다. 시스템은 사용자가 remote로 접속을 하면 먼저 이 파일에 기록을 하고 로그아웃을 할 때에 기록해둔 정보를 삭제합니다.

btmp 로그(/var/log/btmp)

이 파일은 로그인에 실패한 기록 에 대한 정보가 포함되어 있습니다. BTMP 파일을 볼 수있는 명령어는 last -f /var/log/btmp 이며 많은 내용이 있을 경우 last -f /var/log/btmp | more 입니다.


wtmp 로그(/var/log/wtmp)

다음으로 wtmp에 대해서 알아보자. 이 파일에는 처음부터 접속했던 모든 사용자의 로그인정보와 로그아웃정보를
가지고 있습니다.  이파일은 삭제해주지 않으면 계속 누적이 되므로 정기적으로 백업을 받아 두든지 아니면
불필요한 정보를 삭제하든지 해야합니다.

이 파일에 기록되는 정보는 utmp.h에 있는 내용에 ut_time 이추가되어 로그 아웃시의 시간이 추가기록됩니다.

해킹 사건을 해결하고자 할때 이 로그 파일을 자주 이용하여 분석합니다.

명령어는 last 명령어를 사용합니다.




블로그 이미지

칩사마코더

,

rdate -s time.bora.net

블로그 이미지

칩사마코더

,

환경

OS : CentOS-7

전통적인 iptables 를 기반으로 하지만..
firewalld 라는 패키지로 관리함…
그냥 iptables 를 사용하던가.. firewall-cmd 를 사용하던가.. 편한대로 사용하면 됨

 

설정파일

설정 경로 : /etc/firewalld

firewall-cmd를 이용해서 일반적인 설정을 하게 되면
/etc/firewalld/zones/public.xml 에 저장됨…

설치후 별다른 추가 설정을 하지 않았다면

firewall-cmd –get-default-zone

명령어를 실행 한 결과는 ”public”으로 출력될 것이다.

 

기본 사용법

환경 : 터미널 기반
명령어 : firewall-cmd

 

조건 : 20,22,80포트(TCP)를 허용

룰 추가

firewall-cmd --add-port=21/tcp
firewall-cmd --add-port=22/tcp
firewall-cmd --add-port=80/tcp

룰 삭제

firewall-cmd --remove-port=21/tcp
firewall-cmd --remove-port=22/tcp
firewall-cmd --remove-port=80/tcp

 

조건 : 8000 ~ 9000 까지의 포트(TCP)를 허용

firewall-cmd --add-port=8000-9000/tcp
firewall-cmd --remove-port=8000-9000/tcp

 

조건 : 192.168.0.0/255.255.255.0 대역을 허용

firewall-cmd --add-source=192.168.0.0/24
firewall-cmd --remove-source=192.168.0.0/24

 

조건 : 192.168.3.100 아이피를 허용

firewall-cmd --add-source=192.168.3.100
firewall-cmd --remove-source=192.168.3.100

 

조건 : 192.168.5.100 아이피를 차단

firewall-cmd --add-rich-rule='rule family="ipv4" source address=192.168.5.100 reject'
firewall-cmd --remove-rich-rule='rule family="ipv4" source address=192.168.5.100 reject'

firewall-cmd --add-rich-rule='rule family="ipv4" source address=192.168.5.100 drop'
firewall-cmd --remove-rich-rule='rule family="ipv4" source address=192.168.5.100 drop'

두개의 구문은 동일한듯 보이지만.. 약간의 차이가 있다.

  • reject : 차단을 하긴 하되… ”너 차단 되었어” 라는 응답을 해준다.
  • drop : 그냥 차단….

실제로 사용시에는 drop 을 사용하면 되겠다…

 

조건 : 192.168.10.170 아이피에 대해 80번 포트를 허용

firewall-cmd --add-rich-rule='rule family="ipv4" source address=192.168.10.170 port port="80" protocol="tcp" accept'
firewall-cmd --remove-rich-rule='rule family="ipv4" source address=192.168.10.170 port port="80" protocol="tcp" accept'

 

하지만.. 본 내용은… running 상태에서만 유효할 뿐..
서비스를 죽이거나 리부팅을 했을 경우에는 설정이 모두 날아감..

실제로 public.xml 파일을 확인해도 설정했던 내용들을 찾을 수 없다.

 

설정파일에 적용 하기

firewall-cmd –permanent
형태로 옵션을 줘야 한다.

firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=8000-9000/tcp
firewall-cmd --permanent --add-source=192.168.0.0/24
firewall-cmd --permanent --add-source=192.168.3.100
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address=192.168.5.100 reject'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address=192.168.5.100 drop'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address=192.168.10.170 port port="80" protocol="tcp" accept'

그리고 나서

firewall-cmd –reload

명령을 이용해 설정파일의 내용을 반영….

 

터미널에서 상태 확인

# firewall-cmd --list-all
public (default)
interfaces:
sources: 192.168.3.100 192.168.0.0/24
services: dhcpv6-client ssh
ports: 21/tcp 80/tcp 8000-9000/tcp 22/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.5.100" reject
rule family="ipv4" source address="192.168.5.100" drop
rule family="ipv4" source address="192.168.10.170" port port="80" protocol="tcp" accept

 

public.xml 내용

<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description></description>
<source address="192.168.0.0/24"/>
<source address="192.168.3.100"/>
<service name="dhcpv6-client"/>
<service name="ssh"/>
<port protocol="tcp" port="21"/>
<port protocol="tcp" port="80"/>
<port protocol="tcp" port="8000-9000"/>
<port protocol="tcp" port="22"/>
<rule family="ipv4">
<source address="192.168.5.100"/>
<reject/>
</rule>
<rule family="ipv4">
<source address="192.168.5.100"/>
<drop/>
</rule>
<rule family="ipv4">
<source address="192.168.10.170"/>
<port protocol="tcp" port="80"/>
<accept/>
</rule>
</zone>


블로그 이미지

칩사마코더

,

간혹 fstab에 잘못된 Block Device 정보가 등록 되거나, 디스크의 Label 또는 정보가 변경 되어 정상적인 부팅이 되지 않고

Repair Filesystem 모드로 들어가는 경우가 생길 때가 있습니다.

 

Repair Filesystem 상태일 때는 / 파티션이 Read-only 상태로 마운트가 되기 때문에 /etc/fstab 파일의 수정이 불가능한데,

아래와 같이 Read-Write 모드로 remount 해주면 수정이 가능합니다. (싱글모드로 부팅할 경우에도 Read-Only 상태 입니다.)

 

# mount -o remount,rw /

블로그 이미지

칩사마코더

,

ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

블로그 이미지

칩사마코더

,

리눅스 디스크 추가 후 마운트 하기



서버는 코노하 VPS 에서 용량은 200기가를 추가해서 테스트 하였습니다.


마운트 방법은 파티션 라벨로 하는 방법과 UUID 로 마운트 하는 방법에 대해서 알아봅니다.


[root@conoha-jp ~]# fdisk -l

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.


Disk /dev/vda: 21.5 GB, 21474836480 bytes, 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: gpt



#         Start          End    Size  Type            Name

 1         2048         6143      2M  BIOS boot parti biosboot

 2         6144     41940991     20G  EFI System      rootfs


Disk /dev/vdb: 214.7 GB, 214748364800 bytes, 419430400 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes


[root@conoha-jp ~]# fdisk -l /dev/vdb


Disk /dev/vdb: 214.7 GB, 214748364800 bytes, 419430400 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes


fdisk 명령어로 추가된 디스크를 확인합니다.



이번에는 fdisk 로 파티션을 잡으면 됩니다.


[root@conoha-jp ~]# fdisk /dev/vdb

Welcome to fdisk (util-linux 2.23.2).


Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.


Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0xbe02cf7a.


Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-419430399, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399):

Using default value 419430399

Partition 1 of type Linux and of size 200 GiB is set


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks.


굵은 글씨를 따라하면 됩니다. 용량은 엔터, 엔터 치시면 됩니다.


파티션을 잡았으니 이번엔 ext4 로 포맷을 합니다.


[root@conoha-jp ~]# mkfs.ext4 /dev/vdb1

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

13107200 inodes, 52428544 blocks

2621427 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=2199912448

1600 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624, 11239424, 20480000, 23887872


Allocating group tables: done

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done


포맷이 완료되었으면 마운트를 해야합니다.


그냥 마운트를 한다면 재부팅시에 다시 마운트를 수동으로 해야 하므로 자동으로 마운트가 되도록 /etc/fstab 을 수정하도록 합니다.


/etc/fstab 에 아래 내용을 추가하여 줍니다.


방법1 ( 파티션 라벨로 마운트 )

/dev/vdb1 /home ext4 defaults 1 1


방법2 ( 파티션 UUID로 마운트 )

[root@conoha-jp ~]# blkid /dev/vdb1

/dev/vdb1: UUID="939dd5c4-7e89-4f4a-aab6-098e3acaac30" TYPE="ext4"


UUID=939dd5c4-7e89-4f4a-aab6-098e3acaac30 /home ext4 defaults 1 1



수동으로 마운트를 하고 마운트가 잘 되었는지 확인하는 방법은 아래와 같습니다.

[root@conoha-jp ~]# mount -t ext4 /dev/vdb1 /home

[root@conoha-jp ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/vda2        20G  3.4G   16G  19% /

devtmpfs        236M     0  236M   0% /dev

tmpfs           245M     0  245M   0% /dev/shm

tmpfs           245M  8.4M  237M   4% /run

tmpfs           245M     0  245M   0% /sys/fs/cgroup

tmpfs            49M     0   49M   0% /run/user/0

/dev/vdb1       197G   61M  187G   1% /home

마운트가 잘 되었군요.


재부팅 후에도 자동으로 마운트가 되는지 확인을 하면 됩니다.



출처: http://blog.ivps.kr/153 [iVPS 가상서버호스팅]

블로그 이미지

칩사마코더

,

iptables -A INPUT -p tcp --dport 80 -m recent --update --seconds 1 --hitcount 10 --name HTTP -j DROP

- 1초동안 80포트에 똑같은 IP가 10번 이상의 SYN가 들어오면 드랍시킨다.
   이는 정상적인 요청이 아닌 공격으로 간주한다.


iptables -m connlimit -h

# iptables -A FORWARD -m recent --name badguy --rcheck --seconds 300 -j DROP
# iptables -A FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 30 -m recent
--name badguy --set -j DROP
# iptables -A FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 30 -j DROP
위의 3 줄을 실행하면 가능한데,단순히3번째 룰인
# iptables -A FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 30 -j DROP
만 실행하게 되면,한 IP에서의 동시접속이 30회만 접속을 허용할 뿐 그 이상 접속을 하지
못하지만, 위의 두 룰을 함께 사용하게 되면 동시접속이 30회 이상 초과하는 IP를 dynamic
하게 300초(5분)동안 자동 차단하게 된다. 동시접속수(30) 제한이나 차단시간(5분)은 각자
의 환경에 따라 적절히 설정하면 된다.
이때 과다접속으로 차단된 IP에 대한 정보는 다음과 같이 실시간으로 확인할 수 있다.
# cat /proc/net/ipt_recent/badguy



출처: http://gampol.tistory.com/entry/ddos공격-예방-iptables룰 [유효하지 않네]

블로그 이미지

칩사마코더

,

메타 데이터의 끝으로 건너뛰기
메타 데이터의 시작으로 이동

EC2 인스턴스를 만들어 보면 특징이 하나 있는데, swap 파티션이 없다.

추측하기로 이는 필요한 메모리에 맞는 상위 인스턴스를 사용하라는 AWS 의 영업전략으로 보인다.

하지만 대부분의 경우 제공 받은 메모리로 충분하지만 간혹 사용자가 늘어서 메모리가 부족하여 서버가 죽는 경우라면

이를 위해 상위 인스턴스를 사용하는 것보다는 swap 을 추가하는 것이 비용면에서 효율적이다.

 

또한 EBS 전용 인스턴스가 아닌 m3.large 급 정도만 되면 재부팅시마다 초기화되는 추가 Instance Storage를 제공해준다. (속도도 EBS보다 빠름)

따라서 EBS말고 Instance Storage에 swap을 만들어주면 효율적이다. Instance Storage가 제공되지 않는 인스턴스에서는 EBS에 만들어야 한다.

물론 t1.micro 같은 Free Tier 인스턴스는 제공 메모리 613MB 웬만한 서비스를 하나 돌려볼려면 swap을 추가하는 것은 필수라고 할 수 있다.


가장 많이 사용할 것으로 보이는 t2.micro Amazon Linux (메모리 996MB) 기준으로 작업

 

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=512     # 512MB 스왑용 파일 생성
   
$ sudo chown root:root /swapfile    # root 소유
   
$ sudo chmod 600 /swapfile          # 권한설정
   
$ sudo mkswap /swapfile
   
$ sudo swapon /swapfile
  
$ sudo swapon -a
  
   
 
$ sudo vi /etc/fstab        # 리부팅시 인식할 수 있도록 fstab에 등록 (실수할 경우 부팅이 안될 수 있으니 스냅샷 + 조심!)
   
가장 아래줄에 내용추가
   
/swapfile   swap   swap   defaults  0  0
   
 
$ sudo swapon -s    # sanity test  Swap 에 설정한 용량이 사용되었는지 확인
   
$ free -m           # sanity test  Swap 에 설정한 용량이 사용되었는지 확인


'리눅스' 카테고리의 다른 글

리눅스 디스크 추가 후 마운트 하기  (2) 2017.04.29
ddos공격 예방 iptables룰  (0) 2017.04.07
aws 서버 한국시간으로 맞추기  (0) 2017.03.31
폴더 및 파일 권한 변경  (0) 2016.12.13
iptalbes란?  (0) 2016.11.02
블로그 이미지

칩사마코더

,

ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

'리눅스' 카테고리의 다른 글

ddos공격 예방 iptables룰  (0) 2017.04.07
aws 스왑 메모리 만들기  (0) 2017.04.02
폴더 및 파일 권한 변경  (0) 2016.12.13
iptalbes란?  (0) 2016.11.02
iptables 방어설정  (0) 2016.11.02
블로그 이미지

칩사마코더

,

chmod 755 -R /폴더명 

하위폴더까지 변경하고 싶다면 -R


■ 리눅스 시스템의 파일 및 디렉토리에 대한 권한/그룹 관리


(1) 권한에 대한 관리
: 파일이나 디렉토리의 permition을 관리한다.

● 명령어
chmod [권한값] [파일명]

● 권한값에 대한 정의
: ls -al 명령을 통해 파일/디렉토리의 권한을 확인할 수 있다.


r : 읽기권한(4) , w : 쓰기권한(2), x : 실행권한(1)

- 10자리의 의미를 파악하기 위해 4파트로 나누어 해석

- [디렉토리 1자리] [소유자권한 3자리] [그룹권한 3자리] [전체권한 3자리]

 - 권한값 읽기 : [ -rw-rw-r-- ] => 664로 읽을 수 있다. (r+w(6), r+w(6), r(4))

● 파일 권한 변경하기
: chmod 명령을 이용해 파일의 권한을 변경


- chmod 755 test.c 명령실행
- test.c 라는 파일의 권한이 664 에서 755로 변경
- 소유자권한 : 읽기, 쓰기, 실행
- 그룹권한 : 읽기, 실행
- 전체권한 : 읽기, 실행

● 디렉토리 권한 변경하기
: chmod 명령을 이용해 디렉토리의 권한을 변경


- chmod 750 tes 명령실행
- test 라는 디렉토리의 권한이 775 에서 750로 변경
- 소유자권한 : 읽기, 쓰기, 실행
- 그룹권한 : 읽기, 실행
- 전체권한 : 없음 

=> root 또는 동일그룹의 사용자를 제외하고는 디렉토리를 열 수 없다.
    디렉토리에 대한 실행 권한은 디렉토리 오픈을 의미한다.

'리눅스' 카테고리의 다른 글

aws 스왑 메모리 만들기  (0) 2017.04.02
aws 서버 한국시간으로 맞추기  (0) 2017.03.31
iptalbes란?  (0) 2016.11.02
iptables 방어설정  (0) 2016.11.02
CentOS | 서버 부팅 시 서비스(Service) 자동으로 시작되게 하기  (0) 2016.10.20
블로그 이미지

칩사마코더

,