sudo 또는 acl 또는 setuid/setgid?

sudo 또는 acl 또는 setuid/setgid?

내가 정말로 이해하지 못하는 이유 때문에 모두가 모든 것에 대해 sudo를 원합니다. 직장에서는 로그 파일을 읽을 수 있는 방법(head/tail/cat/more, ...)만큼 많은 항목이 있습니다.

제 생각에는 sudo가 여기서 패배하고 있는 것 같습니다.

setgid/setuid 디렉토리를 혼합하여 사용하고 여기저기에 ACL을 추가하고 싶지만 시작하기 전에 모범 사례가 무엇인지 알아야 합니다.

우리 서버에는 %admin, %production, %dba, %users가 있습니다. 즉, 많은 그룹과 많은 사용자가 있습니다. 각 서비스(mysql, apache, ...)에는 권한을 설치하는 고유한 방법이 있지만 %production 그룹의 구성원은 구성 파일이나 로그 파일을 참조할 수 있어야 합니다. 이를 올바른 그룹(mysql...)에 추가하고 적절한 권한을 설정하는 솔루션이 여전히 있습니다. 하지만 모든 사용자를 usermod하고 싶지는 않습니다. 표준 권한은 업그레이드할 때마다 변경될 수 있으므로 수정하고 싶지 않습니다.

반면에 디렉토리에 acls를 설정하거나 setuid/setgid를 혼합하는 것은 표준 배포판을 "손상"하지 않고도 쉽게 수행할 수 있는 작업입니다.

이것에 대해 어떻게 생각하세요?

mysql 예제를 취하면 다음과 같습니다.

setfacl d:g:production:rx,d:other::---,g:production:rx,other::--- /var/log/mysql /etc/mysql

이것이 좋은 습관이라고 생각하십니까? 아니면 usermod -G mysql을 정의하고 표준 권한 시스템을 사용해야 합니까?

감사합니다

답변1

모범 사례: sudoers 파일을 유지 관리하고 sudo를 사용합니다.

내 개인용 컴퓨터에서는 setuid/gid를 선호하지만 내 컴퓨터에서는 나 혼자만 사용합니다. 그리고 나는 처럼 노골적으로 위험한 일은 하지 않습니다 rm.

답변2

모범 사례(및 가장 일반적인)는 sudo. Sudo는 세밀한 제어 기능을 제공하며 구성을 통해 여러 시스템을 동시에 처리할 수 있습니다.

ACL을 사용하면 이를 보완할 수 있습니다. sudo작업을 루트로 처리합니다. ACL은 사용자와 그룹에게 디렉터리와 파일에 대한 권한을 부여하거나 빼앗습니다. 나는 합리적인 작업을 수행하기 위해 setgid 및 setuid를 기대하지 않습니다.

또한 휠 그룹도 구현하겠습니다. 이는 보안을 강화하는 데 도움이 됩니다. su프로그램이 휠 그룹을 지원 하는지 확인하세요 .

한 가지 더: 로그 파일을 가지고 있거나 읽는 방법이 있다면 view위험 less에 처해 있습니다. 두 프로그램 모두 쉘 액세스를 제공합니다.

답변3

제가 보기에는 sudoers 옵션이 setuid/setguid/ACL보다 좀 더 간결한 것 같습니다.

사용자를 그룹화하지 않으면 ACLS가 매우 길어집니다. 그리고 그룹 사용자를 수행하는 경우 시작했던 동일한 위치로 돌아갑니다.

더 큰 문제는 일종의 중앙 관리가 없으면 액세스 제어가 파일 시스템 전체에 확산된다는 것입니다. 물론 매크로, 템플릿, 구성 관리 등을 사용하여 이 문제를 쉽게 해결할 수 있습니다. 그러나 이는 복잡성을 줄이는 데 전혀 도움이 되지 않는 완전히 다른 레이어입니다.

내 작은 Drupal 상점에서는 모든 작업 파일에 ACL을 매우 광범위하게 사용하지만 모든 관리 액세스에는 sudo를 사용합니다. 제가 사용하고 있는 구성 관리 계층은 Ansible이며 이에 대한 좋은 점은 사용자, 사용자의 역할, 사용자가 받는 그룹, 컴퓨터 등을 쉽게 템플릿화할 수 있다는 것입니다. Sudoers도 비슷하게 관리됩니다. 그것은 가장 투명하기 때문에 나에게 가장 좋은 방법인 것 같습니다.

물론 나에게는 당신만큼 많은 사용자나 그룹이 없을 수도 있습니다. 구성 관리에 ACL을 넣는 것도 상상할 수 있습니다. 그러나 제 인생에서 많은 컴퓨터, 많은 사용자, 많은 그룹을 그런 식으로 관리하는 간단한 방법은 없습니다.

관련 정보