- 浏览: 2160699 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (401)
- Agile (16)
- Apache Commons (3)
- Architecture (8)
- DB.MongoDB (5)
- DB.Mysql (3)
- DB.Oracle (34)
- DirectoryService (1)
- DotNet (1)
- English (3)
- Groovy (0)
- Html (28)
- Java (67)
- Java.Aixs (7)
- Java.Cache (2)
- Java.jPBM (1)
- Java.Resin (6)
- Java.Spring (4)
- Java.Struts2 (5)
- Java.Tomcat (16)
- Javascript (45)
- Javascript.Google Map (2)
- Javascript.Jquery (8)
- Life (15)
- Maven&Ant (4)
- Network (5)
- OS.Linux (45)
- OS.Windows (10)
- OS.Windows.Office (1)
- PlayFramework (15)
- Python (28)
- Reading notes (11)
- Security (13)
- Server.Apache (3)
- Server.Nginx (7)
- Test (6)
- Tool (15)
- Work.Solution (15)
- Other (20)
- SSO&CAS&Identity (13)
最新评论
-
hutuxiansheng123:
防火墙、Iptables、netfilter/iptables、NAT 概述 -
dacoolbaby:
非常棒的正则表达式,非常适用。万分感谢。
用python分析nginx的access日志 -
loot00:
您好! 我也遇到了相同的错误信息。我是用f_link_lob ...
LOB variable no longer valid after subsequent fetch -
feihangchen:
@OnApplicationStop public clas ...
Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务 -
洞渊龙王:
谢谢了
www.w3.org被qiang导致logback报错:Connect reset
Linux系统中,有时候普通用户有些事情是不能做的,除非是root用户才能做到。这时就需要用su命令临时切换到root身份来做事了。
su:substitute['sʌbstɪtjuːt]代替 user
su 的语法为:
su [OPTION选项参数] [用户]
-, -l, --login 登录并改变到所切换的用户环境;
-c, --commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境;
用su命令切换用户后,可以用 exit 命令或快捷键[Ctrl+D]可返回原登录用户。
例子:
su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,SHELL定义等;
su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境;
用su是可以切换用户身份,如果每个普通用户都能切换到root身份,如果某个用户不小心泄漏了root的密码,那岂不是系统非常的不安全?没有错,为了改进这个问题,产生了sudo这个命令。使用sudo执行一个root才能执行的命令是可以办到的,但是需要输入密码,这个密码并不是root的密码而是用户自己的密码。默认只有root用户能使用sudo命令,普通用户想要使用sudo,是需要root预先设定的,即,使用visudo命令去编辑相关的配置文件/etc/sudoers。如果没有visudo这个命令,请使用 "yum install -y sudo" 安装。
默认root能够sudo是因为这个文件中有一行” root ALL=(ALL) ALL”
sudo 的适用条件:
由于su对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su来切换到超级用户来管理系统,也不能明 确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限, 并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。
通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su;
sudo 执行命令的流程:是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;
从编写 sudo 配置文件/etc/sudoers开始
sudo的配置文件是/etc/sudoers ,我们可以用他的专用编辑工具visodu ,此工具的好处是在添加规则不太准确时,保存退出时会提示给我们错误信息;配置好后,可以用切换到您授权的用户下,通过sudo -l 来查看哪些命令是可以执行或禁止的;
/etc/sudoers 文件中每行算一个规则,前面带有#号可以当作是说明的内容,并不执行;如果规则很长,一行列不下时,可以用\号来续行,这样看来一个规则也可以拥有多个行;
/etc/sudoers 的规则可分为两类;一类是别名定义,另一类是授权规则;别名定义并不是必须的,但授权规则是必须的;
sudo授权规则(sudoers配置):
授权用户 主机=命令动作
这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用( )号括起来,如果不需要密码直接运行命令的,应该加NOPASSWD:参数,但这些可以省略;举例说明;
sudoers的缺省配置:
1. 最简单的配置,让普通用户support具有root的所有权限
执行visudo之后,可以看见缺省只有一条配置:
root ALL=(ALL) ALL
那么你就在下边再加一条配置:
support ALL=(ALL) ALL
这样,普通用户support就能够执行root权限的所有命令
以support用户登录之后,执行:
sudo su -
然后输入support用户自己的密码,就可以切换成root用户了
2. 让普通用户support只能在某几台服务器上,执行root能执行的某些命令
首先需要配置一些Alias,这样在下面配置权限时,会方便一些,不用写大段大段的配置。Alias主要分成4种
Host_Alias
Cmnd_Alias
User_Alias
Runas_Alias
1) 配置Host_Alias:就是主机的列表
Host_Alias HOST_FLAG = hostname1, hostname2, hostname3
2) 配置Cmnd_Alias:就是允许执行的命令的列表,命令前加上!表示不能执行此命令.
命令一定要使用绝对路径,避免其他目录的同名命令被执行,造成安全隐患 ,因此使用的时候也是使用绝对路径!
Cmnd_Alias COMMAND_FLAG = command1, command2, command3 ,!command4
3) 配置User_Alias:就是具有sudo权限的用户的列表
User_Alias USER_FLAG = user1, user2, user3
4) 配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
5) 配置权限
配置权限的格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密码验证的话,则按照这样的格式来配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG
配置示例:
参考:su sudo sudoers
su:substitute['sʌbstɪtjuːt]代替 user
su 的语法为:
su [OPTION选项参数] [用户]
-, -l, --login 登录并改变到所切换的用户环境;
-c, --commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境;
用su命令切换用户后,可以用 exit 命令或快捷键[Ctrl+D]可返回原登录用户。
例子:
su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,SHELL定义等;
su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境;
用su是可以切换用户身份,如果每个普通用户都能切换到root身份,如果某个用户不小心泄漏了root的密码,那岂不是系统非常的不安全?没有错,为了改进这个问题,产生了sudo这个命令。使用sudo执行一个root才能执行的命令是可以办到的,但是需要输入密码,这个密码并不是root的密码而是用户自己的密码。默认只有root用户能使用sudo命令,普通用户想要使用sudo,是需要root预先设定的,即,使用visudo命令去编辑相关的配置文件/etc/sudoers。如果没有visudo这个命令,请使用 "yum install -y sudo" 安装。
默认root能够sudo是因为这个文件中有一行” root ALL=(ALL) ALL”
sudo 的适用条件:
由于su对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su来切换到超级用户来管理系统,也不能明 确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限, 并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。
通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su;
sudo 执行命令的流程:是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;
从编写 sudo 配置文件/etc/sudoers开始
sudo的配置文件是/etc/sudoers ,我们可以用他的专用编辑工具visodu ,此工具的好处是在添加规则不太准确时,保存退出时会提示给我们错误信息;配置好后,可以用切换到您授权的用户下,通过sudo -l 来查看哪些命令是可以执行或禁止的;
/etc/sudoers 文件中每行算一个规则,前面带有#号可以当作是说明的内容,并不执行;如果规则很长,一行列不下时,可以用\号来续行,这样看来一个规则也可以拥有多个行;
/etc/sudoers 的规则可分为两类;一类是别名定义,另一类是授权规则;别名定义并不是必须的,但授权规则是必须的;
sudo授权规则(sudoers配置):
授权用户 主机=命令动作
这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用( )号括起来,如果不需要密码直接运行命令的,应该加NOPASSWD:参数,但这些可以省略;举例说明;
sudoers的缺省配置:
############################################################# # sudoers file. # # This file MUST be edited with the 'visudo' command as root. # # See the sudoers man page for the details on how to write a sudoers file. # # Host alias specification # User alias specification # Cmnd alias specification # Defaults specification # User privilege specification root ALL=(ALL) ALL # Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL # Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL # Samples # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom # %users localhost=/sbin/shutdown -h now ##################################################################
1. 最简单的配置,让普通用户support具有root的所有权限
执行visudo之后,可以看见缺省只有一条配置:
root ALL=(ALL) ALL
那么你就在下边再加一条配置:
support ALL=(ALL) ALL
这样,普通用户support就能够执行root权限的所有命令
以support用户登录之后,执行:
sudo su -
然后输入support用户自己的密码,就可以切换成root用户了
2. 让普通用户support只能在某几台服务器上,执行root能执行的某些命令
首先需要配置一些Alias,这样在下面配置权限时,会方便一些,不用写大段大段的配置。Alias主要分成4种
Host_Alias
Cmnd_Alias
User_Alias
Runas_Alias
1) 配置Host_Alias:就是主机的列表
Host_Alias HOST_FLAG = hostname1, hostname2, hostname3
2) 配置Cmnd_Alias:就是允许执行的命令的列表,命令前加上!表示不能执行此命令.
命令一定要使用绝对路径,避免其他目录的同名命令被执行,造成安全隐患 ,因此使用的时候也是使用绝对路径!
Cmnd_Alias COMMAND_FLAG = command1, command2, command3 ,!command4
3) 配置User_Alias:就是具有sudo权限的用户的列表
User_Alias USER_FLAG = user1, user2, user3
4) 配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
5) 配置权限
配置权限的格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密码验证的话,则按照这样的格式来配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG
配置示例:
############################################################################ # sudoers file. # # This file MUST be edited with the 'visudo' command as root. # # See the sudoers man page for the details on how to write a sudoers file. # # Host alias specification Host_Alias EPG = 192.168.1.1, 192.168.1.2 # User alias specification # Cmnd alias specification Cmnd_Alias SQUID = /opt/vtbin/squid_refresh, !/sbin/service, /bin/rm Cmnd_Alias ADMPW = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd, !/usr/bin/passwd root # Defaults specification # User privilege specification root ALL=(ALL) ALL support EPG=(ALL) NOPASSWD: SQUID support EPG=(ALL) NOPASSWD: ADMPW # Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL # Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL # Samples # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom # %users localhost=/sbin/shutdown -h now ###############################################################
参考:su sudo sudoers
发表评论
-
openssl 非对称加密DSA,RSA区别与使用介绍(转)
2012-10-26 16:42 14199在日常系统管理工作中,需要作一些加解密的工作,通过openss ... -
Virtualbox下为CentOS增加新硬盘、Linux添加新硬盘、vsftp配置用户磁盘配额(磁盘限额)
2012-09-27 16:29 4267增加新磁盘: 1,关闭CentOS系统(如果不关闭cento ... -
加密ssl vsftp、ftp隐式加密&显式加密
2012-09-27 14:30 9434FTP over SSL (Implicit)隐式ssl与FT ... -
(转)vsftp详细配置、/etc/vsftpd/vsftpd.conf
2012-09-26 15:26 12271匿名用户权限控制: ano ... -
CentOS下vsftp设置、匿名用户&本地用户设置、PORT、PASV模式设置
2012-09-26 14:22 650041, 安装:yum install vsftp ... -
(转)sshd_config配置 详解
2012-09-25 16:05 7471转自:sshd_config配置 详解 # 1. 关于 S ... -
sftp配置
2012-09-25 09:34 20811限制sftp用户(必须是操作系统用户)的访问权限 不设置Chr ... -
ftp、sftp、scp、ssh、openssh
2012-09-24 10:11 21477FTP(File Transfer Protocol) ... -
Linux time命令、dd命令、测试硬盘读写速度、磁盘备份恢复
2012-09-12 10:08 6176time命令常用于测量一个 ... -
NFS安装配置及常见问题、/etc/exports配置文件、showmount命令
2012-09-11 09:25 932561,服务器端软件:安装nfs-utils和portmap(rp ... -
网络文件系统(Network File System,NFS)、NFS安全配置相关、NFS相关端口及防火墙设置
2012-09-10 14:35 1741网络文件系统(Network File System,NFS ... -
(转)udev、给硬盘分配固定设备名(符号链接)
2012-09-10 13:45 8270man udev - 动态设备管理 為什麼採用 udev(s ... -
linux网络配置相关命令、虚拟网络接口eth0:0
2012-09-06 10:11 32165网络接口(interface)是网络硬件设备在操作系统中的表示 ... -
linux网络配置相关文件
2012-09-05 16:35 1936网络接口(interface)是网 ... -
Linux man命令、帮助文档Section
2012-09-05 14:34 4768linux man的常用用法: man section cmd ... -
Linux安装源码包
2012-09-04 14:39 6471在linux下面安装一个源码包是最常用的,笔者在日常的管理工作 ... -
(转)如何查看Linux 硬件配置信息、dmesg命令、Linux版本
2012-08-31 14:06 2905转自:如何查看Linux 硬件配置信息 机器中所有可用网卡及 ... -
Linux常见设备及相应/dev/xxx文件名、Mount Point、挂载点、Mount命令、fstab、挂载分区
2012-08-31 11:18 11707Linux 中的设备有2种类型 ... -
VirtualBox 4.1安装CentOS6 Server版 - 问题记录、Linux Mount点
2012-08-31 09:51 76371,CentOS系统下载页面htt ... -
x86,I386,i686, x86_64, x64,amd64、Windows Linux AIX下查看CPU位数和操作系统位数、rpm包名
2012-08-29 11:12 12468a2ps-4.13b-57.2.el5.i386.rpm ...
相关推荐
SU 命令是Linux系统中的一种命令,用于切换用户身份。SU 命令可以将当前用户身份切换到 Root 用户或其他用户。SU 命令的基本语法为:su [-] [username]。 * SU 命令的作用: + 切换用户身份 + 获得 Root 权限 * ...
三、/etc/sudoers文件解释 [root@test ~]# cat /etc/sudoers ## Sudoers allows particular users to run various commands as ## the root user, without needing the root password. ##该文件允许特定用户像root...
要使用`visudo`配置`sudo`权限,首先需要以root身份登录或使用`su`或`sudo -i`切换到root用户。然后,运行`visudo`命令,这将打开`/etc/sudoers`文件进行编辑。在这个文件中,可以添加或修改规则来指定哪些用户或...
3. **su命令失败**:使用su命令切换用户时,如果收到“Cannot set process environment”、“killed”或“Authentication is denied”的错误,检查用户权限、环境变量设置和认证机制。确保su命令的执行权限正确,并...
总结一下,`sudo` 提权和普通用户免密切换到root是通过编辑`/etc/sudoers`文件实现的,这包括为用户添加相应的权限行,如`shi ALL=(ALL) NOPASSWD: ALL`。在使用这种权限时,应考虑到安全性,只授予必要的权限,并...
在Linux系统中,`su` 和 `sudo` 是两个非常重要的命令行工具,它们与系统的权限管理和用户身份切换紧密相关。这两个工具对于系统的管理和维护至关重要,尤其在Kali Linux这样的渗透测试和安全研究环境中更是不可或缺...
`su`是"switch user"的缩写,它允许用户切换到其他用户身份,包括root。通过输入`su -`或者`sudo -i`,普通用户可以获取root权限进行系统管理。然而,这种机制也带来了安全隐患,因为一旦普通用户的账户被攻击者控制...
首先,`su`命令用于切换用户身份,特别是从普通用户切换到root用户,root用户具有系统最高权限,可以执行任何操作。在任务中,你需要先用`su`命令切换到root,然后创建新用户。例如,创建名为ztg、ztg1和ztguang的三...
`su`命令,全称“switch user”,允许用户切换到另一个用户的身份,特别是切换到具有最高权限的`root`用户。默认情况下,任何知道`root`用户密码的用户都可以执行`su - root`切换到`root`。然而,为了提高系统的安全...
在Linux系统中,有两种主要的命令用于...`su`主要用于完全切换用户身份,而`sudo`则允许临时提升权限执行特定命令,同时提供了更细粒度的安全控制。了解和熟练使用这两个命令对于Linux系统的日常管理和维护至关重要。
问题假设用户名为:ali如果用户名没有超级用户权限,当输入 sudo + 命令 时, 系统提示: 代码如下:ali is not in the sudoers file. This incident will be reported.解决1. 进入超级用户模式。即输入”su”,系统...
总结来说,`su`命令是Linux系统中用于切换用户身份的重要工具,它涉及到权限管理、系统安全和日常维护等多个方面。理解并熟练掌握`su`命令的使用,对于提升Linux操作技能和系统管理能力具有很大的帮助。这个11页的...
`su`命令,全称为“switch user”,它的主要功能是切换到另一个用户的身份。当你运行`su`命令后,你需要提供目标用户的密码,一旦密码验证成功,你就会获得该用户的shell环境。例如,要切换到root用户,你可以输入`...
su(switch user)命令允许用户从当前登录的身份切换到另一个用户身份。它主要适用于需要临时获取其他用户权限的情况,尤其是当需要以root权限执行某些操作时。 - **基本用法:** `su [选项] [用户]` - 不带任何...
因此,建议大家切换用户的时候,尽量使用 su - linux,否则可能发现某些命令执行不了。 扩展阅读二:su 和 sudo 的区别 由于 su 对切换到超级权限用户 root 后,权限的无限制性,所以 su 并不能担任多个管理员所...
在Linux中,我们可以使用`su`命令来切换用户身份,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户。 su命令 `su`命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他...
在Linux系统中,`sudo`命令是一个非常重要的工具,它允许非特权用户以管理员或root权限执行特定的命令。当你尝试使用`sudo`时遇到"xxx is not in the sudoers file. This incident will be reported."的错误信息,这...
`sudo`的主要特点是,它通常配置在`/etc/sudoers`文件中,管理员可以定义哪些用户可以执行哪些特定命令。使用`sudo`时,用户通常需要输入自己的密码,而不是root的密码。此外,`sudo`还提供了日志记录功能,便于跟踪...
首先,su命令是切换用户身份的工具,允许用户从一个账户切换到另一个账户,尤其是从普通用户切换到root用户。例如,当普通用户test试图执行需要管理员权限的任务,如`useradd`,su可以帮助他们临时获得root权限。su...
在Linux和Unix-like操作系统中,`...`su`提供了直接切换用户并获得其全部权限的能力,而`sudo`则提供了一种更安全、更可控的方式来临时提升权限。根据具体需求和环境,选择合适的命令是确保系统安全和有效管理的关键。