su, su -, sudo
su
语法:
[root @test/root ]# su 参数说明: 范例: [test@testtest]$ su Password: <==输入 root 的密码 [root@testtest]# <==身份变成 root 了! [test@testtest]$ su - <==连环境参数档案都是读取 root 的! [root@testroot]# su test <==将 root 的身份改为 test ,且不需要输入密码喔! |
说明 :
这个指令很有用呦!这是用来将『 一般身份转换成super user 』的指令!通常为了安全的考虑,telnet 与 ssh 尽量不要以 root 的身份来登入!但是有时后我们又要在外头以root 的身份来修改系统设定,这个时候 su 就很有用了!su 的使用真的很简单,输入su 之后,直接给他输入 root 的密码,此时您就是 root 了!但是需要特别留意的是:
- 虽然您已经是 root 的身份,但是您的环境当中,还是属于当初登入的那个使用者!例如我以test 登入 Linux ,再以 su 切换身份成为 root ,但是我的 mail, PATH 及其它一些相关的环境变量,都还是test 这个身份呢!
- 至于环境变量当中,最麻烦的当属 PATH 这个东西,因为为了避免一般使用者使用了root 的管理指令,所以通常 Linux 都会将指令分类放在两个主要的目录,分别是/bin 与 /sbin !那个 /sbin 大多是 super user 就是 root 用来管理系统的指令啦!所以,可能的话,将test 的 PATH 重新设定成为 root 的 PATH ,这样也比较方便呀!
- 如果要全部的环境变量均使用 root 的设定档,这个时候必需使用『su - 』来下达命令喔!
此外, su 也可以将您的身份转换成为其它身份的使用者,而,如果您是root ,那么转换为其它身份的使用者,将不需要输入密码喔!很过瘾吧!
sudo
语法:
[root @test/root ]# sudo [-u username] [command]
参数说明:
-u :将身份变成username 的身份
范例:
[test@testtest]$ sudo mkdir /root/testing
Password: <==输入 test 自己的密码
[root@testtest]$ sudo -u test touch test<==root 可以执行 test 这个使用者的指令,建立test 的档案!说明 :
- 如果单纯的使用 su 来变换成 root 的身份,最大的好处是可以直接下达我们惯用的指令,但是,还是会有问题的,就是如果主机是由多人共管的时候,由于所有的人都必须要知道root 的密码,如此一来,呵呵!很麻烦的啦!因为怕被入侵嘛!而且只要 root改变了密码,那么所有人都必需要通知一次!很麻烦,加上,如果管理群中的一个人不小心泄出了root 的密码,不就完蛋了??那么有没有可以不需要 root 的密码,却还是可以执行root 的工具呢?呵呵!这个时候就有 sudo 的出现了!
- sudo 的基本语法就是在 sudo 后头直接加上指令,例如上面的例子中,mkdir /root/testing 就是命令啦!那么就可以来执行 root 身份可以动作的事情!此外,由于执行root 身份的工作时,『输入的密码是使用者的密码,而不是 root 的密码,所以可以减少root 密码外流的问题!』如此 root 的密码将不会流出去了!但是 sudo 在使用的时候请小心,就是要在/etc/sudoers 里头设定该有的事项!在预设情况下,只有 root 才能使用 sudo!那有什么用!我们是一般使用者,想要使用的是 sudo 来变成 root 的身份呀!呵呵!没关系!可以使用visudo 来编辑 /etc/sudoers 这个档案即可!在 Mandrake 9.0 与 Red Hat 的Linux 版本之的预设情况中,使用『 visudo 』才能编辑 /etc/sudoers 这个档案,此外,编辑者的身份必须要root 才行!如何编辑呢?在预设的情况中,我们会希望将可以执行 root 动作的人的group 设定为 wheel ,然后:
[root@est /root]# visudo
# sudoers file.
#
# This fileMUST be edited with the 'visudo' command as root.
#
# See the sudoersman page for the details on how to write a sudoers file.
#
# Host aliasspecification
# User aliasspecification
# Cmnd aliasspecification
# Defaultsspecification
# User privilegespecification
root ALL=(ALL) ALL
test ALL=(ALL) ALL <==这一行可以加入,使 test 这个人可以使用 sudo
# Uncommentto allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL <==将这一行批注符号取消
# Same thingwithout a password
# %wheel ALL=(ALL) NOPASSWD: ALL
# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
如果如同上面的方式,将黄色字体那一行 /etc/sudoers里头将
- 『 # %wheel ALL=(ALL) ALL』
这一行的批注符号取消,如此一来,则群组为wheel 的人就可以进行 root 的身份工作!这个wheel 是系统预设的 group 呢!因此,如果您想要让这部主机里头的一般身份使用者具有sudo 的使用权限,那么您就必需将该 user 放入支持 wheel 这个群组里头!如何加入?呵呵!刚刚上面不是介绍了/etc/group 吗?赶紧去看看!那么万一我想要让『单独的个人可以使用sudo 的功能』呢?呵呵!那就直接以 visudo加上这一行
- 『test ALL=(ALL) ALL』
即可!那么 test 即可使用 sudo 的功能啰!很简单吧!但是请记得不要以vi 直接修改 sudoers 呦!会有问题!
- sudo 除了变成 root 的功能之外!嘿嘿!他还可以变成『任何人』的功能呦!举个简单的例子来说好了,我们都知道启动程序的时候最好不要使用root 来启动,因为如此一来当该程序被接管时,接管者(或者说是入侵者)将拥有root 的权限了!所以近来我们都希望不要以 root 来启动一些程序啦!会比较安全!那么我们要以root 来启动成为 test (例如常用的 nobody 这个账号)要如何作?很简单,就使用上面的第二个例子来看:
- sudo -u test touch test
root 可以改变身份成为 test 来建立档案!嘿嘿!还不需要输入密码!很棒吧!这个动作我曾经在squid 这个执行程序上面做过,这样一来,即使我的 squid 被利用了,那么该怪客只能拥有nobody 的权限,嘿嘿!该权限是很小很小的!所以可以达到保护主机的部分功能呦!
su, su -, sudo相关推荐
- 用户切换命令:su 与 sudo
SU su 切换用户 su - 用户名 是彻底 切换用户 -c 以当用户身份执行"这条命令 /etc/skel 模板文件 "!$ " 上条命令的最后参数 SUDO sud ...
- linux su、su -和sudo的区别
su 切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境. su - 切换到root用户,并转到root用户的家目录下,即改变到了root用户的环境. 这个涉及到不同用户下的 ...
- su 与 sudo 区别
在测试机安装软件,执行安装脚本提示permission denied.su切换root权限一直不生效,实际使用sudo可实现,整理之. 1. what is su & sudo? su : ...
- 【转】linux su和sudo命令的区别——百度知道
linux su和sudo命令的区别 su表示切换用户命令命令,如: 输入:su命令后回车表示切换当前的用户到root用户,或者: 输入:su - root(或者其他用户名)这里加了"-&q ...
- Linux / sudo、su、sudo su、sudo -i 使用和区别
sudo: 输入当前用户的密码,为了执行只有提升了权限才能执行的命令.本次提升权限有时间限制. su:该命令的功能是切换用户!若后面不加用户名称,则默认切换至 root 用户. 每次切换用户都会打开一 ...
- linux命令 su和sudo,解析Linux中sudo,su与su -的异同
linux系统中,由于root的权限过大,一般情况都不使用它.只有在一些特殊情况下才采用登录root执行管理任务,一般情况下临时使用root权限多采用su和sudo命令. 前言 su命令就是切换用户的 ...
- linux下su和sudo的区别 (/libtool: arm-linux-gcc command not found )
由于没有搞清楚SU和SUDO两者的区别,最近经常编译程序时出错,现在把它们的区别写下来备忘,和大家一起学习 su 和 sudo 的区别: 1.共同点:都是root用户的权限: 2.不同 ...
- su命令 sudo命令 限制root远程登录
su命令 sudo命令 限制root远程登录 su命令 日常操作中为了避免一些误操作,更加安全的管理系统,通常使用的用户身份都为普通用户,而非root.当需要执行一些管理员命令操作时,再切换成root ...
- Linux中su和sudo的用法整理
一.为什么会有su和sudo命令? 主要是因为在实际工作当中需要在Linux不同用户之间进行切换.root用户权限最高很多时候需要root用户才能执行一些关键命令.所以需要临时切换为root用户.工作 ...
- linux命令 su和sudo,Linux中sudo和su的区别
介绍:主要对su和sudo的功能,区别以及使用进行介绍. 两者之间的区别 su用于用户之间的切换: sudo用于普通用户可以使用root权限来执行指定命令: 命令介绍 1. su su简介 su用于用 ...
最新文章
- SecureCRT连接时总是提示数据库中没有找到防火墙
- Leetcode惊现马化腾每天刷题?为啥大佬都这么努力?代码你打算写到几岁?
- 【数学】【CF27E】 Number With The Given Amount Of Divisors
- Unity的camera组件
- php set get 作用_浅谈PHP拦截器之__set()与__get()的理解与使用方法
- ERP人力资源管理系统
- 教你实战Flutter Deskstop之Tinypng(熊猫图片压缩)GUI工具
- 进程间通讯的7种方式
- html 网页飘窗,jquery飘窗插件bay-window.js
- 动态规划求解金矿问题
- vite 构建vue3 项目配置文件的详情配置
- c语言存储器模式,单片机C51存储器类型及存储模式
- 《30天自制操作系统》学习笔记--第0天
- BoardCast广播组件
- 移动端web设计尺寸_手机移动端网页按钮设计尺寸及间距规范
- Nood.js C++ 模块 addon插件(二)
- npm install 报node-sass错误
- 使用scrollTo、scrollBy、Scroller实现滚动动画
- 快手与内涵段子最本质的区别
- Scrapy搜狗微信:使用cookies登录并使用打码平台自动输入验证码