انجمن‌های فارسی اوبونتو

تازه کار => انجمن تازه‌کاران => نویسنده: sbrt در 04 بهمن 1401، 02:57 ق‌ظ

عنوان: محدودیت حجمی کاربران
ارسال شده توسط: sbrt در 04 بهمن 1401، 02:57 ق‌ظ
سلام وقت بخیر .بنده در اوبونتو تعدادی یوزر تعریف کردم با دستور sudo adduser username , براشون تاریخ انقضا هم تعریف کردم وخواستم بدونم چطور میشه برای هرکدوم از یوزر ها جداگانه محدودیت حجمی مشخص کرد که مقدار مشخصی از منابع سرور نظیر ترافیک رو بتونه مصرف کنه ؟
عنوان: پاسخ : محدودیت حجمی کاربران
ارسال شده توسط: دانیال بهزادی در 04 بهمن 1401، 10:57 ق‌ظ
تنها محدودیتی که خود سیستم‌عامل به شما می‌ه، محدودیت فضای ذخیره است. محاسبهٔ بقیه به این سادگی‌ها نیست. شاید برنامه‌ای براش باشه، شاید هم نه.
عنوان: پاسخ : محدودیت حجمی کاربران
ارسال شده توسط: جادی در 04 بهمن 1401، 01:55 ب‌ظ
یک روش که استفاده از limits.conf است برای محدود کردن دسترسی ها.
برای دیسک هم quota رو ببین.
و مشخصه که کلی ابزار دیگه هم هست.
عنوان: پاسخ : محدودیت حجمی کاربران
ارسال شده توسط: sbrt در 04 بهمن 1401، 11:22 ب‌ظ
خب میشه مثلا بفرمایید برای یک یوزر که ما تعریف میکنیم چظوری این محدودیت رو با چه دستوری ایجاد کنیم از طریق limits.conf
عنوان: پاسخ : محدودیت حجمی کاربران
ارسال شده توسط: Dragon- در 09 بهمن 1401، 04:36 ق‌ظ
سلام

تا جایی که می‌دونم، لازم نیست دستور وارد کنید. باید چیز‌های فایل limits.conf رو تغییر بدید.
این یه فایل متنی هست و توی دایرکتوری زیر قرار داره:
/etc/security/

توی نسخه‌های جدید توزیع‌ها، توی دایرکتوری بالا، یه دایرکتوری دیگه به اسم limits.d هست. می‌تونید پیکربندی‌ها رو توی فایل‌های جدا توی اون دایرکتوری قرار بدید تا هم فایل limits.conf دست نخورده باقی بمونه و هم پیکربندی‌های مرتبط با هم، توی یه فایل قرار بگیرن.
پسوند اون فایل‌ها باید conf. باشه تا استفاده بشن.

برای اینکه بدونید فرمت اون فایل چجوری هست و چطور میشه باهاش سیستم رو تنظیم کرد، صفحه man مربوط رو ببینید.
man limits.conf

مطمئن نیستم کاری که می‌خواهید انجام بدید از طریق limits.conf ممکن باشه. تا جایی که یادمه، نمیشه باهاش محدودیت ترافیک مصرفی تعیین کرد.

یه راه دیگه این هست که از cgroup‌ها استفاده کنید. cgroup‌ها یه قابلیت توی خود کرنل لینوکس هست که میشه باهاش کنترل کرد هر پردازش چقدر به منابع مختلف سیستم مثل پردازنده، رم و غیره دسترسی داشته باشه. خود cgroup مخفف control group هست.

روند کلی اینطور هست که برای هر منبع (مثلا پردازنده) یک یا چندین گروه ایجاد می‌کنید که هر گروه یه محدودیت داره.
بعد پردازش‌ها رو عضو این گروه‌ها می‌کنید تا اون محدودیت بهشون اعمال بشه.

این برای cgroup v1 بود. نمی‌دونم روند کلی برای cgroup v2 هم همینجوره یا نه. ولی می‌دونم نحوه کار کردن با cgroup v1 با cgroup v2 متفاوته.

متاسفانه کار کردن مستقیم با cgroup‌ها زیاد راحت نیست. بهتره از یه سری ابزار مثل دستورات systemd استفاده کنید.

اینجا رو ببینید بد نیست
https://wiki.archlinux.org/title/Cgroups

اینجا هم چندین فرسته برای آشنایی با cgroup v1 هست.
https://www.redhat.com/sysadmin/cgroups-part-one

cgroup‌ها ارتباط نزدیکی با namespace‌ها دارند. شاید بتونید از namespace‌ها هم استفاده کنید.
توی همین دایرکتوری /etc/security/ یه چیز‌هایی مربوط به namespace‌ها هست. درست یادم نمیاد فایل‌های مربوط بهش چه اسمی داشتند.

البته باز هم مطمئن نیستم cgroup‌ها راه راحتی برای اعمال محدودیت ترافیک مصرفی داشته باشند.

استفاده از container‌ها مثل docker یا lxc هم یه گزینه هست. توی این مورد هم مطمئن نیستم چجوری میشه برای ترافیک مصرفی محدودیت گذاشت.