Làm cách nào tôi có thể tạo và sử dụng các nhóm Linux với tư cách là người dùng không root?


21

Làm cách nào tôi có thể tạo và sử dụng các nhóm như một người dùng không root?

Ví dụ: tôi có thể, hoàn toàn là người dùng không root:

  • tạo một nhóm có quyền truy cập vào một CPU
  • tạo ra một quy trình mới trong nhóm đó

?

Lần đầu tiên tôi hỏi ở đây nhưng tôi không nhận được câu trả lời hoàn chỉnh. Tôi cũng đã hỏi về stackoverflow , nhưng câu hỏi đã bị đóng như lạc đề.

Câu trả lời:


18

Bạn không thể làm điều đó như một người dùng bình thường. Nhưng bạn có thể thiết lập một nhóm như root và làm cho nó có thể được cấu hình bởi người dùng của bạn.

Nếu bạn chưa có bộ điều khiển cgroups mặc định được gắn bởi eg systemd:

$ sudo mount -t tmpfs cgroup_root /sys/fs/cgroup
$ sudo mkdir /sys/fs/cgroup/cpuset
$ sudo mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset

Tạo một nhóm:

$ sudo mkdir /sys/fs/cgroup/cpuset/${USER}
$ sudo chown -R ${USER} /sys/fs/cgroup/cpuset/${USER}

Bây giờ bạn có thể sửa đổi cấu hình của nhóm của mình như một người dùng bình thường:

$ echo 0-3 > /sys/fs/cgroup/cpuset/${USER}/cpuset.cpus

Thêm một quy trình vào nhóm đó:

$ ./my_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/tasks

Hoặc tạo một nhóm con:

$ mkdir /sys/fs/cgroup/cpuset/${USER}/subgroup
$ echo 0-1 > /sys/fs/cgroup/cpuset/${USER}/subgroup/cpuset.cpus
$ ./my_other_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/subgroup/tasks

Làm thế nào bạn sẽ xóa nhóm con? rm -rthất bại đối với tôi
hbogert

1
rm -rsẽ cố gắng xóa các tập tin đầu tiên, nhưng không thành công. Sử dụng rmdirđể loại bỏ một nhóm.
Dennis B.

Bạn không thể rmdircho đến khi taskstập tin trống. root sẽ cần xem tệp tác vụ trong nhóm con và lặp lại từng pid ở đó vào tệp tác vụ của nhóm gốc ( /dev/cpuset/taskstrên hộp RHEL 6.7 [kernel 2.6.32-358] của tôi, nhưng có vẻ như /sys/fs/cgroup/cpuset/taskscó thể phù hợp ở đây).
Mike S

1

Nếu bạn đang sử dụng Ubuntu, bạn (người dùng root) có thể cài đặt cgroup-lite và thêm những gì bạn cần vào /etc/cgconfig.conf, bao gồm cả những người dùng nào có thể thay đổi cấu hình của cgroup. Nó chạy trên boot.

Không thể bạn (người dùng root) có thể thêm tập lệnh của riêng bạn để chạy trong khi khởi động.


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.