English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux sudo命令

مجلة الأوامر في لينكس

Linux sudo命令通过系统管理者的身份执行指令,也就是说,通过sudo执行的指令就像root亲自执行一样。

使用权限:在 /etc/sudoers 中有出现的使用者。

语法

sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command

参数说明

  • -V 显示版本编号
  • -h 会显示版本编号及指令的使用方式说明
  • -l 显示出自己(执行 sudo 的使用者)的权限
  • -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
  • -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
  • -b 将要执行的指令放在背景执行
  • -p prompt 可以更改问密码的提示语,其中 샫为使用者的帐号名称, %h 会显示主机名称
  • -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
  • -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
  • -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
  • command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

在线示例

sudo命令使用

$ sudo ls
[sudo] password for hnlinux: 
hnlinux is not in the sudoers file. This incident will be reported.

指定用户执行命令

# sudo -u userb ls -l

显示sudo设置

$ sudo -L //显示sudo设置
Available options in a sudoers ``Defaults'' line:
syslog: Syslog facility if syslog is being used for logging
syslog_goodpri: استخدم مستوى أولوية syslog عند نجاح التحقق من صحة الهوية للمستخدم
syslog_badpri: استخدم مستوى أولوية syslog عند فشل التحقق من صحة الهوية للمستخدم
long_otp_prompt: أضف رسالة التحفيز OTP على سطر منفرد
ignore_dot: ت 忽略 $PATH 中的 '.'
mail_always: أرسل بريدًا دائمًا عند تشغيل sudo
mail_badpass: أرسل بريدًا إذا فشل التحقق من صحة كلمة المرور للمستخدم
mail_no_user: أرسل بريدًا إذا لم يكن المستخدم في sudoers
mail_no_host: أرسل بريدًا إذا لم يكن المستخدم في sudoers لهذا المستضيف
mail_no_perms: أرسل بريدًا إذا لم يتم السماح للمستخدم بتشغيل أمر
tty_tickets: استخدم وقت استدعاء فرديًا لكل مجموعة مستخدم/tty
lecture: أعطِ المستخدم درسًا أوليًا عند تشغيل sudo لأول مرة
lecture_file: ملف يحتوي على الخطاب التعليمي لـ sudo
authenticate: طلب من المستخدمين التحقق من الهوية بشكل افتراضي
root_sudo: يمكن للجذر تشغيل sudo
log_host: سجّل اسم المستضيف في ملف السجلات (غير syslog)
log_year: سجّل السنة في ملف السجلات (غير syslog)
shell_noargs: إذا تم استدعاء sudo بدون أي أ аргументات، استخدم الشل
set_home: قم بتعيين $HOME للمستخدم الهدف عند بدء تشغيل殼 باستخدام -s
always_set_home: قم دائمًا بتعيين $HOME إلى مجلد منزل المستخدم الهدف
path_info: اسمح بجمع بعض المعلومات لمنح رسائل خطأ مفيدة
fqdn: طالب بأسماء النطاقات الكاملة في ملف sudoers
insults: قم بلعن المستخدم عندما يدخل كلمة المرور غير صحيحة
requiretty: اسمح للمستخدم بالتشغيل باستخدام sudo فقط إذا كان لديه tty
env_editor: سيقوم Visudo بتعيين متغير البيئة EDITOR
rootpw: اطلب كلمة المرور للمستخدم root وليس كلمة المرور للمستخدم
runaspw: اطلب كلمة المرور للمستخدم runas_default وليس كلمة المرور للمستخدم
targetpw: اطلب كلمة المرور للمستخدم الهدف وليس كلمة المرور للمستخدم
use_loginclass: تطبيق القيم الافتراضية في فئة تسجيل الدخول للمستخدم الهدف إذا كانت موجودة
set_logname: قم بتعيين متغيرات البيئة LOGNAME وUSER
stay_setuid: قم بتعيين uid الفعلي فقط للمستخدم الهدف وليس uid الحقيقي
preserve_groups: لا تقوم بتهيئة مصفوفة المجموعات بأولوية المستخدم الهدف
loglinelen: طول سطر ملف السجلات عند التشذيب (0 للبدء في التشذيب)
timestamp_timeout: زمن انقضاء زمن التحقق من الاتصال
passwd_timeout: زمن انتظار طلب كلمة المرور
passwd_tries: عدد المحاولات لتسجيل الدخول بكلمة المرور
umask: Umask لتستخدمها أو 0777 لتستخدم المستخدم
logfile: المسار إلى ملف السجلات
mailerpath: المسار إلى البرنامج البريدي
mailerflags: الأعلام للبرنامج البريدي
mailto: العنوان الذي سيتم إرسال البريد إليه
mailfrom: العنوان الذي سيتم إرسال البريد منه
mailsub: سطر العنوان للرسائل البريدية
badpass_message: رسالة كلمة المرور غير صحيحة
timestampdir: المسار إلى دليل زمن التحقق من الاتصال
timestampowner: مالك دليل زمن التحقق من الاتصال
exempt_group: المستخدمون في هذه المجموعة معفيون من متطلبات كلمة المرور وPATH
passprompt: إشارة طلب كلمة المرور الافتراضية
passprompt_override: إذا تم تعيينها، فإن passprompt ستستبدل إشارة النظام في جميع الحالات.
runas_default: المستخدم الافتراضي لتشغيل الأوامر
secure_path: القيمة التي تتعديلها $PATH للمستخدم
editor: المسار إلى محرر visudo للاستخدام
طلب_كلمة_المستخدم_للقائمة: متى يتم طلب كلمة المرور للوظيفة المزيفة 'قائمة'
طلب_كلمة_المستخدم_للتحقق: متى يتم طلب كلمة المرور للوظيفة المزيفة 'تحقق'
إعادة_تحميل_وظائف_الإفتراضية: إعادة تحميل وظائف الإفتراضية dummy الموجودة في 'ملف_الوظائف_الافتراضية'
ملف_الوظائف_الافتراضية: ملف يحتوي على وظائف إفتراضية dummy exec
تجاهل_ملف_sudoers_المحلي: إذا كان دليل LDAP قيد التشغيل، هل نتجاهل ملف sudoers المحلي
closefrom: سيتم إغلاق ملفات الملفات المرقمة >= %d قبل تنفيذ الأمر
تجاوز_قيمة_closefrom: إذا تم تعيينه، يمكن للمستخدمين تجاوز قيمة `closefrom` باستخدام خيار -C
تعيين_متغيرات_البيئة: السماح للمستخدمين بتعيين متغيرات بيئة عشوائية
إعادة_ضبط_البيئة: إعادة ضبط البيئة إلى مجموعة افتراضية من المتغيرات
تحقق_من_صحة_متغيرات_البيئة: متغيرات البيئة التي سيتم التحقق منها للصحة
متغيرات_البيئة_النافية: متغيرات البيئة التي سيتم إزالتها
متغيرات_البيئة_الملحة: متغيرات البيئة التي سيتم الحفاظ عليها
دور_SELinux: دور SELinux الذي سيتم استخدامه في السياق الأمني الجديد
نوع_SELinux: نوع SELinux الذي سيتم استخدامه في السياق الأمني الجديد
مسار_برنامج_الاستفسار: مسار برنامج الاستفسار المساعد
ملف_البيئة: مسار ملف البيئة الخاص بـ sudo
sudoers_locale: منطقة اللغة التي سيتم استخدامها أثناء تحليل sudoers
visiblepw: اسمح لـ sudo بالطلب من كلمة المرور حتى لو كانت مرئية
pwfeedback: قدم ملاحظات مرئية عند إدخال المستخدم لكلمة المرور
fast_glob: استخدم تحديد أكثر سرعة ولكن أقل دقة وليس له إمكانية الوصول إلى النظام الملفات
umask_override: سيتم استبدال umask المحدد في sudoers بالعاملة، حتى لو كان أكثر سماحًا

تنفيذ الأمر السابق بكامل صلاحيات root

$ sudo !!

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

$ sudo -u uggc vi ~www/index.html
//تحرير ملف index.html في مجلد www تحت مجلد home باستخدام مستخدم uggc

إدراج الحقوق الحالية

sudo -l

إدراج معلومات إصدار sudo

sudo -V

مجلة الأوامر في لينكس