- 浏览: 2141074 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (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 14117在日常系统管理工作中,需要作一些加解密的工作,通过openss ... -
Virtualbox下为CentOS增加新硬盘、Linux添加新硬盘、vsftp配置用户磁盘配额(磁盘限额)
2012-09-27 16:29 4213增加新磁盘: 1,关闭CentOS系统(如果不关闭cento ... -
加密ssl vsftp、ftp隐式加密&显式加密
2012-09-27 14:30 9307FTP over SSL (Implicit)隐式ssl与FT ... -
(转)vsftp详细配置、/etc/vsftpd/vsftpd.conf
2012-09-26 15:26 12207匿名用户权限控制: ano ... -
CentOS下vsftp设置、匿名用户&本地用户设置、PORT、PASV模式设置
2012-09-26 14:22 648811, 安装:yum install vsftp ... -
(转)sshd_config配置 详解
2012-09-25 16:05 7421转自:sshd_config配置 详解 # 1. 关于 S ... -
sftp配置
2012-09-25 09:34 20745限制sftp用户(必须是操作系统用户)的访问权限 不设置Chr ... -
ftp、sftp、scp、ssh、openssh
2012-09-24 10:11 21317FTP(File Transfer Protocol) ... -
Linux time命令、dd命令、测试硬盘读写速度、磁盘备份恢复
2012-09-12 10:08 6090time命令常用于测量一个 ... -
NFS安装配置及常见问题、/etc/exports配置文件、showmount命令
2012-09-11 09:25 930931,服务器端软件:安装nfs-utils和portmap(rp ... -
网络文件系统(Network File System,NFS)、NFS安全配置相关、NFS相关端口及防火墙设置
2012-09-10 14:35 1693网络文件系统(Network File System,NFS ... -
(转)udev、给硬盘分配固定设备名(符号链接)
2012-09-10 13:45 8170man udev - 动态设备管理 為什麼採用 udev(s ... -
linux网络配置相关命令、虚拟网络接口eth0:0
2012-09-06 10:11 32084网络接口(interface)是网络硬件设备在操作系统中的表示 ... -
linux网络配置相关文件
2012-09-05 16:35 1876网络接口(interface)是网 ... -
Linux man命令、帮助文档Section
2012-09-05 14:34 4720linux man的常用用法: man section cmd ... -
Linux安装源码包
2012-09-04 14:39 6414在linux下面安装一个源码包是最常用的,笔者在日常的管理工作 ... -
(转)如何查看Linux 硬件配置信息、dmesg命令、Linux版本
2012-08-31 14:06 2854转自:如何查看Linux 硬件配置信息 机器中所有可用网卡及 ... -
Linux常见设备及相应/dev/xxx文件名、Mount Point、挂载点、Mount命令、fstab、挂载分区
2012-08-31 11:18 11654Linux 中的设备有2种类型 ... -
VirtualBox 4.1安装CentOS6 Server版 - 问题记录、Linux Mount点
2012-08-31 09:51 75901,CentOS系统下载页面htt ... -
x86,I386,i686, x86_64, x64,amd64、Windows Linux AIX下查看CPU位数和操作系统位数、rpm包名
2012-08-29 11:12 12405a2ps-4.13b-57.2.el5.i386.rpm ...
相关推荐
三、/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...
问题假设用户名为:ali如果用户名没有超级用户权限,当输入 sudo + 命令 时, 系统提示: 代码如下:ali is not in the sudoers file. This incident will be reported.解决1. 进入超级用户模式。即输入”su”,系统...
sudo默认配置文件是**/etc/sudoers** ,一般使用Linux指定编辑工具visudo ,此工具的好处是可以进行错误检查。在添加规则不符合语法规则时,保存退出时会提示给我们错误信息;配置好后,可以用切换到您授权的普通...
1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限 2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认 3,若密码输入成功,则开始执行sudo后续的命令 4,root...
在 Linux 中利用新发现的 sudo 漏洞可以使某些...例如,一条规则允许用户以除了 root 用户之外的任何用户身份来编辑文件,这实际上将允许该用户也以 root 用户身份来编辑文件。在这种情况下,该漏洞可能会导致非常严
代码如下:chmod +w /etc/sudoers vim /etc/sudoers 添加一行 代码如下:username ALL=(ALL) ALL其中username是你的用户名,保存 更改sudoers文件权限 代码如下:chmod 0440 /etc/sudoers 退出root ok可以了,试试...
今天在这里讨论Linux系统中一个非常滑稽的系统配置失误,就是sudo,为什么说是滑稽的配置呢,就是因为如果配置不当的话,普通用户非常容易就可以提权到root用户,而且没有一点技术含量,系统管理员自己以为已经做好...
Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 使用权限:在 /etc/sudoers 中有出现的使用者。 语法sudo -V sudo -h sudo -l sudo -v sudo -k sudo -s sudo...
简单的说,sudo 是一种权限管理机制,管理...默认的安全策略记录在 /etc/sudoers 文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo 命令时要求用户输入自己账号的密码。如果验证失败,su
另外,sudo也允许用户作为root(或者其他用户身份)执行命令,具体由安全策略指定: 读取并解析/etc/sudoers,查看调用用户及其权限。 而后提示该调用用户输入密码(通常为该用户的密码,也可为目标
部分内容如下: su test 更改用户 su - 进入root,且使用root的环境变量 sudo 以其它身份来执行指令 visudo 编辑/etc/sudoers 加入一行『 test ALL=(ALL) ALL 』 %wheel ALL = (ALL) ALL 系统里所有wheel...
将用户添加到sudoers sudo - nano /etc/sudoers and insert user ALL=(ALL:ALL) ALL 安装git apt install git 编辑“ /etc/apt/sources.list”文件 deb ...
前言 在Linux和其他类Unix操作系统中,只有root用户可以运行所有命令并在系统上执行某些关键操作,如安装和更新,删除包,创建用户和...sudo 命令与安全策略配合使用,默认安全策略是 sudoers,可以通过文件 /etc/sud
su usr100 #切换到usr100用户 sudo ls #没有报错,说明添加成功 exit #回到root 5. 改Hosts vim /etc/hosts在文件后拷贝追加 192.168.1.100 hadoop100 192.168.1.101 hadoop101 192.168.1.102 hadoop102 192...
另外,sudo也允许用户作为root(或者其他用户身份)执行命令,具体由安全策略指定:读取并解析/etc/sudoers,查看调用用户及其权限。而后提示该调用用户输入密码(通常为该用户的密码,也可为目标用户的密码,或者以NOP
sudo 是一种权限管理机制...默认的安全策略记录在 /etc/sudoers 文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo 命令时要求用户输入自己账号的密码。如果验证失败,sudo 命令将会退出。
Telebot和OpenStack 用Python编写的机器人(进行中) Môhình: Một服务器càidevstack ... echo " stack ALL=(ALL) NOPASSWD: ALL " | sudo tee /etc/sudoers.d/stack sudo su - stack 克隆devstack到git gi
通常,要授予sudo访问权限,请将用户添加到sudoers文件中定义的sudo组。在Debian,Ubuntu及其衍生产品上,sudo组的成员在基于RedHat的发行版(如CentOS和Fedora)上获得sudo权限,sudo组的名称是wheel。 在运行sudo...