RDP Monster

كيفية تبديل المستخدم في Ubuntu: su و sudo و رفع الصلاحيات

كيفية تبديل المستخدم في Ubuntu: su و sudo و رفع الصلاحيات

مقدّمة

إدارة عدة حسابات مستخدمين والتنقّل بينها جانب أساسي من إدارة أنظمة Linux. Ubuntu، أشهر توزيعة Linux في العالم، توفّر عدّة طرق لتغيير المستخدم النشط، ولكل طريقة استخداماتها وتبعاتها الأمنية. إتقان هذه الآليات يتيح سير عمل متعدد المستخدمين بكفاءة، وعمليات إدارة آمنة، وإدارة سليمة للامتيازات.

يستعرض هذا الدليل الشامل كل الطرق لتبديل المستخدمين في Ubuntu، من أساسيات سطر الأوامر إلى تقنيات تصعيد الامتيازات المتقدّمة. سواء كنت تدير أنظمة مشتركة أو مهام إدارية أو بيئات متعدّدة المستأجرين، فإن إتقان تبديل المستخدمين أمر أساسي لإتقان Ubuntu.

 

فهم إدارة المستخدمين في Ubuntu

أنواع حسابات المستخدمين

المستخدمون العاديون: حسابات قياسية بصلاحيات محدودة، ووصول مقيد للملفات، وعدم القدرة على تعديل تكوين النظام.

المستخدم root: مستخدم خارق بوصول غير مقيد إلى جميع موارد النظام، قادر على أي عملية بما في ذلك الخطيرة.

مستخدمو النظام: حسابات خاصة لخدمات النظام (www-data لخوادم الويب، mysql لقواعد البيانات).

مستخدمو sudo: حسابات عادية بصلاحيات مستخدم خارق مفوضة عبر تكوين sudo.

رفع الامتيازات

Why Escalate?: Most administrative tasks require elevated privileges. Rather than logging in as root (dangerous), Ubuntu uses privilege escalation to grant specific elevated permissions temporarily.

المبادئ: نفّذ العمليات بأقل الصلاحيات الضرورية؛ قلّل الوقت مع الوصول المرتفع؛ راجع جميع العمليات المميزة.

 

أمر su (تبديل المستخدم)

الصيغة الأساسية

su [OPTIONS] [USERNAME]
Switching to Another User
su john
Prompts for the target user’s password, then switches to that account. The environment remains the user’s original environment (not recommended).

تبديل المستخدم مع بيئة جديدة

su - john


The hyphen (-) loads the complete environment of the target user, including:

  • متغير HOME يشير إلى الدليل المنزلي للمستخدم

  • متغير PATH يحتوي على مسارات أوامر المستخدم

  • ملفات تكوين shell (.bashrc, .profile)

  • تم تغيير دليل العمل إلى الـ home الخاص بالمستخدم

Best Practice: Always use su - to ensure proper environment configuration.


التبديل إلى مستخدم root

su -


يتحول إلى المستخدم root مع بيئة root الكاملة. يطلب كلمة مرور root.

خيارات أمر su

-c (Command): Execute single command as another user without full session

su - john -c "ls -la /home/john"

-l (Login): Identical to using hyphen; creates login shell

su --login john

 

-s (Shell): تحديد الصدفة للجلسة

su - john -s /bin/zsh

 

-m (Preserve environment): Keep current environment while switching

su -m john

أمر sudo (تنفيذ بصلاحيات مسؤول)

الصيغة الأساسية
sudo [OPTIONS] COMMAND


تنفيذ أمر بصلاحيات مرتفعة

sudo apt-get update # Update package lists (requires root)
sudo systemctl restart ssh # Restart SSH service
sudo reboot # Reboot system


تشغيل قشرة root تفاعلية

sudo -i

يبدأ قشرة root تفاعلية دون تسجيل الدخول كـ root.

تشغيل أمر كمستخدم آخر

sudo -u username command

ينفّذ الأمر بصلاحيات المستخدم المحدد (وليس root فقط).


خيارات أمر sudo

-l (List): Display allowed commands

sudo -l

-k (Invalidate): Clear sudo credentials (requires password on next use)

sudo -k

 

-p (Prompt): Custom password prompt

sudo -p "Enter admin password: " apt-get update
-v (Validate): Extend sudo timeout
sudo -v

 

-H (Home): Set HOME to target user’s home

sudo -H -u username command

su – مقابل su: الفروق الأساسية

الميزة su su –
البيئة يحافظ على بيئة الـ shell الأم يحمّل بيئة المستخدم الهدف
متغير HOME يبقى في الـ home الخاص بالمستخدم الأصلي ينتقل إلى الـ home الخاص بالمستخدم الهدف
متغير PATH قد يتضمن مسارات المستخدم الأصلي يحتوي على المسارات القياسية للمستخدم الهدف
إعدادات Shell لا يحمّل .bashrc أو .profile يحمّل ~/.bashrc, ~/.profile
دليل العمل يبقى في الدليل الحالي ينتقل إلى الـ home الخاص بالمستخدم
موصى به نادراً؛ احتمال الإرباك دائماً عند تبديل المستخدم
مستوى الخطر أعلى (بيئات مختلطة) أقل (بيئة نظيفة)

 

مثال على الفرق

# استخدام su (BAD)
$ su john
Password:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory
# استخدام su - (GOOD)
$ su - john
Password:
$ echo $HOME
/home/john # Correct home directory
$ pwd
/home/john # Correct directory

التبديل إلى مستخدم root

استخدام su

su - Password: (enter root password)
root@hostname:~#

استخدام sudo

sudo -i
[sudo] password for john: (enter john's password)
root@hostname:~#

الفروق بين su – و sudo -i

الجانب su – sudo -i
كلمة المرور مطلوبة كلمة مرور root كلمة مرور المستخدم الحالي
التسجيل غير مسجل يُسجَّل بواسطة sudo
سجل التدقيق الحد الأدنى سجل تدقيق كامل
الأمان أقل (يتطلب مشاركة كلمة مرور root) أعلى (مسؤولية فردية)
الإعداد المؤسسي النموذجي غير محبذ Recommended

Security Note: Modern Ubuntu systems typically don’t require root password; instead, sudoers are granted authority through sudo configuration.

 

تشغيل أوامر بصفة مستخدم آخر

تنفيذ أمر واحد

sudo -u apache /usr/bin/apache2ctl restart
su - testuser -c "python /home/testuser/script.py"

تشغيل أوامر متعددة

sudo bash -c "echo 'Line 1' > /tmp/file; cat /tmp/file"

تشغيل الأوامر مع الحفاظ على الدليل الحالي

sudo -u john pwd # Prints john's home (working directory changed)
sudo -u john -C pwd # Prints current directory (with -C flag)

تغيير كلمة مرور المستخدم

تغيير كلمة المرور الخاصة

passwd

يطلب كلمة المرور الحالية، ثم كلمة المرور الجديدة (مرتين للتأكيد).

تغيير كلمة مرور مستخدم آخر (يتطلب root)

sudo passwd john

لا تتطلب كلمة المرور الحالية؛ تطلب كلمة المرور الجديدة (صلاحية root).

تعيين سياسة انتهاء الصلاحية

sudo chage -l john # View password aging info
sudo chage -M 90 john # Force password change every 90 days
sudo chage -d 0 john # Force password change on next login

صلاحيات المستخدمين والمجموعات

عرض مجموعات المستخدمين

groups john # Show groups current user belongs to
groups # Show own groups
id john # Detailed UID, GID, groups

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

sudo usermod -aG groupname username

 

Example: Add user to sudo group

sudo usermod -aG sudo john

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

sudo deluser username groupname

إنشاء مستخدم جديد

sudo useradd -m -s /bin/bash newuser
sudo passwd newuser

Options:

  • -m: Create home directory

  • -s: Specify shell

  • -G: تعيين إلى مجموعات

 

أمثلة عملية

Example 1: Administrative Task with رفع الامتيازات

#!/bin/bash
# Install software update as regular user with privilege escalation
sudo apt-get update
sudo apt-get upgrade -y
echo "System update complete"

المثال 2: تشغيل مهام خادم الويب

# Stop web server as specific service user
sudo -u www-data /opt/webapp/stop.sh
# Check web server permissions as www-data
sudo -u www-data ls -la /var/www/html

المثال 3: تشغيل صيانة قاعدة البيانات

# Backup database as specific user
sudo -u mysql mysqldump -u root -p database_name > backup.sql
# Run database optimization
sudo -u mysql mysql -u root -p -e "OPTIMIZE TABLE table_name;"

المثال 4: إدارة المستخدمين الدفعية

#!/bin/bash
# Create multiple users
for user in user1 user2 user3; do
sudo useradd -m -s /bin/bash "$user"
echo "Please set password for $user:"
sudo passwd "$user"
done
# Add all to sudo group
for user in user1 user2 user3; do
sudo usermod -aG sudo "$user"
done

اعتبارات الأمان

أمان كلمات المرور

كلمة مرور root: حافظ على أمانها؛ لا تشاركها أبدًا مع أفراد غير موثوقين

تكوين sudo: فوّض صلاحيات محددة بدلاً من وصول root كامل

انتهاء صلاحية كلمات المرور: افرض تغييرات دورية لكلمة المرور

# Configure password aging
sudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warning

التدقيق والتسجيل

All sudo commands are logged:

sudo grep COMMAND /var/log/auth.log

 

View detailed sudo history:

sudo journalctl _COMM=sudo

Restricting رفع الامتيازات

Configure sudoers file safely:

sudo visudo # Always use visudo for editing sudoers

 

مثال على تكوين sudoers (limiting what john can run):

john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
john ALL=(ALL) /usr/bin/apt-get

انتهاء مهلة الجلسة

# Set sudo timeout
sudo -v # Extend timeout
sudo -k # Invalidate sudo credentials

لماذا تستخدم البنية البعيدة تبديل المستخدمين

تتطلب البنية التحتية لـ RDP و SSH بشكل متكرر:

  • عدة مستخدمين إداريين بمستويات صلاحيات مختلفة

  • حسابات خدمة للعمليات الآلية

  • سجلات تدقيق للامتثال (تسجيل sudo)

  • رفع الصلاحيات للمهام الإدارية

إدارة البنية التحتية عبر RDP.Monster

Managing Ubuntu systems remotely requires robust, secure access:

وصول SSH لتنفيذ الأوامر

  • تنفيذ أوامر تبديل المستخدم عن بُعد

  • الإدارة الآلية عبر النصوص البرمجية

  • تحكم كامل في إدارة المستخدمين

دعم حسابات المستخدمين المتعددة

  • إنشاء مستخدمين إداريين

  • تفويض الصلاحيات بشكل مناسب

  • الحفاظ على سجلات التدقيق

إدارة عن بُعد آمنة

  • تشفير SSH لجميع عمليات تبديل المستخدمين

  • المصادقة المعتمدة على المفاتيح للوصول البرمجي

  • تسجيل ومراقبة شاملة

انشر بنية تحتية Ubuntu VPS مع قدرات إدارة آمنة للمستخدمين عبر RDP.Monster

 

خلاصة

يعد تبديل المستخدمين ورفع الصلاحيات من المهارات الأساسية لإدارة Ubuntu. فهم الاختلافات بين su و sudo وإدارة كلمات المرور يمكّن من إدارة فعّالة للأنظمة متعددة المستخدمين مع الحفاظ على الأمان من خلال تفويض الصلاحيات المناسب وسجلات التدقيق.

تفضل أفضل ممارسات Ubuntu الحديثة بقوة استخدام sudo بدلاً من su لرفع الصلاحيات، مما يتيح المساءلة والتسجيل الشامل مع تقليل مشاركة كلمة مرور root. التكوين الصحيح لـ sudoers مع تفويض صلاحيات محددة يوفر توازنًا أمنيًا ممتازًا بين قابلية الاستخدام والوصول control.

Managing complex Ubuntu infrastructure requiring sophisticated user management and secure administrative access? RDP.Monster provides SSH-based Ubuntu VPS solutions enabling seamless user management and privilege escalation across your infrastructure. Deploy professionally-managed Ubuntu systems today.

استضافة VPS أوبونتو قوية

استمتع بتحكّم كامل وأداء فائق السرعة مع VPS لينكس لدينا. مثاليّ لاستضافة التطبيقات وإدارة الخوادم وتحسين سير العمل.

Dedicated Servers

خوادم مخصّصة عالية الأداء

هل تحتاج إلى أقصى تحكّم وقوة؟ توفّر خوادمنا المخصّصة أداءً لا مثيل له للمهام المتطلّبة.

الأسئلة الشائعة

هل أستخدم su أم sudo؟

في الأنظمة الحديثة، يُفضَّل sudo.

يتيح المساءلة، ويستلزم كلمات مرور فردية، ويوفّر سجلات تدقيق كاملة.

لماذا لا يعمل أمر su لديّ؟

ربما لا تعرف كلمة مرور المستخدم المستهدف.

Try sudo -u username instead if you have sudo privileges.

هل يمكنني تبديل المستخدم دون كلمة مرور؟

نعم، عبر sudo: اضبط sudoers مع NOPASSWD.

أما su فيحتاج دائمًا إلى كلمة مرور المستخدم المستهدف.

ما الفرق بين su - و su --login؟

كلاهما متطابق؛ ينشئان login shell مع تحميل البيئة بالكامل.

كم تدوم صلاحية sudo؟

الافتراضي 15 دقيقة. ويمكن تخصيصها في إعدادات sudoers.

هل يمكنني تنفيذ عدة أوامر بصفة مستخدم آخر؟

نعم: sudo bash -c "command1 && command2 && command3"

كيف أرى صلاحيات sudo الخاصة بي؟

شغّل sudo -l لعرض الأوامر المسموح بها.

لماذا يتغيّر PATH عند تبديل المستخدمين؟

استخدم su - لتحميل بيئة المستخدم المستهدف كاملةً بما فيها PATH الصحيح.

Register to our reseller program

Your informations

If you have any question, contact us by clicking here !
Name(Required)
Enter your email address, you must have an account on manager.rdp.monster !

Your company

Enter your website address if you have one
Quickly explain how you're going to sell services to your customers. For example, talk to people on forums.

نحن نستخدم ملفات تعريف الارتباط !

نحن نستخدم ملفات تعريف الارتباط لتحسين تجربة التصفح الخاصة بك، وتقديم إعلانات أو محتوى مخصص، وتحليل حركة المرور لدينا. بالنقر على «قبول»، فإنك توافق على استخدامنا لملفات تعريف الارتباط.