사용자의 읽기/쓰기/실행 권한 박탈

사용자의 읽기/쓰기/실행 권한 박탈

/etc그래서 들어가서 읽을 수 있는 사용자가 있습니다 httpd.conf.

/etc의 주요 위치에 대한 이 사용자의 액세스를 거부하고 싶습니다./var

가장 좋은 접근 방식은 무엇입니까? 한 명의 사용자에 대해서만 전체 폴더/파일 권한을 수정하고 싶지 않습니다.

답변1

파일 액세스 제어 목록을 사용하여 특정 사용자의 권한을 제거할 수 있습니다. 명령은 파일에 ACL을 설정(생성)하는 setfacl입니다.

사용 예:

root@host:/tmp# date > f1
root@host:/tmp# ls -l f1
-rw-r--r-- 1 root root           30 Mar 28 12:12 f1
root@host:/tmp# setfacl -m u:johan:0 f1
root@host:/tmp# ls -l f1
-rw-r--r--+ 1 root root          30 Mar 28 12:12 f1

권한 뒤의 + 기호를 참고하세요. 파일에 ACL 세트가 있음을 알려줍니다. setfacl 명령 옵션 -m은 ACL을 생성/수정하도록 지시합니다. "u:johan:0" 매개변수는 사용자 "johan"에 대한 사용자 항목이 "0"으로 설정되도록 합니다. 이는 권한 모드 "0 0 0"의 약어이며 "--- --- -- -와 같습니다. " 레거시 "rwx rwx rwx" 권한 집합의 경우.

root@host:/tmp# getfacl f1
# file: f1
# owner: root
# group: root
user::rw-
user:johan:---
group::r--
mask::r--
other::r--

root@host:/tmp# cat f1
Thu Mar 28 12:12:07 SAST 2013
root@host:/tmp# exit

종료 후 명령은 "johan"과 같은 지정된 사용자의 권한을 갖습니다.

johan@host:/tmp> cat f1
cat: f1: Permission denied

너무 많은 말을 해서특히 조심하세요. /etc에 대한 접근 권한을 무분별하게 제거하면 다양한 장애가 발생하고 사용자가 로그인하지 못할 수도 있습니다. 많은 시스템 기능은 로그인한 사용자의 권한을 사용하여 /etc의 다양한 구성 파일을 읽습니다. 그러나 사용자가 특정 개별 파일에 액세스하는 것을 방지하는 것은 전혀 허용되지 않습니다.

답변2

다음을 설정하고 싶을 수도 있습니다.chroot 감옥보고 있다감옥 키트.

감옥채널앵거스뿌리, 같은 /새로운 경로로 이동합니다.


간단한 예로 시작하겠습니다.

첫째, chroot 디렉토리를 별도의 파티션에 배치하여 사용자가 시스템 파티션을 채울 수 없도록 할 것입니다.

하지만 간단하게 설명하자면 다음과 같습니다.

  1. chroot 디렉토리를 만듭니다:

    # mkdir /usr/chroot_test
    # cd /usr/chroot_test
    
  2. 시스템 디렉터리를 만듭니다.

    # mkdir bin etc home lib var
    
  3. 몇 가지 기본 도구를 추가합니다.

이는 종속성을 찾는 데 사용할 수 있습니다 ldd.

# ldd /bin/bash
linux-gate.so.1 =>  (0xb774d000)
libtinfo.so.5 => /lib/libtinfo.so.5 (0xb770a000)
libdl.so.2 => /lib/libdl.so.2 (0xb7705000)
libc.so.6 => /lib/libc.so.6 (0xb755a000)
/lib/ld-linux.so.2 (0xb774e000)

chroot의 lib에 복사합니다:

# cp /lib/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux.so.2} lib/

이제 chroot를 입력하세요.

# chroot /usr/chroot_test
bash-4.2# ls
bash: ls: command not found
bash-4.2# pwd
/
bash-4.2# exit
exit

좋아요 일하다. 더 많은 도구를 추가하세요:

# sed '/=>/!d;/=>\s*(/d;s/.*=>\s*\([^ ]*\) .*/\1/' < <(ldd /bin/{ls,cat,vi}) | sort -u)

... copy

등.

그런 다음 chroot 로그인을 추가하십시오(http://kegel.com/crosstool/current/doc/chroot-login-howto.html).


그러나 앞서 언급했듯이 이 프로세스는 Jailkit을 사용하여 단순화할 수 있습니다.http://olivier.sessink.nl/jailkit/howtos_chroot_shell.html.

답변3

당신이 걱정하는 파일은의미는공개 접속이 가능합니다. 매우 민감한 데이터는 잠겨 있습니다. 예, Unix는 (설계와 역사에 따라) 상당히 개방적인 시스템입니다.

이 사용자가 심각하게 우려된다면 해당 사용자를 차단하세요. 귀하가 신뢰하지 않는 사용자는 귀하의 컴퓨터에 존재할 수 없습니다.

아니면 편집증에 대해 물어보세요. 상황이 걷잡을 수 없을 수도 있습니다.

관련 정보