Làm cách nào để biết quyền của người dùng được chỉ định trên Linux với quyền truy cập root?


7

Tôi có quyền truy cập root vào máy chủ cục bộ của tôi. Và vài ngày trước, đồng nghiệp của tôi đã tạo một người dùng trên máy chủ đó, đưa cho tôi tên uesrname và mật khẩu. Nhưng người dùng có một quyền hạn tối thiểu. Giống như người dùng thậm chí không thể tạo một tập tin trong thư mục chính của nó.

Có khái niệm nào về "quyền của người dùng" không? Nếu có, làm thế nào để tôi kiểm tra / sửa đổi nó?

Câu trả lời:


7

Nó có thể là trường hợp đồng nghiệp của bạn, trong khi tạo tài khoản, đã tạo thư mục chính "bằng tay" dẫn đến việc nó được sở hữu bởi root. Hãy thử chạy như sau root:

chown -R username ~username
chgrp -R $(id -gn username) ~username

Đâu usernamelà tên của tài khoản có vấn đề.

Biên tập

Nếu đây là vấn đề của bạn, để tránh điều này xảy ra trong tương lai, bạn muốn thêm công -mtắc vào useradddòng lệnh được sử dụng để tạo tài khoản người dùng. Điều này đảm bảo rằng thư mục nhà được chọn của người dùng được tạo nếu nó không tồn tại. Điều này tạo ra thư mục chính với quyền sở hữu và quyền "đúng" để bạn không phải đối mặt với loại vấn đề này.

Chỉnh sửa 2

Các chgrplệnh bổ sung trên sẽ thay đổi quyền sở hữu nhóm của toàn bộ thư mục home của usernameđể usernamenhóm chính 's. Tùy thuộc vào môi trường của bạn, điều này có thể không chính xác như bạn muốn và bạn có thể cần thay đổi quyền sở hữu nhóm của các thư mục con cụ thể trong thư mục chính "theo cách thủ công", do đó đặt quyền sở hữu nhóm khác nhau cho các thư mục con khác nhau. Đây thường không phải là trường hợp của máy tính cá nhân, nhưng vì bạn đã đề cập đến "đồng nghiệp", tôi cho rằng chúng ta đang nói về một môi trường văn phòng được nối mạng, trong trường hợp đó quyền sở hữu nhóm rất quan trọng đối với các thư mục được chia sẻ.


1

Thực sự không có bất kỳ phương pháp nào để thực hiện điều này trong Unix, theo cách có hệ thống như bạn đang hỏi. Nếu bạn sử dụng, sudobạn có thể tạo ra một cái gì đó giống như bạn đang hỏi, nhưng nó sẽ hoàn toàn nhân tạo và rất hạn chế trong việc liệt kê danh sách mà nó có thể cung cấp. Trong sudobạn có thể tạo các nhóm lệnh và sau đó cho phép người dùng (hoặc nhóm người dùng) truy cập vào các nhóm lệnh này.

Thí dụ

# /etc/sudoers
someuser ALL=/sbin/service, /sbin/chkconfig

Sau đó, bạn có thể sử dụng lệnh sudo -lnhư một số người dùng để xem những lệnh nào họ được phép chạy.

$ sudo -l
...

User someuser may run the following commands on this host:
    (ALL) ALL
    (root) /sbin/service, (root) /sbin/chkconfig, (root)

1

Như Joseph R. gợi ý, lời giải thích có khả năng là thư mục chính không được tạo với quyền sở hữu đúng. Trong 99% các trường hợp, các vấn đề truy cập chỉ là vấn đề nhận được các bit quyền sở hữu và quyền được đặt chính xác, sử dụng các lệnh chownchmodlệnh tương ứng. (Trong một vài trường hợp kỳ lạ, các yếu tố khác xuất hiện, chẳng hạn như SELinux, AppArmor, ACL hệ thống tập tin hoặc ánh xạ thông tin hệ thống tập tin mạng.

Để trả lời phần còn lại của câu hỏi của bạn Có, bạn có thể tự mình xem nó thất bại như thế nào. Với quyền root, bạn có thể tạm thời trở thành người dùng khác và bạn có thể làm điều đó mà không cần biết mật khẩu của người dùng đó - chỉ cần chạy /bin/su - username. Điều đó sẽ thực thi một shell với như người dùng khác, như thể bạn đã đăng nhập bằng tên người dùng và mật khẩu đó. Khi bạn hoàn thành với lớp vỏ exitđó, nó và bạn sẽ quay trở lại vào vỏ gốc.

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.