Hướng Dẫn Sửa Lỗi Lỗi Phân Quyền Root & Mở Nhầm Thư Mục Trên WSL 2 (Ubuntu)
Mô Tả Bài Toán
Khi làm việc với môi trường WSL 2 (Ubuntu) kết hợp giữa Windows Explorer và VS Code, lập trình viên thường gặp phải tình trạng:
- Tạo thư mục dự án từ Windows Explorer hoặc clone bằng lệnh
sudo, dẫn đến thư mục thuộc sở hữu của userroot. - Mở dự án bằng lệnh
code .từ terminal nhưng VS Code lại hiển thị rất nhiều thư mục hệ thống không liên quan (.cache,.config, v.v.). - Nhận thông báo lỗi
-bash: cd: /home/...: No such file or directory.
🔍 Nguyên Nhân Chi Tiết
1. Xung đột quyền sở hữu (Root vs User)
- Lỗi: Thư mục
hasaki-web-hasakinowđược tạo với quyền sở hữu thuộc về userroot(drwxr-xr-x 3 root root). - Lý do:
- Khi thao tác qua đường dẫn mạng
\\wsl.localhost\Ubuntu\...trên Windows Explorer, hệ thống đôi khi tự động gán quyền truy cập cao nhất (root) cho các file/folder mới tạo. - Hoặc do bạn đã vô tình dùng lệnh
sudo git clone/sudo mkdirtrong terminal.
- Khi thao tác qua đường dẫn mạng
- Hậu quả: User chính (
huy_hoang) bị giới hạn quyền ghi (write permissions), dẫn đến các công cụ như VS Code hoặc Git gặp trục trặc khi thao tác.
2. Mở VS Code sai ngữ cảnh (Context)
- Lệnh
code .hoạt động dựa trên phương thức: "Mở thư mục hiện tại trong VS Code" (dấu.đại diện cho Current Working Directory). - Khi bạn đang đứng ở thư mục cá nhân gốc (
~tức/home/huy_hoang) mà gõcode ., VS Code sẽ mở toàn bộ thư mục cá nhân của bạn — bao gồm các ẩn tệp cấu hình của Linux như.bashrc,.cache,.config,... khiến giao diện trông vô cùng rối mắt.
🚀 Quy Trình Khắc Phục Triệt Để (Step-by-Step)
Bước 1: Khai báo lại quyền sở hữu cho User
Mở Terminal Ubuntu và cấp lại toàn bộ quyền sở hữu thư mục dự án cho user huy_hoang:
sudo chown -R huy_hoang:huy_hoang ~/hasaki-web-hasakinow
Giải thích:
sudo: Chạy với quyền quản trị viên tối cao để thay đổi file củaroot.chown: Lệnh đổi chủ sở hữu (Change Owner).-R: Áp dụng đệ quy (nhân bản) cho tất cả các file và thư mục con bên trong.huy_hoang:huy_hoang: Thiết lập[Tên User]:[Tên Group]mới.- Hệ thống sẽ yêu cầu nhập mật khẩu Ubuntu của bạn (khi nhập mật khẩu sẽ không hiển thị ký tự, bạn cứ gõ đúng rồi ấn Enter).
Bước 2: Di chuyển VÀO TRONG thư mục dự án
Trước khi mở bất kỳ trình soạn thảo nào, bạn bắt buộc phải cd vào đúng vị trí của dự án đó:
cd ~/hasaki-web-hasakinow
Kiểm tra xem đường dẫn hiện tại đã chuẩn chưa bằng lệnh:
pwd
# Kết quả trả về nên là: /home/huy_hoang/hasaki-web-hasakinow
Bước 3: Mở VS Code chuẩn mực
Khi đã đứng bên trong thư mục hasaki-web-hasakinow, tiến hành mở VS Code:
code .
Lúc này, VS Code sẽ chỉ hiển thị đúng các tệp nguồn (source code) thuộc dự án hasaki-web-hasakinow.
💡 Kinh Nghiệm & Best Practices Khi Sử Dụng WSL 2
Toàn bộ quá trình tạo thư mục, clone code và quản lý dự án trên Linux nên tuân thủ các nguyên tắc sau:
| Thao tác | ❌ KHÔNG KHUYÊN DÙNG | ✅ NÊN DÙNG |
|---|---|---|
| Tạo thư mục | Tạo qua giao diện Windows Explorer (\\wsl.localhost\...) |
Dùng lệnh trong Terminal: mkdir ten_du_an |
| Clone dự án | Chạy sudo git clone <url> |
Chạy git clone <url> (không dùng sudo) |
| Mở File Explorer | Tìm thủ công từ giao diện Windows | Đứng tại thư mục trong Terminal và gõ: explorer.exe . |
| Mở VS Code | Mở phần mềm VS Code từ Windows rồi chọn Open Folder... |
Đứng tại thư mục trong Terminal và gõ: code . |
All rights reserved