sudo用法
sudo用法
时间:2017-10-12 11:48:45 天黑顺路 分类:技术博客

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 C 添 加 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 C

ADMINS中 的 用 户 可 以 使 用 sudo suC 切 换 为 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 C
 
[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 C
[sudo] password for whx:
whx is not in the sudoers file.  This incident will be reported.

本 文 出 自 “天 黑 顺 路 ” 博 客 ,请 务 必 保 留 此 出 处 http://****/12140495/1971654

随机阅读

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