网站首页 > 技术文章 正文
sudo命令
我们平时用低权限账号在使用一些高权限命令时,经常会提示Permission denied,一般人可能会切换到高权限账号后再使用高权限命令。实际上,我们可以在使用的命令前加上"sudo" 来提升权限使用命令。
sudo 表示 "superuser do"。 它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。然而,大部分时候我们用它来以提升的权限来运行命令
既然可以切换账号以使用高权限命令,为何还要使用sudo呢?我直接使用root账号登陆不就行。
首先root账号拥有最高权限,没有任何限制,可以删除整个系统的大部分文件,如果使用不当很容易造成系统损坏,或者文件损坏,所以不推荐直接使用root账号。
其次是为了安全,root账号的密码只有最高管理员才能知道,要是每个人都知道很不安全。
那么应该怎么办呢?sudo命令正是为了解决这个问题,虽然你不知道root账号的密码,但是当你需要root账号的权限来完成一些命令时,就可以使用sudo命令了。但是并不是说所有的低权限账号都可以使用高权限命令或者说所有的高权限命令,如果真是这样的话,那低权限账号和高权限账号也没有任何区别了。
sudo命令是只有在/etc/sudoers中的用户才有资格使用sudo命令来完成root账户才能使用的权限
#举个例子
#使用root创建文件
[root@zabbix-01 ~]# mkdir /test
[root@zabbix-01 ~]# touch /test/aaa
#使用liang用户尝试删除,提示没有权限
[liang@zabbix-01 ~]$ rm -rf /test/aaa
rm: cannot remove ‘/test/aaa’: Permission denied
#使用sudo命令,但是/etc/sudoers中没有这个用户,会提示错误
[liang@zabbix-01 ~]$ sudo rm -rf /test/aaa
[sudo] password for liang:
liang is not in the sudoers file. This incident will be reported.
下面举例将liang这个账号添加到/etc/sudoers中
#1,切换到root用户下:su – root
#2,给/etc/sudoers文件添加写权限 :chmod u+w /etc/sudoers
#3,编辑/etc/sudoers文件,给普通用户添加使用sudu的的权限:vim /etc/sudoers
#4,找到这行:root ALL=(ALL) ALL, 在这行下面添加 xxx ALL=(ALL) ALL (这里的xxx就是你的普通用户)
#这里解释一下,sudoers下面添加普通用户可以使用sudo命令的格式:
#wangpeng ALL=(ALL) ALL :普通用户wangpeng可以使用sudo命令,但是需要密码
#这里注意!如果想限制只能sudo指定命令时,命令所在的目录要正确
#wangpeng zabbix-01=(root) /bin/ls,/bin/netstat:表示wangpeng用户可以在zabbix-01主机以root的用户身份执行ls与netstat命令
#%java ALL=(ALL) ALL 用户组java的用户可以使用sudo命令,但是需要密码
#wangpeng ALL=(ALL) NOPASSWD:ALL 普通用户wangpeng可以使用sudo命令,不需要密码
#%java ALL=(ALL) NOPASSWD:ALL 用户组java的用户可以使用sudo命令,不需要密码
#wangpeng ALL=(ALL) NOPASSWD: /bin/ls,/bin/netstat 设置 sudo 指定命令时不需要输入密码
#添加完之后,保存退出
#去除root用户对sudoers文件的写权限:chmod u-w /etc/sudoers
添加好sudo后,再次尝试删除指定文件
[liang@zabbix-01 ~]$ rm -f /test/aaa
rm: cannot remove ‘/test/aaa’: Permission denied
[liang@zabbix-01 ~]$ sudo rm -f /test/aaa
[sudo] password for liang:
[liang@zabbix-01 ~]$ ls /test/
#提示删除成功
su命令
su命令比sudo少了一个do,但是意义是完全不一样的,su表示"swith user",命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码
猜你喜欢
- 2024-10-05 大白话 vim 教程-05-配置文件和插件
- 2024-10-05 Ubuntu系统用户无法使用sudo命令应该如何解决?
- 2024-10-05 谁说 Vim 不好用?送你一个五彩斑斓的编辑器!
- 2024-10-05 linux之sudo使用技巧汇总(linux sudo命令详解)
- 10-02基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- 10-02Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- 10-02AWD-LSTM语言模型是如何实现的_lstm语言模型
- 10-02NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 10-02使用ONNX和Torchscript加快推理速度的测试
- 10-02tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- 10-02Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- 10-02Gateway_gateways
- 最近发表
-
- 基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- AWD-LSTM语言模型是如何实现的_lstm语言模型
- NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 使用ONNX和Torchscript加快推理速度的测试
- tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- Gateway_gateways
- Coze开源本地部署教程_开源canopen
- 扣子开源本地部署教程 丨Coze智能体小白喂饭级指南
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)