使用”sudo”的4个实用小技巧

写在前面

在系统运维过程中,为了安全起见,我们一般都不会直接使用root账号来登录管理服务器,但是在日安装软件、删除软件、更新系统等操作都需要取得root权限才能执行相应操作。
"sudo"就是这样一种命令:可以用来以其他已经授权的身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,如果没有设置免密就必须先输入密码,之后有5分钟的默认有效期限,超过期限则必须再次重新输入密码。

实用小技巧

1) !! 和 ! -1

用法:想要允许授权的普通用户作为root用户来执行一个命令,但是刚刚执行命令的时候却忘记在命令前加上"sudo"了,该怎么办?
不要担心,我们可以使用"sudo !!" 结合命令历史来执行你刚刚想要执行的命令。
参数"!!“和”! -1"作用一样,都是允许授权的普通用户作为root用户来执行我们刚才输入的命令。当然,以此类推,我们可以使用"sudo ! -2"来执行倒数第二个命令哦!

2) -u <用户名>

注意: -u<用户>以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
用法:我们可以使用"sudo -u username -i" 来指定一个用户登陆shell。
提示,username换成你想要使用的其他用户名即可,在此过程中需要输入username的授权密码。

在这里插入图片描述

3) sudo输出重定向

在这里插入图片描述

[yuki@myhost ~]$ cd /home/script/
[yuki@myhost script]$ ll
总用量 1
-rw-r--r--. 1 root root    0 5月  21 13:45 test.sh

[yuki@myhost script]$ cat test.sh 
[yuki@myhost script]$ echo "我是新添加的内容"  >  /home/script/test.sh 
-bash: /home/script/test.sh: 权限不够

[yuki@myhost script]$ echo "我是新添加的内容"  | sudo tee  /home/script/test.sh  
我是新添加的内容
[yuki@myhost script]$ ll
总用量 2
-rw-r--r--. 1 root root   25 5月  21 13:50 test.sh
[yuki@myhost script]$ cat test.sh 
我是新添加的内容

[yuki@myhost script]$ echo "我是第二次新添加的内容"  | sudo tee -a  /home/script/test.sh   
我是第二次新添加的内容
[yuki@myhost script]$ cat test.sh 
我是新添加的内容
我是第二次新添加的内容

[yuki@myhost script]$ echo "我是第先清除再添加的内容..."  | sudo tee   /home/script/test.sh 
我是第先清除再添加的内容...
[yuki@myhost script]$ cat test.sh 
我是第先清除再添加的内容...

4) :w !sudo tee %

:w !sudo tee % 可用在vi/vim编辑器中。
我们经常会遇到当前登录用户没有某个文件的w(write)权限,编辑文件后保存时先输入这个然后就不用担心没有修改的权限了。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章