Linux 파일 권한 혼란

Linux 파일 권한 혼란

내 홈 폴더에는 2명의 사용자가 있습니다. 관리자 1명과 게스트 1명.

기본적으로 게스트 사용자가 SSH 세션을 통해 로그인할 때 홈 폴더가 아닌 다른 디렉터리로 디렉터리를 변경할 수 없도록 하고 싶습니다.

사용자는 다음과 같습니다.

root@Ubuntu-2004-focal-64-minimal / # id olw
uid=1000(olw) gid=1002(olw) groups=1002(olw),1000(admins)
root@Ubuntu-2004-focal-64-minimal / # id guest
uid=1002(guest) gid=1001(guest) groups=1001(guest)

메인 디렉토리:

drwxr-xr-x 5 root root 4096 Jun 16 11:01 home/

제가 이해한 바에 따르면 이는 루트 그룹이 아닌 다른 사람들이 이 디렉토리를 읽거나 입력(실행)할 수 있다는 의미입니다.

해당 디렉터리 내에서 파일 시스템은 다음과 같습니다.

drwxr-xr-x  5 root root   4096 Jun 16 11:01 ./
drwxr-xr-x 18 root root   4096 Jun 14 16:13 ../
drwxrwx---  2 root guest  4096 Jun 16 11:11 guest/
drwxr-x---  4 olw  admins 4096 Jun 15 16:12 olw/

이제 게스트가 홈 디렉터리에 있으면 /home이 다른 모든 사람에게 실행 가능하므로 홈 디렉터리로 다시 전환할 수 있습니다.

chmod o-rx home/홈 폴더의 그룹도 관리자로 변경했습니다 . 그렇지 않으면 루트 또는 루트 그룹의 사용자를 제외하고 누구도 루트 폴더에서 작업을 수행할 수 없습니다.

drwxr-x---  5 root admins   4096 Jun 16 11:01 ./
drwxr-xr-x 18 root root   4096 Jun 14 16:13 ../
drwxrwx---  2 root guest  4096 Jun 16 11:11 guest/
drwxr-x---  4 olw  admins 4096 Jun 15 16:12 olw/

이제 이상한 점은 다음과 같습니다.

관리자로 전환하면 모든 것이 잘 작동합니다. 내 홈 폴더로 가서 나가서 모든 작업을 수행할 수 있지만 GUEST 계정을 사용하면

oot@Ubuntu-2004-focal-64-minimal /home # su guest
bash: /home/guest/.bashrc: Permission denied

기본 .bashrc 파일을 읽거나 명령을 실행할 수도 없습니다 ls.

게스트 홈 폴더에 대한 권한을 모든 사람이 전체 액세스할 수 있도록 전환했는데 결과는 다음과 같습니다.

drwxr-x---  5 root admins 4096 Jun 16 11:01 ./
drwxr-xr-x 18 root root   4096 Jun 14 16:13 ../
drwxrwxrwx  2 root guest  4096 Jun 16 11:11 guest/
drwxr-x---  4 olw  admins 4096 Jun 15 16:12 olw/

여전히 오류가 발생합니다. 내가 뭘 잘못했나요? 나는 게스트가 자신의 홈 디렉토리를 떠날 수 없도록 하고 싶지만 게스트가 자신의 홈 디렉토리를 보고 거기에서 명령을 실행할 수 있기를 바랍니다. 왜 olw 사용자에게 작동하나요?

사용자 내부의 파일 시스템은 다음과 같습니다

손님

drwxrwxrwx 2 root  guest  4096 Jun 16 11:11 ./
drwxr-x--- 5 root  admins 4096 Jun 16 11:01 ../
-rw------- 1 guest guest    42 Jun 16 11:22 .bash_history
-rwxrwxrwx 1 root  guest   220 Jun 15 15:00 .bash_logout*
-rwxrwxrwx 1 root  guest  3771 Jun 15 15:00 .bashrc*
-rwxrwxrwx 1 root  guest     0 Jun 15 15:00 .cloud-locale-test.skip*
-rwxrwxrwx 1 root  guest   807 Jun 15 15:00 .profile*
-rwxrwxrwx 1 root  guest    20 Jun 15 15:14 WELCOME.txt*

오르프

drwxr-x--- 4 olw  admins 4096 Jun 15 16:12 ./
drwxr-x--- 5 root admins 4096 Jun 16 11:01 ../
-rwxr-x--- 1 olw  olw     960 Jun 16 11:35 .bash_history*
-rwxr-x--- 1 olw  olw     220 Jun 15 14:38 .bash_logout*
-rwxr-x--- 1 olw  olw    3771 Jun 15 14:38 .bashrc*
drwx------ 2 olw  olw    4096 Jun 15 15:54 .cache/
-rwxr-x--- 1 olw  olw       0 Jun 15 14:38 .cloud-locale-test.skip*
drwxrwx--x 3 olw  olw    4096 Jun 15 15:10 .local/
-rwxr-x--- 1 olw  olw     807 Jun 15 14:38 .profile*

답변1

모든 파일 액세스는 파일 권한에 따라 달라집니다.그리고 그것이 상주하는 디렉토리 계층 구조.

원하는 결과를 얻는 방법에는 여러 가지가 있지만 이것들은 모두 중요하며 서버 보안의 다른 부분을 손상시킬 수 있습니다. 예를 들어 게스트의 homedir을 /other/guest로 설정할 수 있지만 /home에서 게스트를 제외하려면 다른 모든 사용자를 포함하는 그룹을 만들고 /home의 그룹 소유권을 해당 그룹으로 설정하고 chmod를 설정해야 합니다. o - rwx /home. 하지만 아직 끝나지 않았습니다. 파일 시스템 권한 외에도 Ubuntu 시스템에는 apparmor라는 보안 하위 시스템이 있습니다. 이 하위 시스템은 파일뿐만 아니라 개체에 대한 보다 중앙화된 사용자 데이터베이스와 이를 연결하는 권한도 사용하며 업데이트가 필요합니다.

나는 Linux를 사용하는 방법을 알고 있다고 생각하지만, 내 생각에는 이는 뚜렷한 이점이 거의 없는 매우 복잡한 작업입니다.

관련 정보