![루트가 아닌 사용자가 루트 디렉터리에 액세스하도록 허용하는 방법은 무엇입니까?](https://linux55.com/image/203440/%EB%A3%A8%ED%8A%B8%EA%B0%80%20%EC%95%84%EB%8B%8C%20%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80%20%EB%A3%A8%ED%8A%B8%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%20%EC%95%A1%EC%84%B8%EC%8A%A4%ED%95%98%EB%8F%84%EB%A1%9D%20%ED%97%88%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
루트 사용자의 로그인을 허용하지 않음으로써 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/exampledirectory
SSH를 사용하여 로그인할 때 이 디렉토리를 시작점으로 설정하고 액세스할 수 있도록 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
확인하십시오 .id
root-traverse
그런 다음 루트 권한에 그룹을 추가해야 합니다 root-traverse
. 저는 ACL로 수행하는 것을 선호합니다(만약~ 해야 하다). 이는 보다 세분화된 권한에 액세스하는 방법입니다. sudo setfacl -m g:root-traverse:rx /root
. 이렇게 하면 그룹에 루트 디렉터리에 들어가 그 안에 있는 파일/폴더를 나열할 수 있는 충분한 권한이 부여됩니다. 보안에 관한 한 나는 여전히 이것을 좋아하지 않지만 그것이 바로 그 것입니다.
거의 완료되었습니다. 이제 액세스하려는 디렉토리에 대해 다음이 필요합니다. /root/ sudo chown -R root-traverse: /root/exampledirectory
exampledirectorysudo 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 권한을 설정할 수 있습니다. 지금은 루트 디렉터리에 대한 액세스 권한을 부여하지 않습니다.