탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1 관리: 보안 서비스 Oracle Solaris 11.1 Information Library (한국어) |
다음 절차에서는 UNIX 사용 권한으로 파일을 보호하고, 보안 위험이 있는 파일을 찾고, 해당 파일로 인한 손상으로부터 시스템을 보호합니다.
다음 작업 맵에서는 파일 사용 권한을 나열하고, 파일 사용 권한을 변경하고, 특수 파일 사용 권한으로 파일을 보호하는 절차에 대해 설명합니다.
|
ls 명령을 사용하여 디렉토리의 모든 파일에 대한 정보를 표시합니다.
% ls -la
사용자 소유권, 그룹 소유권 및 파일 사용 권한이 포함된 긴 형식을 표시합니다.
점(.)으로 시작하는 숨겨진 파일을 비롯하여 모든 파일을 표시합니다.
ls 명령에 대한 모든 옵션은 ls(1) 매뉴얼 페이지를 참조하십시오.
예 7-1 파일 정보 표시
다음 예에서는 /sbin 디렉토리에 있는 파일의 부분 목록이 표시됩니다.
% cd /sbin % ls -la total 4960 drwxr-xr-x 2 root sys 64 Dec 8 11:57 ./ drwxr-xr-x 39 root root 41 Dec 8 15:20 ../ -r-xr-xr-x 1 root bin 21492 Dec 1 20:55 autopush* -r-xr-xr-x 1 root bin 33680 Oct 1 11:36 beadm* -r-xr-xr-x 1 root bin 184360 Dec 1 20:55 bootadm* lrwxrwxrwx 1 root root 21 Jun 7 2010 bpgetfile -> ... -r-xr-xr-x 1 root bin 86048 Dec 1 20:55 cryptoadm* -r-xr-xr-x 1 root bin 12828 Dec 1 20:55 devprop* -r-xr-xr-x 1 root bin 130132 Dec 1 20:55 dhcpagent* -r-xr-xr-x 1 root bin 13076 Dec 1 20:55 dhcpinfo* . . .
각 행에는 파일 정보가 다음 순서대로 표시됩니다.
파일 유형 – 예: d. 파일 유형 목록은 파일 및 디렉토리 소유권을 참조하십시오.
사용 권한 – 예: r-xr-xr-x. 설명은 파일 및 디렉토리 소유권을 참조하십시오.
하드 링크 수 – 예: 2
파일 소유자 – 예: root
파일 그룹 – 예: bin
파일 크기(바이트) – 예: 13076
파일이 만들어진 날짜 또는 파일이 마지막으로 변경된 날짜 – 예: Dec 1 20:55
파일 이름 – 예: dhcpinfo
시작하기 전에
파일 또는 디렉토리 소유자가 아닌 경우 객체 액세스 관리 권한 프로파일에 지정되어 있어야 합니다. 공용 객체인 파일을 변경하려면 root 역할을 맡아야 합니다.
자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
% ls -l example-file -rw-r--r-- 1 janedoe staff 112640 May 24 10:49 example-file
# chown stacey example-file
# ls -l example-file -rw-r--r-- 1 stacey staff 112640 May 26 08:50 example-file
NFS 마운트 파일에 대한 권한을 변경하려면 Oracle Solaris 11.1에서 네트워크 파일 시스템 관리의 3 장, 네트워크 파일 시스템 액세스(참조)를 참조하십시오.
예 7-2 사용자가 고유 파일의 소유권을 변경할 수 있도록 설정
보안 고려 사항 – 특별한 이유가 있는 경우에만 rstchown 변수 설정을 0으로 변경해야 합니다. 기본 설정은 공간 쿼터를 무시하기 위해 기타에 속한 것처럼 하여 사용자가 파일을 나열하지 못하도록 합니다.
이 예에서는 /etc/system 파일에서 rstchown 변수의 값을 0으로 설정합니다. 이와 같이 설정하면 파일 소유자가 chown 명령을 사용하여 파일 소유권을 다른 사용자로 변경할 수 있습니다. 또한 소유자는 chgrp 명령을 사용하여 파일의 그룹 소유권을 소유자가 속하지 않은 그룹으로 설정할 수 있습니다. 시스템을 재부트하면 변경 사항이 적용됩니다.
set rstchown = 0
자세한 내용은 chown(1) 및 chgrp(1) 매뉴얼 페이지를 참조하십시오.
시작하기 전에
파일 또는 디렉토리 소유자가 아닌 경우 객체 액세스 관리 권한 프로파일에 지정되어 있어야 합니다. 공용 객체인 파일을 변경하려면 root 역할을 맡아야 합니다.
자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
$ chgrp scifi example-file
그룹 설정에 대한 자세한 내용은 Oracle Solaris 11.1에서 사용자 계정 및 사용자 환경 관리의 1 장, 사용자 계정 및 사용자 환경 관리(개요)를 참조하십시오.
$ ls -l example-file -rw-r--r-- 1 stacey scifi 112640 June 20 08:55 example-file
예 7-2를 참조하십시오.
다음 절차에서는 사용자가 소유한 파일의 사용 권한을 변경합니다.
% chmod who operator permissions filename
사용 권한을 변경할 사용자를 지정합니다.
수행할 연산을 지정합니다.
변경할 사용 권한을 지정합니다. 유효한 기호 목록은 표 7-5를 참조하십시오.
파일 또는 디렉토리를 지정합니다.
% ls -l filename
예 7-3 심볼릭 모드로 사용 권한 변경
다음 예에서는 기타에서 읽기 권한을 제거합니다.
% chmod o-r example-file1
다음 예에서는 로컬 파일에 사용자, 그룹 및 기타에 대한 읽기 및 실행 권한이 추가됩니다.
$ chmod a+rx example-file2
다음 예에서는 로컬 파일에 그룹에 대한 읽기, 쓰기 및 실행 권한이 지정됩니다.
$ chmod g=rwx example-file3
다음 절차에서는 사용자가 소유한 파일의 사용 권한을 변경합니다.
% chmod nnn filename
파일 소유자, 파일 그룹 및 기타(해당 순서대로)에 대한 사용 권한을 나타내는 8진수 값을 지정합니다. 유효한 8진수 값 목록은 표 7-4를 참조하십시오.
파일 또는 디렉토리를 지정합니다.
주 - chmod 명령을 사용하여 기존 ACL 항목이 포함된 객체에서 파일 또는 디렉토리 권한을 변경할 경우 ACL 항목도 함께 변경될 수 있습니다. 정확한 변경 사항은 chmod 권한 작업 변경 사항 및 파일 시스템의 aclmode 및 aclinherit 등록 정보 값에 따라 달라집니다.
자세한 내용은 Oracle Solaris 11.1 관리: ZFS 파일 시스템의 7 장, ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호를 참조하십시오.
% ls -l filename
예 7-4 절대 모드로 사용 권한 변경
다음 예에서는 공용 디렉토리의 사용 권한이 744(읽기, 쓰기, 실행/읽기 전용/읽기 전용)에서 755(읽기, 쓰기, 실행/읽기 및 실행/읽기 및 실행)로 변경됩니다.
# ls -ld public_dir drwxr--r-- 1 jdoe staff 6023 Aug 5 12:06 public_dir # chmod 755 public_dir # ls -ld public_dir drwxr-xr-x 1 jdoe staff 6023 Aug 5 12:06 public_dir
다음 예에서는 실행 가능 셸 스크립트의 사용 권한이 읽기 및 쓰기에서 읽기, 쓰기 및 실행으로 변경됩니다.
% ls -l my_script -rw------- 1 jdoe staff 6023 Aug 5 12:06 my_script % chmod 700 my_script % ls -l my_script -rwx------ 1 jdoe staff 6023 Aug 5 12:06 my_script
시작하기 전에
파일 또는 디렉토리 소유자가 아닌 경우 객체 액세스 관리 권한 프로파일에 지정되어 있어야 합니다. 공용 객체인 파일을 변경하려면 root 역할을 맡아야 합니다.
자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
% chmod nnnn filename
파일 또는 디렉토리 사용 권한을 변경하는 8진수 값을 지정합니다. 맨 왼쪽에 있는 8진수 값은 특수 파일 사용 권한을 설정합니다. 특수 사용 권한에 대한 유효한 8진수 값 목록은 표 7-6을 참조하십시오.
파일 또는 디렉토리를 지정합니다.
주 - chmod 명령을 사용하여 ACL 항목이 있는 파일의 파일 그룹 사용 권한을 변경하면 파일 그룹 사용 권한과 ACL 마스크가 모두 새 사용 권한으로 변경됩니다. 새 ACL 마스크 사용 권한은 파일에 ACL 항목이 있는 추가 사용자 및 그룹에 대한 사용 권한을 변경할 수 있습니다. 모든 ACL 항목에 대해 적절한 사용 권한이 설정되도록 하려면 getfacl 명령을 사용하십시오. 자세한 내용은 getfacl(1) 매뉴얼 페이지를 참조하십시오.
% ls -l filename
예 7-5 절대 모드로 특수 파일 사용 권한 설정
다음 예에서는 dbprog 파일에 대해 setuid 사용 권한이 설정됩니다.
# chmod 4555 dbprog # ls -l dbprog -r-sr-xr-x 1 db staff 12095 May 6 09:29 dbprog
다음 예에서는 dbprog2 파일에 대해 setgid 사용 권한이 설정됩니다.
# chmod 2551 dbprog2 # ls -l dbprog2 -r-xr-s--x 1 db staff 24576 May 6 09:30 dbprog2
다음 예에서는 public_dir 디렉토리에 대해 고정된 비트 사용 권한이 설정됩니다.
# chmod 1777 public_dir # ls -ld public_dir drwxrwxrwt 2 jdoe staff 512 May 15 15:27 public_dir
다음 작업 맵에서는 시스템에서 위험성이 있는 실행 파일을 찾고 프로그램이 실행 가능 스택을 악용하지 못하도록 하는 절차에 대해 설명합니다.
|
이 절차에서는 프로그램에서 setuid 및 setgid 사용 권한의 잠재적인 무단 사용을 찾습니다. root 또는 bin 이외의 다른 사용자에게 소유권을 부여하는 실행 파일은 의심스러운 것입니다.
시작하기 전에
root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# find directory -user root -perm -4000 -exec ls -ldb {} \; >/tmp/filename
지정된 directory에서 시작하는 마운트된 경로를 모두 확인합니다. directory는 root(/), sys, bin 또는 mail일 수 있습니다.
root가 소유한 파일만 표시합니다.
사용 권한이 4000으로 설정된 파일만 표시합니다.
find 명령 출력을 ls -ldb 형식으로 표시합니다.
find 명령 결과가 포함된 파일입니다.
# more /tmp/filename
setuid 사용 권한에 대한 배경 정보는 setuid 사용 권한을 참조하십시오.
예 7-6 setuid 사용 권한이 있는 파일 찾기
다음 예의 출력에서는 rar이라는 그룹의 사용자가 /usr/bin/sh의 개인용 복사본을 만들고 setuid 사용 권한을 root로 설정했음을 보여 줍니다. 따라서 /usr/rar/bin/sh 프로그램이 root 권한으로 실행됩니다.
이 출력은 /var/tmp/chkprm 파일을 아카이브로 이동하여 나중에 참조할 수 있도록 저장되었습니다.
# find / -user root -perm -4000 -exec ls -ldb {} \; > /var/tmp/ckprm # cat /var/tmp/ckprm -r-sr-xr-x 1 root bin 38836 Aug 10 16:16 /usr/bin/at -r-sr-xr-x 1 root bin 19812 Aug 10 16:16 /usr/bin/crontab ---s--x--x 1 root sys 46040 Aug 10 15:18 /usr/bin/ct -r-sr-xr-x 1 root sys 12092 Aug 11 01:29 /usr/lib/mv_dir -r-sr-sr-x 1 root bin 33208 Aug 10 15:55 /usr/lib/lpadmin -r-sr-sr-x 1 root bin 38696 Aug 10 15:55 /usr/lib/lpsched ---s--x--- 1 root rar 45376 Aug 18 15:11 /usr/rar/bin/sh -r-sr-xr-x 1 root bin 12524 Aug 11 01:27 /usr/bin/df -rwsr-xr-x 1 root sys 21780 Aug 11 01:27 /usr/bin/newgrp -r-sr-sr-x 1 root sys 23000 Aug 11 01:27 /usr/bin/passwd -r-sr-xr-x 1 root sys 23824 Aug 11 01:27 /usr/bin/su # mv /var/tmp/ckprm /export/sysreports/ckprm
32비트 실행 가능 스택의 보안 위험에 대한 설명은 보안 손상으로부터 실행 파일 보호를 참조하십시오.
시작하기 전에
root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
set noexec_user_stack=1
# reboot
예 7-7 실행 가능 스택 메시지 로깅을 사용 안함으로 설정
이 예에서는 실행 가능 스택 메시지 로깅이 사용 안함으로 설정된 후 시스템이 재부트됩니다.
# cat /etc/system set noexec_user_stack=1 set noexec_user_stack_log=0 # reboot
참조
자세한 내용은 다음을 참조하십시오.