Linux-权限管理(sudo权限)

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/76595348

简介

sudo命令允许系统管理员让普通用户执行一些或者全部的root命令。不需要暴露root密码,就可以让普通用户执行管理员的命令

修改sudo权限

  • visudo

visudo 会自动打开etc下的sudo文件。在文件中加上允许普通用户执行的命令即可,命令格式如下:
- 用户名 ALL=(root) 命令 参数

括号中的内容表示在使用sudo时,以括号中的身份来执行命令,之后的命令可以加参数,表示指定命令的指定操作。命令最好是以绝对路径的方式来写。

例如:

twilight ALL=(root) /usr/sbin/shutdown -r

twilight用户就可以执行shutdown -r命令,不过仅仅是-r。其他参数还是不允许的

sudo shutdown -r

当我尝试不使用绝对路径,保存退出时会报错:

twilight ALL=(root) useradd

报错信息:

[root@localhost ~]# visudo
visudo:>>> /etc/sudoers:syntax error 在行 94 附近<<<
现在做什么?
选项有:
  重新编辑 sudoers 文件(e)
  退出,不保存对 sudoers 文件的更改(x)
  退出并将更改保存到 sudoers 文件(危险!)(Q)

现在做什么?x

sudo -l

可以使用 sudo -l查看当前普通用户能使用 sudo 执行的权限:

[twilight@localhost root]$ sudo -l
[sudo] password for twilight: 
匹配此主机上 twilight 的默认条目:
    !visiblepw, always_set_home, 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

用户 twilight 可以在该主机上运行以下命令:
    (root) /usr/sbin/useradd

Centos在执行sudo命令时可以不指定绝对路径:

[twilight@localhost root]$ sudo useradd tom

查看是否生效:

[twilight@localhost root]$ cat /etc/passwd | grep tom 
tom:x:1004:1006::/home/tom:/bin/bash

安全性

如果用sudo给普通用户赋予passwd命令的权限,那么普通用户就可以用sudo命令来修改root密码,这是十分不安全的。不过,在赋予权限时可以加上一些限制,将普通用户可用的命令限制在合理范围内。
- 可以使用正则表达式,不需要加引号
- 使用 ! 取反,表示不允许执行这条命令

例如以下权限。twilight用户只能更改普通用户的密码:

twilight ALL=/usr/bin/passwd [a-zA-Z]*, !/usr/bin/passwd root, !/usr/bin/passwd ""

此时查看twilight的sudo权限:

[root@localhost ~]# su twilight
[twilight@localhost root]$ sudo -l
匹配此主机上 twilight 的默认条目:
    !visiblepw, always_set_home, 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

用户 twilight 可以在该主机上运行以下命令:
    (root) /usr/bin/passwd [a-zA-Z]*, (root) !/usr/bin/passwd root, (root) !/usr/bin/passwd \"\"

此时尝试更改root密码:

[twilight@localhost root]$ sudo passwd root 
[sudo] password for twilight: 
对不起,用户 twilight 无权以 root 的身份在 localhost.localdomain 上执行 /bin/passwd root。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值