Linux的sudo命令

Linux sudo命令

Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

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

参数说明

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

用户名/组名:代表 root 给哪个用户或用户组赋予命令,注意组名前加“%”
用户可以用指定的命令管理指定 IP 地址的服务器。如果写 ALL,代表可以管理任何主机,如果写固定 IP,代表用户可以管理指定的服务器。一直认为这里的IP 地址管理的是登录者来源的 IP 地址,查了很多资料也都是这样的。直到查看“man 5 sudoers”帮助,这里的 IP 指定的是用户可以管理哪个 IP 地址的服务器。那么如果你是一台独立的服务器,这里写 ALL 和你服务器的 IP 地址,作用是一样的。而写入网段,只有对 NIS 服务这样用户和密码集中管理的服务器才有意义如果我们这里写本机的 IP 地址,不代表只允许本机的用户使用指定命令,而代表指定的用户可以从任何 IP 地址来管理当前服务器。
可使用身份:就是把来源用户切换成什么身份使用,(ALL)代表可以切换成任意身份。这个字段可以省略。
授权命令:代表 root 把什么命令授权给普通用户。默认是 ALL,代表任何命令,这个当然不行。如果需要给那个命令授权,写入命令名即可,不过需要注意一定要命令写成绝对路径。

示例一:

举个例子,比如授权用户 st 可以重启服务器,则由 root 用户添加如下行:

[[email protected] ~]$ sudo -l

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for st:
Matching Defaults entries for st on iZbp143t3oxhfc3ar7jey0Z:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User st may run the following commands on iZbp143t3oxhfc3ar7jey0Z:
    (root) /sbin/shutdown -r now
[st@iZbp143t3oxhfc3ar7jey0Z ~]$ sudo /sbin/shutdown -h
Sorry, user st is not allowed to execute ‘/sbin/shutdown -h‘ as root on iZbp143t3oxhfc3ar7jey0Z.

注:阿里云还安装了别的服务,这里就不重启了。

示例二:

授权一个用户管理你的 Web 服务器,不用自己插手是不是很爽,以后修改设置更新。
首先要分析授权用户管理 Apache 至少要实现哪些基本授权:
1、可以使用 Apache 管理脚本
2、可以修改 Apache 配置文件
3、可以更新网页内容
假设 Aapche 管理脚本程序为/etc/rc.d/init.d/httpd 。为满足条件一,用 visudo 进行授权:

[[email protected] ~]$ sudo -l
[sudo] password for st:
Matching Defaults entries for st on iZbp143t3oxhfc3ar7jey0Z:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User st may run the following commands on iZbp143t3oxhfc3ar7jey0Z:
    (root) /sbin/shutdown -r now
    (root) /etc/rc.d/init.d/httpd reload, /etc/rc.d/init.d/httpd configtest
[st@iZbp143t3oxhfc3ar7jey0Z ~]$

示例三:

授权st用户可以添加其他普通用户

[[email protected] ~]$ sudo -l
Matching Defaults entries for st on iZbp143t3oxhfc3ar7jey0Z:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User st may run the following commands on iZbp143t3oxhfc3ar7jey0Z:
    (root) /sbin/shutdown -r now
    (root) /etc/rc.d/init.d/httpd reload, /etc/rc.d/init.d/httpd configtest
    (root) /usr/bin/passwd
    (root) /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd \"\", !/usr/bin/passwd root
[st@iZbp143t3oxhfc3ar7jey0Z ~]$

注:如果只写/usr/bin/passwd的话,也可以修改root的密码,所以最好写的越详细,权限就越小。

原文地址:https://www.cnblogs.com/dalianpai/p/12571486.html

时间: 2024-08-29 05:55:11

Linux的sudo命令的相关文章

linux su,sudo命令

linux su 命令 建议大家切换用户的时候 使用 su - root 这样,否则可能发现某些命令执行不了 关于su .su - 及 sudo的区别 请往下看 1.命令作用 su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码. 2.使用方式 su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 3.参数说明 -f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于c

linux下sudo命令[转]

一.sudo简介:    1.概念: sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的. 它的特性主要有这样几点: 1.sudo能够限制用户只在某台主机上运行某些命令. 2.sudo提供了丰富的日志,详细地记录了每个用户干了什么.它能够将日志传到中心主机或者日志服务器. 3

Linux下sudo命令的配置与使用方法

sudo的字面意思是代表super user do!对Linux系统管理员或高级用户而言,它是必不可少的最重要的命令之一.你可曾有过这样的经历:在终端中试着运行某个命令,结果却遇到"拒绝访问"?怎么办?对了,这个就是你所需要的命令!一.OK!那么下面我将举一个简单的列子,看一下如何使用配置和使用sudo来管理我们的具体服务.1.输入命令chmod u+w /etc/sudoers 2.编辑/etc/sudoers文件,输入命令vim /etc/sudoers,进入编辑模式,找到这一 行

linux下sudo命令

[[email protected] root]$ sudo ls We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes

Ubuntu Linux使用sudo命令搭建java环境

搬运stackoverflow 注意,以下所有命令需要在root权限下执行 1. 在Ubuntu下打开终端命令或用ssh连接到linux. 2. 更新仓库(只有Ubuntu17.4及以下系统可用): sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update 3. 依次输入以下命令 sudo apt-get install openjdk-8-jdk sudo apt-get install openjdk-8-source #安装

Linux下sudo命令实例讲解

一.sudo简介 1.概念: sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的. 它的特性主要有这样几点: 1.sudo能够限制用户只在某台主机上运行某些命令. 2.sudo提供了丰富的日志,详细地记录了每个用户干了什么.它能够将日志传到中心主机或者日志服务器. 3.sud

linux su sudo命令详解

#su [OPTION] USERNAME 切换用户 [OPTION] - 变更当前的工作环境PWD 空 默认切换为root用户 默认情况下使用su只是将PAHT和用户切换为USERNAME的,并不变更PWD.使用-则和用USERNAME登陆在实质上是一样的. #sudo [OPTION] COMMAND 某用户在不切换用户的情况下以另一个用户的权限通过某个主机执行某个命令. [OPTION] -l 列出当前用户可以使用的所有sudo类命令. -k 清除认证,下次使用需输入密码.默认第一次输入密

[转]linux sudo 命令

转自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/11/11/2245341.html “Sudo”是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他 特许用户才能完成的任务,比如:运行一些像mount,halt,su之类的命令,或者编辑一些系统配置文件,像/etc/mtab,/etc /samba/smb.conf等.这样以来,就不仅减少了root

Linux系统技巧|对于Linux系统管理员有用的 sudoers 配置|如何配置 sudo 命令在运行时而不输入密码

本文标签:  Linux系统技巧 配置sudo命令 sudoers文件 Linux用户权限   互联网杂谈 假设你在只有自己使用的计算机上运行 Linux 系统,比如在笔记本电脑上,在每次调用 sudo 时需要输入密码,长期下来就会觉得很乏味.因此,在本指南中,我们将描述如何配置 sudo 命令在运行时而不输入密码. 此设置在 /etc/sudoers 文件中完成,这是使用 sudo命令的默认安全策略;在用户权限指定部分. 重要:在 sudeors 文件中,默认打开的 authenticate