루트가 아닌 사용자가 루트 디렉터리에 액세스하도록 허용하는 방법은 무엇입니까?

루트가 아닌 사용자가 루트 디렉터리에 액세스하도록 허용하는 방법은 무엇입니까?

루트 사용자의 로그인을 허용하지 않음으로써 Linux 서버를 보호하고 싶습니다. 이를 위해 다른 사용자를 만들었습니다.

useradd username
mkdir /home/username/
mkdir /home/username/.ssh
chmod 700 /home/username/..shh
chown username:username /home/username -R
passwd username

새 사용자로 로그인하면 루트 디렉터리는 /home/username현재로서는 정상적인 동작입니다. 하지만 일반적으로 다른 디렉터리에 액세스해야 합니다. 이 /root/exampledirectory/액세스는 거부되었습니다.

username사용자가 /root/exampledirectorySSH를 사용하여 로그인할 때 이 디렉토리를 시작점으로 설정하고 액세스할 수 있도록 SSH를 구성하려면 어떻게 해야 합니까 ?

chown username:username /root/exampledirectory -R작동하지 않습니다. 시작 디렉터리는 항상 이며 home/username, 다른 디렉터리에는 액세스할 수 없습니다.

이 문제를 어떻게 처리해야 합니까?

답변1

나는 당신이 하고 있는 일을 성취하는 더 좋은 방법이 있다고 생각합니다. 내 루트 디렉터리에 대한 액세스를 허용하는 데는 주의가 필요하지만 다음은 한 가지 접근 방식입니다.

사용자의 루트 디렉터리 아래에 있는 이 디렉터리에 액세스하려면 예제 디렉터리까지 디렉터리에 대한 권한이 필요합니다. 확인하기 위해 예시를 만들어봤습니다. 내 생각에 좋은 접근 방식은 새 그룹을 만드는 것입니다. 루트 트래버스라고 부를 수도 있습니다.sudo groupadd root-traverse

그런 다음 이 그룹에 사용자를 추가합니다: sudo usermod -aG root-traverse your-username. 이렇게 하면 사용자가 액세스 root-traverse할 수 있는 모든 것에 액세스할 수 있습니다. 그룹을 적용하려면 로그아웃했다가 다시 로그인하는 것을 잊지 마십시오. 또는 이를 수행하여 현재 그룹에 있는지 su your-username확인하십시오 .idroot-traverse

그런 다음 루트 권한에 그룹을 추가해야 합니다 root-traverse. 저는 ACL로 수행하는 것을 선호합니다(만약~ 해야 하다). 이는 보다 세분화된 권한에 액세스하는 방법입니다. sudo setfacl -m g:root-traverse:rx /root. 이렇게 하면 그룹에 루트 디렉터리에 들어가 그 안에 있는 파일/폴더를 나열할 수 있는 충분한 권한이 부여됩니다. 보안에 관한 한 나는 여전히 이것을 좋아하지 않지만 그것이 바로 그 것입니다.

거의 완료되었습니다. 이제 액세스하려는 디렉토리에 대해 다음이 필요합니다. /root/ sudo chown -R root-traverse: /root/exampledirectoryexampledirectorysudo chmod -R 770 /root/exampledirectory

이제 디렉터리를 이 디렉터리로 변경할 수 있고 그 안에 파일을 추가하고 편집할 수도 있습니다! 그곳에서 SSH 세션을 시작하려면 스크립트를 /home/your-username/bin 또는 원하는 곳에 저장할 수 있습니다.vim ssh-script.sh

#!/bin/bash

# Start ssh session in preferred directory
ssh -t xxx.xxx.xxx.xxx "cd /root/exampledirectory ; bash --login"

나는 이것이 트릭을 수행해야한다고 믿습니다. chmod +x ssh-script.sh작성한 스크립트를 실행 가능하게 만드는 것을 잊지 마십시오 . 그런 다음 작업을 실행 ./ssh-script.sh하거나 경로에 포함된 위치에 놓고 일반 명령처럼 실행할 수 있습니다 ssh-script. 행운을 빌어요!

편집: 잠시 생각한 후에 바인드 마운트를 사용하여 해당 예제 디렉토리를 홈 디렉토리에 마운트한 다음 거기에서 ACL 권한을 설정할 수 있습니다. 지금은 루트 디렉터리에 대한 액세스 권한을 부여하지 않습니다.

관련 정보