Linux sudo命令(linux sudo找不到命令)

sudo Linux sudo命令 一直以来,大家有一个错误的认识,认为sudo仅用于向普通用户提供root权限 By myfreax 27 Nov 2022

sudo命令允许您以其他用户身份运作命令与操作程序,默认是root用户。如果你是个命令行用户,那般sudo就是你将常用的一种命令之一。

运用sudo而不是以root用户身份登录会安全性能高,由于大家能够为独立用户授予有限资源管理权限,而无需让孩子明白root用户用户名和密码。

sudo命令已事前安装于绝大多数Linux发行版中。要检验设备是否组装sudo命令,挑选快捷键ctrl alt t打开终端台,键入sudo,再按照Enter

组装 sudo

假如你系统已下载sudo,会自动说明一条简洁明了帮助信息,要不然我们将看到相仿sudo command not found的信息。

如果你没有安装sudo,则能用发行版的app包管理器组装它,例如apt命令或者yum命令组装sudo。

如果你计算机运行是指依据Debian的Linux发行版,例如Ubuntu,Linux mint,则可以运作命令sudo apt install sudo组装sudo。

如果你计算机运行是指依据RedHat的Linux发行版,例如CentOS,Fedora,则可以运作命令yum install sudo组装sudo。

apt install sudo #for ubuntu and debian
yum install sudo #for CentOS and RedHat

sudo命令句法与选项

sudo命令的基本语法是sudo OPTION.. COMMANDsudo命令有用于操纵行为人这个功能,但一般sudo都是以其最基本的方法运用,并没有选项。

在这其中COMMAND就是你要运行的命令。sudo将加载/etc/sudoers文本文档,并检查用户是否授予sudo的访问权限。

在第一次使用sudo时,系统会提示您输入目前用户用户名和密码,并且该命令便以root用户推行。

例如,要例举/root文件名称中所有文本文档,请运作命令sudo ls /root

sudo ls /root
[sudo] password for myfreax:
.  ..  .bashrc.cache.config  .local  .profile

用户名和密码请求超时

默认情况下,sudo闲置不用五分钟后,sudo会要求您再一次键入交易密码。您可以通过撰写/etc/sudoers文本文档来变动默认请求超时。运作命令visudo 撰写/etc/sudoers。

再加上行Defaults timestamp_timeout=10来设置默认请求超时,在这其中是公司以min为依据特定请求超时,这里设成10min。

假如你要的是仅仅是特殊用户变动sudo的请求超时,请再加上行Defaults:user_name timestamp_timeout=10,在这其中user_name是用户名。

sudo visudo
Defaults  timestamp_timeout=10
Defaults:user_name timestamp_timeout=10 #specify user
/etc/sudoers

以非root用户运作命令

一直以来,你们有什么一个错误的观念,感觉sudo仅限向一般用户给与root管理员权限。

实际上,您可以使用sudo用各种用户身份运作命令。-u选项允许您以特定用户运作命令。

在以下案例中,我们使用sudo命令以myfreax用户运作命令whoami。whoami命令将打印出运作该命令的用户名称。

sudo -u myfreax whoami

sudo 自动跳转

假如你尝试将sudo命令的输出重定向到用户没有写管理权限文本文档,通常会收到管理员权限抵触的不当信息permission denied

例如命令sudo echo "test" > /root/file.txt运用echo和重定向操作符> ,将标准输出重定向到/root/file.txt文本文档。

我们将收到有误信息bash: /root/file.txt: Permission denied。怎么会那般,主要是因为标准输出的自动跳转>应以您登录的用户并非sudo特定用户运作。

自动跳转在开启sudo命令之前造成。一种解决方案采用的是sudo sh -c以root用户创建子shell全过程运作命令。

另一种解决才是把一般用户的标准输出通过管道传递给到tee命令。

sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied
sudo sh -c 'echo "test" > /root/file.txt'
echo "test" | sudo tee /root/file.txt

将用户导到sudo组

默认情况下,在大多数Linux发行版中,授予sudo访问权限,好似将用户导到用户组一样简单。

只需将用户导到sudoersword里定义的sudo组就能够。这样的事情中的一员将能够以root用户身份运作一切命令。团的名称可能会因为发行版有所不同。

在依据RedHat的发行版,例如CentOS和Fedora,sudo团的名称是wheel。要将用户导到wheel组,请运作usermod命令usermod -aG wheel username

在Debian,Ubuntu及其衍生出的Linux发行版,sudo团的成员喜获sudo访问权限。

sudo usermod -aG wheel username #for CentOS and Fedora
sudo usermod -aG sudo username #for Debian and Ubuntu

出于安全原因,Ubuntu中的root用户账户默认情况下处于禁用状况,鼓励用户运用sudo推行管理方法信息系统软件每日每日任务。

在使用Ubuntu整个过程创建的初始用户已经是sudo团的成员,因此,假如你后台程序Ubuntu,您登录的用户很有可能已经是sudo团的成员。

如果需要掌握自己是不是存有sudo组,可以运作命令groups | grep sudo。以下groups和grep,管道组成命令来验证目前用户是否存有sudo组。

groups | grep sudo #for ubuntu and debian
groups | grep wheel #for centos and fedora

仅允许运作特定命令

另一个广泛性案例是仅允许用户运用sudo运作特定命令。例如,要仅允许用户运用sudo运作mkdir命令创建目录和rmdir命令删除目录。

myfreax ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/rmdir规范将允许用户在没有任何键入交易密码,仅运作特殊rmdir和mkdir命令。

sudo visudo
myfreax ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/rmdir
/etc/sudoers

结论

您早就学会了如何使用sudo命令以及选项。包括如何使用sudo以别的用户运作命令,设置sudo请求超时,sudo与自动跳转,如何修改/etc/sudoer文件等。假如你有任何疑问,请随时。

LINUX

Linux wget命令示例(linux wget命令找不到)

2023-1-19 8:20:42

LINUX

Linux的shutdown关机命令(win10 shutdown关机命令)

2023-1-19 8:25:01

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索