chmod
Linux에서 권한 관리로 첫 번째 숫자를 사용하는 개념을 이해합니다.사용자, 두 번째는그룹세 번째는다른 사용자상술 한 바와 같이이 답변존재하다UNIX 권한 및 파일 유형 이해.
admin
, usera
, 5명의 사용자가 있는 Linux 시스템이 있다고 가정합니다 userb
. 기본적으로 사용자는 내부의 모든 파일에 대한 실행 권한을 갖고 있으므로 이러한 파일이 75개 있기 때문에 이러한 사용자는 시스템의 명령줄을 사용하여 내부의 파일을 실행할 수 있습니다.userc
guest
usera
userb
userc
/usr/bin
5허용하다. 지금까지는 문제가 없습니다. 그러나 사용자가 guest
해당 폴더에서 파일을 실행 하지 못하도록 하고 싶습니다 /usr/bin
. 해당 폴더 내의 모든 파일에 대한 권한을 750과 같이 변경하면 그렇게 할 수 있다는 것을 알고 있지만 chmod
그렇게 하면 사용자 권한이 엉망이 될 것 입니다 usera
. 또한 파일 실행도 금지됩니다.userb
userc
내 컴퓨터에서 의 모든 파일은 /usr/bin
해당 그룹에 속하므로 root
하나를 만들고 newgroup
모든 파일의 그룹을 이 그룹으로 변경하고 usera
, userb
및 userc
을 추가할 수 있다는 것을 알고 있습니다 newgroup
. 그러나 이렇게 하면 시스템의 기본 설정이 너무 많이 변경되는 것처럼 들립니다. 이 문제를 해결하는 더 현명한 방법을 아는 사람이 있습니까?
PATH
너무 많은 파일 권한을 변경해야 하는 지나치게 복잡한 솔루션을 사용하지 않고 단일 사용자가 명령줄 사용(또는 명령줄에서 파일 실행)을 금지하려면 어떻게 해야 합니까 ?
답변1
ACL을 사용하여 권한을 제거합니다. 이 경우 모든 실행 파일에 대한 권한을 수정할 필요가 없습니다. 단순히 실행 권한을 제거하면 /usr/bin/
디렉터리 탐색이 비활성화되고 그 안에 있는 모든 파일에 대한 액세스가 비활성화됩니다.
setfacl -m u:guest:r /usr/bin
u
이는 사용자의 권한이 디렉토리를 읽기만 guest
하도록 설정하므로 디렉토리에 액세스할 수 있지만 그 안에는 아무것도 없습니다.r
/usr/bin
ls
모든 권한을 제거할 수도 있습니다.
setfacl -m u:guest:- /usr/bin
답변2
뭐하고 지내? 특정 사용자의 시스템 사용을 금지하는 표준 명령은 극도의 무례함일 뿐입니다. 시스템을 위험에 빠뜨릴 수 있는 명령은 그 사이 어딘가에 속하며 보안을 위해 신중하게 조사되었습니다. 파일의 권한은 대부분의 장난스러운 시도를 방지해야 합니다.
- 제한된 울타리를 제공하는 것을 고려해보세요(설명서를 확인하세요. 비슷한 이름으로 지정되었을 수 있지만
rbash
조심하세요.rsh
다른 종류의 동물입니다!). 사용자를 상당히 효과적으로 제한합니다(하지만 조심하세요.예터질 수도 있어요! ) - 이것이 일부 서비스 소유를 담당하는 의사 사용자인 경우 일반적인 해결 방법은 "사용자"에게 아무 작업도 수행하지 않는 쉘을 제공하는 것입니다
/bin/true
. ;/bin/true
쉘 스크립트인 경우이런 용도로 사용하지 마세요). 이렇게 하면 누군가가 계정에 로그인하면 해당 세션이 즉시 종료됩니다. - 그들을 위해 하나를 만들거나
chroot
(다시 말하지만, 이를 벗어날 수 있는 방법이 있습니다), BSD 감옥 Linux 컨테이너를 사용하여 그들을 제한하고 그들이 보기를 원하는 것만 노출하십시오. 대부분의 컨트롤이 있지만 설정하고 최신 상태로 유지하는 것이 혼란스럽습니다.