모든 파일 권한을 750으로 변경하지 않고 특정 사용자가 /usr/bin에서 파일을 실행하는 것을 금지할 수 있습니까?

모든 파일 권한을 750으로 변경하지 않고 특정 사용자가 /usr/bin에서 파일을 실행하는 것을 금지할 수 있습니까?

chmodLinux에서 권한 관리로 첫 번째 숫자를 사용하는 개념을 이해합니다.사용자, 두 번째는그룹세 번째는다른 사용자상술 한 바와 같이이 답변존재하다UNIX 권한 및 파일 유형 이해.

admin, usera, 5명의 사용자가 있는 Linux 시스템이 있다고 가정합니다 userb. 기본적으로 사용자는 내부의 모든 파일에 대한 실행 권한을 갖고 있으므로 이러한 파일이 75개 있기 때문에 이러한 사용자는 시스템의 명령줄을 사용하여 내부의 파일을 실행할 수 있습니다.usercguestuserauserbuserc/usr/bin5허용하다. 지금까지는 문제가 없습니다. 그러나 사용자가 guest해당 폴더에서 파일을 실행 하지 못하도록 하고 싶습니다 /usr/bin. 해당 폴더 내의 모든 파일에 대한 권한을 750과 같이 변경하면 그렇게 할 수 있다는 것을 알고 있지만 chmod그렇게 하면 사용자 권한이 엉망이 될 것 입니다 usera. 또한 파일 실행도 금지됩니다.userbuserc

내 컴퓨터에서 의 모든 파일은 /usr/bin해당 그룹에 속하므로 root하나를 만들고 newgroup모든 파일의 그룹을 이 그룹으로 변경하고 usera, userbuserc을 추가할 수 있다는 것을 알고 있습니다 newgroup. 그러나 이렇게 하면 시스템의 기본 설정이 너무 많이 변경되는 것처럼 들립니다. 이 문제를 해결하는 더 현명한 방법을 아는 사람이 있습니까?

PATH너무 많은 파일 권한을 변경해야 하는 지나치게 복잡한 솔루션을 사용하지 않고 단일 사용자가 명령줄 사용(또는 명령줄에서 파일 실행)을 금지하려면 어떻게 해야 합니까 ?

답변1

ACL을 사용하여 권한을 제거합니다. 이 경우 모든 실행 파일에 대한 권한을 수정할 필요가 없습니다. 단순히 실행 권한을 제거하면 /usr/bin/디렉터리 탐색이 비활성화되고 그 안에 있는 모든 파일에 대한 액세스가 비활성화됩니다.

setfacl -m u:guest:r /usr/bin

u이는 사용자의 권한이 디렉토리를 읽기만 guest하도록 설정하므로 디렉토리에 액세스할 수 있지만 그 안에는 아무것도 없습니다.r/usr/binls

모든 권한을 제거할 수도 있습니다.

setfacl -m u:guest:- /usr/bin

답변2

뭐하고 지내? 특정 사용자의 시스템 사용을 금지하는 표준 명령은 극도의 무례함일 뿐입니다. 시스템을 위험에 빠뜨릴 수 있는 명령은 그 사이 어딘가에 속하며 보안을 위해 신중하게 조사되었습니다. 파일의 권한은 대부분의 장난스러운 시도를 방지해야 합니다.

  • 제한된 울타리를 제공하는 것을 고려해보세요(설명서를 확인하세요. 비슷한 이름으로 지정되었을 수 있지만 rbash조심하세요. rsh다른 종류의 동물입니다!). 사용자를 상당히 효과적으로 제한합니다(하지만 조심하세요.터질 수도 있어요! )
  • 이것이 일부 서비스 소유를 담당하는 의사 사용자인 경우 일반적인 해결 방법은 "사용자"에게 아무 작업도 수행하지 않는 쉘을 제공하는 것입니다 /bin/true. ; /bin/true쉘 스크립트인 경우이런 용도로 사용하지 마세요). 이렇게 하면 누군가가 계정에 로그인하면 해당 세션이 즉시 종료됩니다.
  • 그들을 위해 하나를 만들거나 chroot(다시 말하지만, 이를 벗어날 수 있는 방법이 있습니다), BSD 감옥 Linux 컨테이너를 사용하여 그들을 제한하고 그들이 보기를 원하는 것만 노출하십시오. 대부분의 컨트롤이 있지만 설정하고 최신 상태로 유지하는 것이 혼란스럽습니다.

관련 정보