내 우분투 시스템에는 User1과 User2라는 두 명의 사용자가 있습니다.
User1에 디렉터리(폴더)가 있고 /home/User1/Software
이 소프트웨어 폴더를 user2의 홈 디렉터리로 설정하여 user2가 로그인할 때마다 이 소프트웨어 폴더만 볼 수 있고 해당 폴더는 읽기 권한만 갖도록 하려고 합니다.
User2를 통해 시스템에 원격으로 로그인하면 읽기 권한만 있는 소프트웨어 폴더로 직접 이동하며 소프트웨어 및 해당 하위 폴더를 제외한 다른 폴더에는 액세스할 수 없습니다.
답변1
제한된 셸(예: )을 사용하도록 User2의 계정을 변경해야 합니다 rbash
.
sudo chsh -s /bin/rbash User2
참고: 이는 사용자의 명령줄 셸(login을 통한 포함 ssh
)만 제한합니다. 예를 들어 콘솔에 로그인하는 경우 GUI 데스크탑 환경에는 영향을 미치지 않습니다.
자세한 내용은 리소스를 참조하세요 man rbash
. 하지만 일부 제한 사항으로 인해 사용자는 다음을 수행할 수 없습니다.
· CD를 사용하여 디렉토리 변경
· SHELL, PATH, ENV 또는 BASH_ENV 값을 설정하거나 설정 해제합니다.
· /를 포함하는 명령 이름을 지정하십시오.
· .build-in 명령으로 include/를 지정합니다.
· >, >|, <>, >&, &> 및 >> 리디렉션 연산자를 사용하여 출력 리디렉션
· 내장된 exec 명령을 사용하여 쉘을 다른 명령으로 교체
이러한 제한은 시작 파일을 읽은 후에 적용됩니다.
리디렉션을 차단하는 것은 필요한 것 이상일 수 있지만(어차피 디렉토리가 읽기 전용이므로 그렇지 않을 수도 있음) 불행히도 rbash
전부 아니면 전무입니다.
답변2
/home
사용자가 자신의 파일을 제외한 디렉터리의 모든 파일을 보지 못하도록 방지하는 방법
사용자에게 표시하지 않으려는 디렉토리에 대한 파일 권한을 관리하여 이를 수행하십시오.
사용자에게 고유한 로그인 및 그룹 이름을 제공합니다. 숫자로 된 사용자 ID와 그룹 ID를 가져와서 시스템 소유권이 없는지 확인하고 다음을 실행하세요.
sudo find / -uid n -o -gid n
및 에서만 /home
액세스할 수 있도록 user
하며 해당 하위의 모든 파일에 액세스할 수 있도록 합니다 .group
other
sudo chmod -R o-rwx /home
시스템의 다른 사용자가 서로의 파일을 볼 수 있도록 하려면 해당 /home
사용자를 모두 공개 그룹(예: )에 추가하고 users
이를 umask
002(일반적으로 기본값)로 설정합니다.
이보다 더 많은 제한이 필요한 경우 rbash 및/또는 chroot와 관련된 솔루션을 살펴볼 수 있습니다.