해결: 이게 사실인가요? 네, 그렇습니다.
Source: Dev.to
Executive Summary
TL;DR: su 후 cd 할 때 발생하는 Linux “Permission denied” 오류는 보통 사용자의 홈 디렉터리가 아니라 /home 과 같은 상위 디렉터리의 실행(x) 권한이 없어서 발생합니다. 상위 디렉터리에 탐색 권한을 부여하면 문제를 해결할 수 있습니다:
- 빠른 해결책 –
chmod 711 /home(내용을 나열하지 않고 탐색만 허용). - 보안‑중심, 프로덕션 수준 해결책 – 전용 관리자 그룹으로 소유자를 변경하고
chmod 750 /home설정.
경로에 포함된 모든 디렉터리에 실행(x) 권한이 있어야 해당 경로를 정상적으로 탐색할 수 있으며, 대상 디렉터리 자체에 권한이 충분하더라도 상위 디렉터리가 잠겨 있으면 접근할 수 없습니다.
The Problem
서비스 사용자(예: svc_deploy)가 su 후 cd ~ 를 시도하면 셸이 다음과 같이 반환할 수 있습니다:
bash: cd: /home/svc_deploy: Permission denied
문제의 원인은 종종 상위 디렉터리인 /home 입니다. /home 의 권한이 700 (drwx------) 이고 root:root 가 소유하고 있다면, root 만이 해당 디렉터리를 통과할 수 있습니다. 비록 /home/svc_deploy 가 755 로 설정되고 서비스 사용자가 소유하고 있더라도, /home 의 “문”을 통과하지 못하면 접근이 불가능합니다.
Solutions
Quick Fix – Grant Traversal to Everyone
# Safe, fast, and respects least‑privilege better than most ad‑hoc fixes
sudo chmod 711 /home
- Effect:
- Owner (
root):rwx - Group & Others:
--x(execute only)
- Owner (
사용자는 자신이 소유한 하위 디렉터리에 접근하기 위해 /home 을 통과할 수 있지만, /home 의 내용은 (ls /home) 여전히 표시되지 않습니다.
Secure, Group‑Based Fix
-
Create an admin group (if needed):
sudo groupadd sysadmins -
Add your administrative user(s) to the group:
sudo usermod -aG sysadmins dvance # Log out/in or run `id` to verify group membership -
Change ownership and set restrictive permissions:
sudo chown root:sysadmins /home sudo chmod 750 /home
- Result:
root와sysadmins그룹 구성원은/home을 통과할 수 있습니다.- 그 외 모든 사용자는 완전히 차단됩니다.
- 비관리자 사용자는 디렉터리 목록을 볼 수 없습니다.
Less Secure Fix – Open to All
sudo chmod 755 /home
- Effect:
rwxr-xr-x– 모든 사용자가 읽기와 실행이 가능합니다. - Drawback: 모든 사용자가
ls -l /home을 실행해 모든 홈 디렉터리를 볼 수 있어 사용자 이름이 노출됩니다. 이는 프로덕션이나 규정 준수가 중요한 환경에 적합하지 않습니다.
Comparison of Methods
| 방법 | 명령어(s) | 장점 | 단점 |
|---|---|---|---|
| 빠른 해결책 | chmod 711 /home | 빠르고, 디렉터리 목록을 차단하며, 모든 비‑root 사용자에게 적용 | 모든 비‑root 사용자가 /home 을 통과할 수 있음 |
| 영구적인 해결책 | chown root:sysadmins /home; chmod 750 /home | 가장 안전하고, 세밀한 제어 가능, 최소 권한 원칙 준수 | 그룹 관리와 추가 설정이 필요 |
| 핵심 옵션 | chmod 755 /home | 모든 사용자에게 접근 보장 | 보안 취약; 디렉터리 목록을 통해 모든 사용자 이름이 노출 |
Takeaway
권한은 의도를 반영합니다. 탐색하려는 경로의 모든 디렉터리에 실행 비트(x)가 설정되어 있는지 확인하십시오. 보안 정책에 맞는 해결책을 선택하고, 변경 사항을 문서화하면 안심하고 작업을 이어갈 수 있습니다.
원본 기사: TechResolve.blog