我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

linux命令sudo linux命令sudo全拼

linux su和sudo命令的区别

su

创新互联建站长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为桐庐企业提供专业的成都网站制作、成都网站设计,桐庐网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

su的全称并不是super user,而是switch user,是不是就突然明白了?是切换用户的意思。su的一般使用方法是su或者su -,两种方法虽然只差了1个字符,但也是有比较大的差异的。

加入了-参数,就是login-shell的方式,也就是说切换到另一个用户之后,当前的shell会加载对应的环境变量和各种设置;

如果没有加入-参数,就是non-login-shell的方式,也就是说当前的shell还是加载切换之前的那个用户的环境变量以及各种设置。

如果不想因为切换到另一个用户导致自己在当前用户下的设置不可用,那么就可以用non-login-shell的方式;如果切换用户后,需要用到该用户的各种环境变量,那么使用login-shell方式即可。

sudo

全称为super user do,即以超级用户的方式执行命令,这里的超级用户指的就是root用户,我们在Linux中有时会遇到permission

denied的情况,如以ubuntu用户的身份查看/etc/shadow的内容,因为它是只有root用户才能查看的,这个时候就可以使用sudo。

两者的区别在于:

使用su - 提供root账号的密码,可以切换到root用户;

使用sudo su -,提供当前用户的密码,也可以切换到root用户。

如果我们的Linux系统有很多用户需要使用的话,前者要求所有用户都知道root用户的密码,显然是非常危险的;后者是不需要暴露root账户密码的,用户只需要输入自己的账户密码就可以。

Linux里面su和sudo命令区别在哪里?

su和sudo都是Linux操作系统里面比较常见的命令,而且sudo命令很多方面类似于su命令,所以有的时候大家分不清楚它们,那么Linux中su和sudo命令有什么区别?如果你还不清楚,这篇文章千万别错过!

定义上的区别:

su为switch

user,即切换用户的简写。su是最简单的身份切换名,用su我们能够进行不论什么用户的切换,一般都是su-username,然后输入password就OK了,可是root用su切换到其他身份的时候是不需要输入password的。

sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令。

格式上的区别:

su格式有两种:su -l USERNAME、su USERNAME。

sudo格式:sudo -u USERNAME COMMAND。

密码上的区别:

两个命令的最大区别是:sudo命令需要输入当前用户的密码,su命令需要输入root用户的密码。

日志记录上的区别:

尽管sudo命令以目标用户的身份执行命令,但是它们会使用sudoer所配置的用户名来记录是谁执行的命令。而su命令是无法直接跟踪记录用户切换到root用户之后执行了什么操作。

灵活性上的区别:

sudo命令比su命令灵活很多,甚至可以限制sudo用户可以访问哪些命令。换句话来讲,用户通过sudo命令只能访问他们工作需要的命令,而su命令让用户有权限做任何事情。

Linux sudo操作免密码

sudo是以管理员权限进行操作,但是需要输入密码,如果想在用sudo时不用输入密码,需要修改 /etc/sudoers 文件。

首先需要备份一下 sudoers 文件,万一改崩了还有救。

使用 sudo visudo 命令打开, 如果失败了用 sudo vi /etc/sudoers

在最下面一行加上,下面的 username 需要改成自己的用户名:

如果要指定哪些操作不需要输入密码,需要在 NOPASSWD 后面加上指定命令:

保存退出之后,重新登录一次就可以了。

参考:

Linux 中不输入密码运行 sudo 命令的方法

linux下面的sudo命令什么意思

sudo是superuser

do的简写,sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登陆

和管理时间,同样也提高了安全性。

apt是个很完整和先进的软件包管理程式,使用他能够让您,又简单,又准确的找到您要的的软件包,

并且安装或卸载都很简洁。

他还能够让您的任何软件都更新到最新状态,而且也能够用来对ubuntu进行升级。

"apt是需要用命令来操作的软件,但是现在也出现了很多有图像的软件,比如Synaptic,

Kynaptic

Adept。"

linux sudo用法

一种约束用户执行系统管理命令方面的安全机制,允许指定的用户以root身份执行指定的命令而不需要提供root密码。用过Ubuntu(Debian系)的小伙伴很有发言权。

当用户要执行比如systemctl stop httpd时,如果该用户不被允许使用systemctl stop命令,则命令无法运行,从而实现只允许指定用户(信任的小伙伴)才可运行相关系统、服务管理方面的命令;如果用户被允许使用该命令,sudo机制也会提醒用户输入其账号密码,从而存在一个缓冲的时间,可以让命令执行者脑袋清醒一下,确认无误后敲下回车。

Sudo应该是Switch User Do的简写(尚未考证),简单粗暴的翻译就是“切换用户干”,当指定sudo systemctl stop httpd命令时,事实上是以root用户的身份运行的。下面以Redha系CentOS7.6来介绍一下sudo的使用,通过visudo直接回车可看到:

图中可以看出默认有8个命令别名,每一个别名分别对应一些命令,比如PROCESS,是nice、kill、killall三个命令的别名。之所以要有别名,是因为将命令分门别类后便于后面的引用。

看懂语法,基本就可以搞定了。每个框框中注释部分说的很清楚。比如“%wheel   ALL=(LL) NOPASSWD:ALL”表示wheel这个群组中的用户可以在任何主机上执行任何命令且不需要输入密码。

用户名:ds 

群组:   testgroup

要求:只允许testgroup群组用户执行跟networking相关的命令

步骤:

1、 [endif]命令行中输入visudo回车—编辑/etc/sudoers文件

2、 [endif]去掉“Cmnd_Alias NETWORKING…“一行的的注释

3、 加入下面一行

4、 测试

可以看到ds用户执行ping是可以的,但是执行kill命令就不行了,即使使用sudo尝试使用root身份执行也不行:

通过/var/log/secure日志文件可以看的更详细:

常用实例讲解

1 .oracle用户可以在任何地点以任何的身份执行所有命令,等同于root。

oracle ALL=(ALL) ALL

2. oracle2用户可以在任何地点以root的身份执行命令useradd(无需密码)和usermod(需要密码).

这样oracle2就可以免密码useradd,有密码(密码为oracle2的自身密码)使用userdel。

oracle2 ALL=(root) NOPASSWD:/usr/sbin/useradd, PASSWD:/usr/sbin/userdel

使用方式如下

[oracle2@centos74 ~]$ useradd test001 # 直接使用命令是不可以的。

-bash: /usr/sbin/useradd: Permission denied

[oracle2@centos74 ~]$ sudo useradd test001                          # 必须加sudo

[oracle2@centos74 ~]$ id test001                                    # 查看添加的用户信息

uid=1031(test001) gid=1032(test001) groups=1032(test001)

3. oracle3用户只能在192.168.1.120主机远程登录并以root身份执行ifconfig eth0命令。

Cmnd_Alias NETCMND = /sbin/ifconfig eth0

oracle3 192.168.1.120 = (root) NOPASSWD:NETCMND

4. oracle4用户可以执行/usr/sbin下的所有命令除了/usr/sbin/userdel

oracle4 ALL=(ALL) /usr/sbin/,!/usr/sbin/userdel

5. oracle5用户可以cat /var/log/secure*的文件

oracle5 ALL=(ALL) /bin/cat /var/log/secure*,!/bin/cat /var/log/secure* *

Linux下的命令sudo怎么读?

su do,速度,一声念更拽的样子.不过之前网友回复的

详细单词是superuserdo,意为超级管理员可以做的动作。

实际上,也可以用sudo命令以其他的用户的身份执行一条命令

sudo - 以其他用户身份执行一条命令

usage: sudo -h | -K | -k | -V

usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]

usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user]

[command]

usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p

prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] [command]

usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p

prompt] [-T timeout] [-u user] file ...

选项:

-A, --askpass 使用助手程序进行密码提示

-b, --background 在后台运行命令

-B, --bell ring bell when prompting

-C, --close-from=num 关闭所有 = num 的文件描述符

-E, --preserve-env 在执行命令时保留用户环境

--preserve-env=list preserve specific environment variables

-e, --edit 编辑文件而非执行命令

-g, --group=group 以指定的用户组或 ID 执行命令

-H, --set-home 将 HOME 变量设为目标用户的主目录。

-h, --help 显示帮助消息并退出

-h, --host=host 在主机上运行命令(如果插件支持)

-i, --login 以目标用户身份运行一个登录

shell;可同时指定一条命令

-K, --remove-timestamp 完全移除时间戳文件

-k, --reset-timestamp 无效的时间戳文件

-l, --list

列出用户权限或检查某个特定命令;对于长格式,使用两次

-n, --non-interactive 非交互模式,不提示

-P, --preserve-groups

保留组向量,而非设置为目标的组向量

-p, --prompt=prompt 使用指定的密码提示

-r, --role=role 以指定的角色创建 SELinux 安全环境

-S, --stdin 从标准输入读取密码

-s, --shell 以目标用户运行

shell;可同时指定一条命令

-t, --type=type 以指定的类型创建 SELinux 安全环境

-T, --command-timeout=timeout terminate command after the specified time limit

-U, --other-user=user 在列表模式中显示用户的权限

-u, --user=user 以指定用户或 ID

运行命令(或编辑文件)

-V, --version 显示版本信息并退出

-v, --validate 更新用户的时间戳而不执行命令

-- 停止处理命令行参数


本文名称:linux命令sudo linux命令sudo全拼
网页URL:http://shouzuofang.com/article/hggiph.html

其他资讯