22 37 49 63 72 92 101 104 113 120 121 177 195 215 225 244 262 284 324 444 472 534 542 548 556 568 609 632 643 656 662 665 675 688 691 715 751 773 784 826 889 911 936 953 985 993 1010 1040 1047 1052 1087 1135 1143 1219 1229 1231 1239 1250 1257 1273 1328 1379 1418 1421 1426 1496 1500 1509 1524 1539 1540 1548 1551 1569 1577 1592 1594 1621 1629 1655 1691 1715 1781 1784 1785 1791 1822 1864 1881 1886 1890 1916 1922 1952 1955 2007 2046 2051 2052 2056 2082 2095 2135 2138 2164 2167 2174 2185 2193 2196 2202 2216 2217 2218 2224 2237 2267 2270 2303 2306 2309 2310 2354 2362 2411 2415 2417 2428 2450 2458 2501 2509 2530 2531 2536 2548 2567 2597 2629 2672 2679 2684 2699 2701 2702 2708 2717 2730 2736 2801 2808 2882 2886 2895 2901 2952 2966 2988 2994 3034 3044 3055 3084 3085 3099 3122 3128 3149 3152 3203 3236 3287 3290 3292 3348 3468 3511 3513 3515 3522 3573 3577 3598 3606 3634 3642 3661 3673 3777 3794 3823 3829 3849 3879 3882 3885 3886 3900 3918 3919 3945 3977 3981 4004 4037 4049 4051 4074 4083 4084 4170 4171 4178 4184 4194 4234 4241 4251 4254 4311 4368 4431 4435 4489 4495 4536 4545 4563 4603 4622 4648 4656 4685 4698 4699 4706 4718 4725 4733 4752 4789 4793 4808 4860 4882 4887 4938 4951 4994 5019 5050 5096 5108 5110 5115 5119 5124 5163 5235 5242 5291 5327 5336 5367 5383 5392 5402 5435 5459 5464 5527 5529 5576 5582 5595 5619 5627 5712 5729 5758 5761 5775 5822 5833 5849 5863 5879 5896 5899 5909 5970 6047 6089 6092 6097 6101 6107 6111 6154 6211  sudo用法
sudo用法
时间:2017-10-12 11:48 天黑顺路 分类:技术博客

sudo [-b] [-u 新用户名]  单条命令

sudo [-b] [-u 新用户名]sh -c “com1;com2;…”

例子:

[root@localhost ~]# sudo -u xx touch/tmp/testfile   
[root@localhost ~]# ll /tmp/testfile
-rw-r--r--. 1 xx xx 0 Oct 11 20:39/tmp/testfile
[root@localhost ~]# sudo -u xx sh -c"cd /tmp;mkdir xx;cd xx;echo 'just test'>testfile"
[root@localhost ~]# cat /tmp/xx/testfile
just test

使用visudo命令,在/etc/sudoers中添加账号,使其能执行全部或者部分的root命令。

root  ALL=(ALL)  ALL 

xx   ALL=(ALL)  ALL – 添加xx用户使其能够执行全部的root命令

例子:

## Allow root to run any commands anywhere
root   ALL=(ALL)       ALL
xx     ALL=(ALL)       ALL
 
[xx@localhost whx]$ sudo tail -n 1/etc/shadow
xxx:$1$iPKqo9sC$JWaNXYN7OWVefJ.HqaReA0:17448:0:99999:7:::

这一行四个参数的意义:

用户账号:可以使用sudo的账号,默认为root用户。

登陆者的来源主机名:这个账号由哪台主机连接到本机,默认值root可以来自于任何一台网络主机。

可以切换的身份:切换为什么身份来执行命令,默认root可以切换为任何用户。

可执行的命令:命令必须使用绝对路径编写,默认root可以执行任何命令。

ALL代表任何身份,任何命令,任何主机。

 

Visudo添加用户

添加xx用户使其可以使用sudo命令,xx用户可以来自于任何主机,但是只能切换为root用户,只能执行passwd命令。

xx ALL=(root)   /usr/bin/passwd

 

添加xx用户使其可以使用sudo命令,xx用户可以来自于任何主机,但是只能切换为root用户,能够使用passwd修改除了root用户以外其他用户的密码。

xx ALL=(root)   !/usr/bin/passwd, !/usr/bin/passwdroot,/usr/bin/passwd [A-Za-z]*

例子:

## Allow root to run any commands anywhere
root   ALL=(ALL)       ALL
xx     ALL=(root)     !/usr/bin/passwd,!/usr/bin/passwd root,/usr/bin/passwd [A-Za-z]*
 
[xx@localhost ~]$ sudo passwd whx
[sudo] password for xx:
Changing password for user whx.
New password:
BAD PASSWORD: it does not contain enoughDIFFERENT characters
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updatedsuccessfully.
[xx@localhost ~]$ sudo passwd
[sudo] password for xx:
Sorry, user xx is not allowed to execute'/usr/bin/passwd' as root on localhost.localdomain.
[xx@localhost ~]$ sudo cat /etc/shadow
Sorry, user xx is not allowed to execute'/bin/cat /etc/shadow' as root on localhost.localdomain.

添加用户组,使这个用户组的用户可以执行sudo命令

使用visudo进入/etc/sudoers

找到#%wheel  ALL=(ALL)  ALL 这一行,在下一行添加

%group_name ALL=(ALL)  ALL

保存退出编辑,

然后使用usermod -a -G group_name user_name 将想要授权sudo的用户添加到该用户组。

 

例子:

## Allows people in group wheel to run allcommands
# %wheel        ALL=(ALL)       ALL
%xx  ALL=(ALL)  ALL
 
[root@localhost whx]# usermod -a -G xx whx
[root@localhost whx]# su whx
[whx@localhost ~]$ sudo tail -n 1/etc/shadow
[sudo] password for whx:
xxx:$1$iPKqo9sC$JWaNXYN7OWVefJ.HqaReA0:17448:0:99999:7:::

 

visudo设置无密码

%group_name ALL=(ALL)   NOPASSWD: ALL

 

例子:

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
%xx  ALL=(ALL)  NOPASSWD: ALL
 
[root@localhost whx]# su whx
[whx@localhost ~]$ sudo tail -n 1/etc/shadow
xxx:$1$iPKqo9sC$JWaNXYN7OWVefJ.HqaReA0:17448:0:99999:7:::

visudo通过别名添加用户

User_Alias 建立用户别名,别名必须是大写,

Cmnd_Alias 建立新的命令别名,别名必须是大写,

Host_Alias  建立来源主机别名,别名必须是大写。

 

User_Alias ADMPW = user_name1,user_name2,user_name3,…

Cmnd_Alias ADMPWCOM = /usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd,!/usr/bin/passwdroot

 

ADMPW ALL=(root)  ADMPWCOM

 

例子:

# User_Alias ADMINS =jsmith, mikem
User_AliasTEST = xx,xxx
# Cmnd_Alias DRIVERS = /sbin/modprobe
Cmnd_Alias TEST =!/usr/bin/passwd,!/usr/bin/passwd root,/usr/bin/passwd [A-Za-z]*
## Allow root to run any commands anywhere
root   ALL=(ALL)       ALL
TEST ALL=(ALL)   TEST
 
[root@localhost whx]# su xx
[xx@localhost whx]$ cd ~
[xx@localhost ~]$ passwd whx
passwd: Only root can specify a user name.
[xx@localhost ~]$ sudo passwd whx
[sudo] password for xx:
Changing password for user whx.
New password:
BAD PASSWORD: it does not contain enoughDIFFERENT characters
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updatedsuccessfully.
[xx@localhost whx]$ su xxx
Password:
[xxx@localhost whx]$ sudo passwd xx
[sudo] password for xxx:
Changing password for user xx.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is a palindrome
Retype new password:
passwd: all authentication tokens updatedsuccessfully.


sudo 与su 配合使用,切换为root用户不只需要输入自己的密码,而不需要输入root密码。

visudo

User_Alias ADMINS = user_name1,user_name2…

ADMINS  ALL=(root)   /bin/su –

ADMINS中的用户可以使用sudo su– 切换为root用户时,只需要输入自己的密码。


例子:

# User_Alias ADMINS = jsmith, mikem
User_Alias TEST = xx,xxx
 
## Allow root to run any commands anywhere
root   ALL=(ALL)       ALL
TEST  ALL=(root)   /bin/su –
 
[xx@localhost whx]$ sudo su -
[sudo] password for xx:
[root@localhost ~]#
[xxx@localhost root]$ sudo su -
[sudo] password for xxx:
[root@localhost ~]#
[root@localhost ~]# su whx
[whx@localhost root]$ sudo su –
[sudo] password for whx:
whx is not in the sudoers file.  This incident will be reported.
随机阅读

Copyright © 2017 英语文化交流 All Rights Reserved.