كيفية إضافة مستخدم موجود إلى مجموعة موجودة?

أريد إضافة مستخدم أباتشي (www-data) إلى audio مجموعة. لقد قرأت صفحة الرجل ل useradd، ولكن ليس لدي أي حظ. أنا على التوالي إكس أوبونتو 11.10. وهنا ما أفعله:

$ sudo useradd -G audio www-datauseradd: user 'www-data' already exists

إذا تركت خارج -G الخيار ، باش ، يطبع معلومات المساعدة ل useradd:

$ sudo useradd  audio www-dataUsage: useradd [options] LOGINOptions: -b, --base-dir BASE_DIR       base directory for the home directory...

ليس من الواضح بالنسبة لي من صفحة الرجل ما هي الخيارات التي يجب أن أستخدمها لجعل هذا العمل.

ال useradd سيحاول الأمر إضافة مستخدم جديد. نظرا لأن المستخدم موجود بالفعل ، فهذا ليس ما تريده.

بدلا من ذلك: لتعديل مستخدم موجود ، مثل إضافة هذا المستخدم إلى مجموعة جديدة ، استخدم usermod الأمر.

جرب هذا:

sudo usermod -a -G groupName userName
  • ال -a (إلحاق) التبديل ضروري. خلاف ذلك ، سيتم إزالة المستخدم من أي مجموعات ، وليس في القائمة.

  • ال -G التبديل يأخذ قائمة (مفصولة بفواصل) من مجموعات إضافية لتعيين المستخدم ل.

بشكل عام (لواجهة المستخدم الرسومية ، أو للعمليات قيد التشغيل بالفعل ، إلخ.) ، المستخدم سوف تحتاج إلى تسجيل الخروج وتسجيل الدخول مرة أخرى لرؤية المجموعة الجديدة المضافة. لجلسة شل الحالية ، يمكنك استخدام newgrp:

newgrp groupName
  • newgrp يضيف المجموعة إلى جلسة شل الحالية.

إضافة مستخدم إلى مجموعة:

sudo adduser user group

إزالة مستخدم من مجموعة:

sudo deluser user group

بعد الإضافة إلى مستخدم موجود:

usermod -a -G group user  

قد تحتاج إلى تسجيل الخروج وتسجيل الدخول للحصول على أذونات المجموعات من /etc/group.

أنا عادة استخدام

sudo gpasswd -a myuser mygroup

أنا نشر هذا كإجابة لأنني لم يكن لديك ما يكفي من سمعة للتعليق. كما ذكر ديبندولينو ، لتأثيرات هذا الأمر أن تستمر:

sudo usermod -a -G groupName userName

...تحتاج إلى تسجيل الخروج / تسجيل الدخول مرة أخرى.

ومع ذلك ، إذا كنت بحاجة إلى اختصار لبدء استخدام عضوية مجموعتك الجديدة فورا (ولديك الصحيح سودو امتيازات) لقد وجدت هذا العمل حول:

$ sudo su -# su [userName]$ groups

الشرح:

  • sudo su - سوف تعطيك قذيفة الجذر
  • su [userName] يعيدك إلى قذيفة مع المستخدم الخاص بك
  • groups عند تشغيل الآن سوف تظهر المجموعة التي أضفتها مع usermod -aG القيادة

في حالتي كنت أحاول إضافة مجموعة 'عامل الميناء' إلى المستخدم الخاص بي

قبل:

$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

بعد:

$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker
sudo usermod -a -G groupName userName

سوف تعمل على ما يرام ، ولكن كان علي أن إعادة التشغيل تماما ، مجرد تسجيل الخروج وتسجيل الدخول مرة أخرى لم قيام بهذه المهمة...

على أوبونتو ، منذ تسجيل الدخول باسم root لم يتم تمكين، المستخدمين في sudo يمكن للمجموعة رفع الامتيازات لبعض الأوامر المقيدة. يجب إرفاق أي أمر مقيد مسبقا بـ sudo لرفع الامتياز.

sudo usermod -a -G المجموعة المستخدم

سيضيف المستخدم الحالي user إلى مجموعة تكميلية تسمى group. ستبقى المجموعة الأساسية للمستخدم دون تغيير.

لإضافة مستخدم إلى مجموعة بشكل دائم ، قم بتشغيل هذا الأمر:

sudo usermod -a -G <groupname> <username>

ثم قم بتسجيل الخروج وتسجيل الدخول مرة أخرى (أو إعادة التشغيل إذا لزم الأمر).

الشرح:

ال usermod القيادة سيتم تعديل /etc/group الملف لسرد اسم المستخدم المحدد في السطر ذي الصلة بتلك المجموعة. إذا قمت بتشغيل grep <groupname> /etc/group، يجب أن ترى اسم المستخدم الخاص بك في الإخراج.

في لينكس ، يتم تعيين كل عملية لمستخدم ومجموعات ، وأي عمليات تابعة ترث المستخدم ومجموعات العملية الرئيسية. لذلك ، لكي يصبح هذا التغيير ساري المفعول ويقترح ، تحتاج إلى تسجيل الخروج وتسجيل الدخول مرة أخرى (عند هذه النقطة /etc/group قراءة واستخدامها). على وايلاند ، لقد وجدت أن إعادة التشغيل الكامل ضروري.

إذا قمت بتشغيل الأمر groups، يمكنك معرفة ما إذا كانت العملية الحالية تحتوي على المجموعات المتوقعة أم لا.