在linux中,sudo 使一般使用者不需要知道超级使用者的密码即可获得权限。
首先,超级使用者将一般使用者登记在特殊的档案中(通常是/etc/sudoers),即完成对该使用者的授权(此时该使用者称为“sudoer”);
在一般使用者需要取得特殊权限时,其可在命令前加上“sudo”,此时 sudo 将会询问该使用者自己的密码(以确认终端机前的是该使用者本人),回答后系统即会将该命令的进程以超级使用者的权限执行。
不用root用户进行ssh登录,登录之后使用su切换用户。
su 的问题
1,输入密码
2,完全拥有相关 su 的权限
使用sudo命令:
1,不输入别人的密码
2,需要授权
[user1@jbxue ~]$ /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:30:C1:B6
inet addr:192.168.126.128 Bcast:192.168.126.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe30:c1b6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:226 errors:0 dropped:0 overruns:0 frame:0
TX packets:100 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25147 (24.5 KiB) TX bytes:19250 (18.7 KiB)
Interrupt:67 Base address:0x2024
[user1@jbxue ~]$ /sbin/ifconfig eth0:1 192.168.1.1
SIOCSIFADDR: Permission denied
SIOCSIFFLAGS: Permission denied
[root@jbxue ~]# vim /etc/sudoers
user1 ALL=/sbin/ifconfig
[user1@jbxue ~]$ sudo /sbin/ifconfig eth0:1 192.168.1.1
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for user1:
[user1@jbxue ~]$ /sbin/ifconfig eth0:1
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:30:C1:B6
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:67 Base address:0x2024
visudo 可以检查语法
vim /etc/sudoers
1,user2 用户名字
2,ALL=(root) 主机=(转换成什么身份)
3,NOPASSWD:/sbin/fdisk, PASSWD:/sbin/mkfs.ext3
4,不要口令:命令,要口令:命令
工作中: user1 ALL=(root) NOPASSWD:ALL
首先,需要配置一些alias,有利于下面配置权限的操作。
Alias主要分成4种
Host_Alias
Cmnd_Alias
User_Alias
Runas_Alias
1) 配置Host_Alias:就是主机的列表
2) 配置Cmnd_Alias:就是允许执行的命令的列表,命令前加上!表示不能执行此命令.
命令一定要使用绝对路径,避免其他目录的同名命令被执行,造成安全隐患 ,因此使用的时候也是使用绝对路径!
3) 配置User_Alias:就是具有sudo权限的用户的列表
4) 配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表
5) 配置权限
配置权限的格式如下:
如果不需要密码验证的话,则按照这样的格式来配置
配置格式如下: