Shell命令-用户用户组管理之visudo、sudo

文件及内容处理 - visudo、sudo

1. visudo:编辑/etc/sudoers文件的专属命令

visudo命令的功能说明

visudo命令专门用来编辑/etc/sudoers这个文件的。

visudo命令的语法格式

visudo [-chqsV] [-f sudoers]

visudo命令的常用参数说明:

visudo 参数不多,表1为 visudo 命令的参数及说明:

表1: visudo 命令的参数及说明

参数选项解释说明
-c手动执行语法检查

visudo命令的实践操作

范例1: 执行 visudo 对普通用户oldboy和oldgirl授权

[root@oldboyedu  ~]# visudo #作用就是相当于 vim /etc/sudoers 一样
100 root    ALL=(ALL)       ALL
101 oldboy  ALL=(ALL)      NOPASSWD: ALL  #在100行左右添加     
102 oldgirl ALL=(ALL)      NOPASSWD: /usr/bin/useradd,/usr/bin/userdel #添加的内容

上面的格式简单介绍

待授权的用户或组机器=(授权角色)可以执行的命令
userMACHINE=COMMANDS
oldboyALL=(ALL)ALL

提示:每次执行visudo并修改内容后,需要语法检查:

[root@oldboyedu  ~]# visudo -c
/etc/sudoers: parsed OK

2. sudo:以另外一个用户身份(默认root用户)执行事先在sudoers文件允许的命令

sudo命令的功能说明

sudo 命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。使用权限:在 /etc/sudoers 中有出现的使用者。

sudo命令的语法格式

sudo -l [-AknS] [-a type] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
sudo -v [-AknS] [-a type] [-g group] [-h host] [-p prompt] [-u user]

sudo命令的常用参数说明:

sudo 参数不多,表1为 sudo 命令的参数及说明:

表1: sudo 命令的参数及说明

参数选项解释说明
-V显示版本编号
-h会显示版本编号及指令的使用方式说明
-l显示出自己(执行 sudo 的使用者)的权限
-v因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b将要执行的指令放在背景执行
-p prompt可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
-s执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
command要以系统管理者身份(或以 -u 更改为其他人)执行的指令

sudo命令的实践操作

范例1: 查看用户被visudo 授权后拥有的权限

[root@db01 ~]# whoami #查看当前用户
root
[root@db01 ~]# su - oldboy #切换 oldboy 用户
上一次登录:三 6月 12 10:13:34 CST 2019从 10.0.0.1pts/0 上
[oldboy@db01 ~]$ whoami #用户已改变
oldboy
[oldboy@db01 ~]$ ls /root #查看 root 用户家目录,权限不够
ls: 无法打开目录/root: 权限不够
[oldboy@db01 ~]$ sudo ls /root #加 sudo 就 ok 了,是因为前面已经配置了 visudo
test

范例2: 查看oldboy 用户授权的结果情况:

[oldboy@db01 ~]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR
    LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT
    LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET
    XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

用户 oldboy 可以在 db01 上运行以下命令:
    (ALL) NOPASSWD: ALL #ALL 代表所有,相当于与 root 相同权限了

今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津

转载于:https://www.cnblogs.com/wjcLinux/p/11076686.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值