Linux-权限管理(sudo权限)

简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/76595348 简介sudo命令允许系统管理员让普通用户执行一些或者全部的root命令。
版权声明:本文为博主原创文章,转载请注明出处。 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。
相关文章
|
1月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
|
11天前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
29 1
linux特殊权限!!
|
11天前
|
Linux 数据安全/隐私保护
linux权限管理
本文介绍了Linux系统中的权限管理,包括权限的概念、用户和用户组与权限的关系、文件权限位的说明以及rwx权限的具体含义。同时,详细讲解了如何使用`chmod`和`chown`命令更改文件和目录的权限,并通过多个实验演示了不同权限组合对文件和目录的实际影响。最后,总结了文件和目录权限的一些重要知识点,帮助读者更好地理解和应用Linux权限管理。
34 1
linux权限管理
|
1月前
|
Linux 数据安全/隐私保护
探索Linux操作系统下的权限管理
【8月更文挑战第66天】在数字世界中,操作系统的权限管理就如同现实世界中的钥匙和锁,保护着我们的数据安全。本文将带你深入理解Linux系统中的权限设置,通过实际代码示例,让你掌握文件和目录权限的分配与管理技巧。准备好了吗?让我们开始这场关于权限管理的探险之旅吧!
83 14
|
1月前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
1月前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS
|
1月前
|
网络协议 Linux 网络安全
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
|
1月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
26 0
|
6月前
|
Linux Windows
Linux权限命令详解(二)
Linux权限命令详解(二)
|
6月前
|
安全 Linux 开发工具
Linux权限命令详解(一)
Linux权限命令详解(一)