Thay đổi vị trí thư mục gốc của root


10

Tôi muốn thay đổi vị trí của thư mục gốc của root từ / root thành / var / root. Tôi đã từng có thể làm điều này với usermod:

usermod -d /var/root root

Tuy nhiên, với phiên bản mới nhất của usermod, bạn không thể thay đổi thư mục của người dùng hiện đang đăng nhập. Tôi đang cố gắng thay đổi thư mục gốc của root khi khởi động trong tập lệnh thiết lập hệ thống được chạy lần đầu tiên khi hệ thống được khởi động, vì vậy tôi thực sự không thể là bất kỳ người dùng nào khác.

Có cách nào khác để thay đổi thư mục chính của người dùng hiện đang đăng nhập (root trong trường hợp này) không?

Tôi có thể có thể sed / etc / passwd, nhưng điều đó có vẻ cẩu thả.


Liên kết cứng / root đến / var / root?
Garrett

Tôi đoán bạn có thể sửa đổi / etc / passwd.
billc.cn

Câu trả lời:


11
  1. Vấn đề duy nhất với chỉnh sửa thủ công /etc/passwdlà có thể có một cuộc đua nếu một số người dùng hoặc chương trình khác thay đổi tệp này trong khi bạn giữ nó mở trong trình chỉnh sửa của mình. Trong trường hợp này, thay đổi đó sẽ bị mất khi bạn lưu tệp. Nếu bạn chắc chắn rằng vấn đề này không áp dụng cho bạn (không có người dùng nào khác đăng nhập, v.v.), thì bạn có thể tiếp tục và chỉnh sửa/etc/passwd

  2. Hãy chắc chắn rằng thư mục gốc của root có sẵn khi khởi động vào chế độ người dùng đơn, ví dụ: nó phải nằm trong hệ thống tập tin gốc.

  3. Nhiều thủ thuật khác nhau như tạo người dùng thứ cấp với uid 0, chuyển sang nó và thay đổi thư mục gốc của root, sẽ không hoạt động. Các kiểm tra cho người dùng hiện đang đăng nhập là dựa trên uid.


5
Sử dụng vipwhoặc sudoeditcó thể bảo vệ chống lại # 1. Đối với # 2, một thư mục nhà bị thiếu thường sẽ chỉ dẫn đến một cảnh báo.
dùng1686

@grawity: Cảm ơn thông tin vipw, tôi không biết về nó. Tôi nghĩ rằng sử dụng vipw có lẽ là giải pháp tốt nhất.
haimg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.