centos sudo不能运行_如何在 Linux 中配置 sudo 访问权限 | Linux 中国
Linux 系统中 root 用户拥有 Linux 中全部控制权力。Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为。
如果其他用户想去实施一些行为,不能为所有人都提供 root 访问权限。因为如果他或她做了一些错误的操作,没有办法去纠正它。
为了解决这个问题,有什么方案吗?
我们可以把 sudo 权限发放给相应的用户来克服这种情况。
sudo 命令提供了一种机制,它可以在不用分享 root 用户的密码的前提下,为信任的用户提供系统的管理权限。
他们可以执行大部分的管理操作,但又不像 root 一样有全部的权限。
什么是 sudo?
sudo 是一个程序,普通用户可以使用它以超级用户或其他用户的身份执行命令,是由安全策略指定的。
sudo 用户的访问权限是由 /etc/sudoers
文件控制的。
sudo 用户有什么优点?
在 Linux 系统中,如果你不熟悉一个命令,sudo 是运行它的一个安全方式。
◈ Linux 系统在 /var/log/secure
和 /var/log/auth.log
文件中保留日志,并且你可以验证 sudo 用户实施了哪些行为操作。◈ 每一次它都为当前的操作提示输入密码。所以,你将会有时间去验证这个操作是不是你想要执行的。如果你发觉它是不正确的行为,你可以安全地退出而且没有执行此操作。
基于 RHEL 的系统(如 Redhat (RHEL)、 CentOS 和 Oracle Enterprise Linux (OEL))和基于 Debian 的系统(如 Debian、Ubuntu 和 LinuxMint)在这点是不一样的。
我们将会教你如何在本文中提及的两种发行版中执行该操作。
这里有三种方法可以应用于两个发行版本。
◈ 增加用户到相应的组。基于 RHEL 的系统,我们需要添加用户到 wheel
组。基于 Debain 的系统,我们添加用户到 sudo 或 admin
组。◈ 手动添加用户到 /etc/group
文件中。◈ 用 visudo 命令添加用户到 /etc/sudoers
文件中。
如何在 RHEL/CentOS/OEL 系统中配置 sudo 访问权限?
在基于 RHEL 的系统中(如 Redhat (RHEL)、 CentOS 和 Oracle Enterprise Linux (OEL)),使用下面的三个方法就可以做到。
方法 1:在 Linux 中如何使用 wheel 组为普通用户授予超级用户访问权限?
wheel 是基于 RHEL 的系统中的一个特殊组,它提供额外的权限,可以授权用户像超级用户一样执行受到限制的命令。
注意,应该在 /etc/sudoers
文件中激活 wheel
组来获得该访问权限。
# grep -i wheel /etc/sudoers
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
# %wheel ALL=(ALL) NOPASSWD: ALL
假设我们已经创建了一个用户账号来执行这些操作。在此,我将会使用 daygeek
这个用户账号。
执行下面的命令,添加用户到 wheel
组。
# usermod -aG wheel daygeek
我们可以通过下面的命令来确定这一点。
# getent group wheel
wheel:x:10:daygeek
我将要检测用户 daygeek
是否可以访问属于 root 用户的文件。
$ tail -5 /var/log/secure
tail: cannot open /var/log/secure for reading: Permission denied
当我试图以普通用户身份访问 /var/log/secure
文件时出现错误。我将使用 sudo 访问同一个文件,让我们看看这个魔术。
$ sudo tail -5 /var/log/secure
[sudo] password for daygeek:
Mar 17 07:01:56 CentOS7 sudo: daygeek : TTY=pts/0 ; PWD=/home/daygeek ; USER=root ; COMMAND=/bin/tail -5 /var/log/secure
Mar 17 07:01:56 CentOS7 sudo: pam_unix(sudo:session): session opened for user root by daygeek(uid=0)
Mar 17 07:01:56 CentOS7 sudo: pam_unix(sudo:session): session closed for user root
Mar 17 07:05:10 CentOS7 sudo: daygeek : TTY=pts/0 ; PWD=/home/daygeek ; USER=root ; COMMAND=/bin/tail -5 /var/log/secure
Mar 17 07:05:10 CentOS7 sudo: pam_unix(sudo:session): session opened for user root by daygeek(uid=0)
方法 2:在 RHEL/CentOS/OEL 中如何使用 /etc/group 文件为普通用户授予超级用户访问权限?
我们可以通过编辑 /etc/group
文件来手动地添加用户到 wheel
组。
只需打开该文件,并在恰当的组后追加相应的用户就可完成这一点。
$ grep -i wheel /etc/group
wheel:x:10:daygeek,user1
在该例中,我将使用 user1
这个用户账号。
我将要通过在系统中重启 Apache httpd 服务来检查用户 user1
是不是拥有 sudo 访问权限。让我们看看这个魔术。
$ sudo systemctl restart httpd
[sudo] password for user1:
$ sudo grep -i user1 /var/log/secure
[sudo] password for user1:
Mar 17 07:09:47 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/systemctl restart httpd
Mar 17 07:10:40 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/systemctl restart httpd
Mar 17 07:12:35 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/grep -i httpd /var/log/secure
方法 3:在 Linux 中如何使用 /etc/sudoers 文件为普通用户授予超级用户访问权限?
sudo 用户的访问权限是被 /etc/sudoers
文件控制的。因此,只需将用户添加到 sudoers
文件中 的 wheel
组下即可。
只需通过 visudo 命令将期望的用户追加到 /etc/sudoers
文件中。
# grep -i user2 /etc/sudoers
user2 ALL=(ALL) ALL
在该例中,我将使用 user2
这个用户账号。
我将要通过在系统中重启 MariaDB 服务来检查用户 user2
是不是拥有 sudo 访问权限。让我们看看这个魔术。
$ sudo systemctl restart mariadb
[sudo] password for user2:
$ sudo grep -i mariadb /var/log/secure
[sudo] password for user2:
Mar 17 07:23:10 CentOS7 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/systemctl restart mariadb
Mar 17 07:26:52 CentOS7 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/grep -i mariadb /var/log/secure
在 Debian/Ubuntu 系统中如何配置 sudo 访问权限?
在基于 Debian 的系统中(如 Debian、Ubuntu 和 LinuxMint),使用下面的三个方法就可以做到。
方法 1:在 Linux 中如何使用 sudo 或 admin 组为普通用户授予超级用户访问权限?
sudo 或 admin
是基于 Debian 的系统中的特殊组,它提供额外的权限,可以授权用户像超级用户一样执行受到限制的命令。
注意,应该在 /etc/sudoers
文件中激活 sudo 或 admin
组来获得该访问权限。
# grep -i 'sudo\|admin' /etc/sudoers
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
假设我们已经创建了一个用户账号来执行这些操作。在此,我将会使用 2gadmin
这个用户账号。
执行下面的命令,添加用户到 sudo 组。
# usermod -aG sudo 2gadmin
我们可以通过下面的命令来确定这一点。
# getent group sudo
sudo:x:27:2gadmin
我将要检测用户 2gadmin
是否可以访问属于 root 用户的文件。
$ less /var/log/auth.log
/var/log/auth.log: Permission denied
当我试图以普通用户身份访问 /var/log/auth.log
文件时出现错误。我将要使用 sudo 访问同一个文件,让我们看看这个魔术。
$ sudo tail -5 /var/log/auth.log
[sudo] password for 2gadmin:
Mar 17 20:39:47 Ubuntu18 sudo: 2gadmin : TTY=pts/0 ; PWD=/home/2gadmin ; USER=root ; COMMAND=/bin/bash
Mar 17 20:39:47 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by 2gadmin(uid=0)
Mar 17 20:40:23 Ubuntu18 sudo: pam_unix(sudo:session): session closed for user root
Mar 17 20:40:48 Ubuntu18 sudo: 2gadmin : TTY=pts/0 ; PWD=/home/2gadmin ; USER=root ; COMMAND=/usr/bin/tail -5 /var/log/auth.log
Mar 17 20:40:48 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by 2gadmin(uid=0)
或者,我们可以通过添加用户到 admin
组来执行相同的操作。
运行下面的命令,添加用户到 admin
组。
# usermod -aG admin user1
我们可以通过下面的命令来确定这一点。
# getent group admin
admin:x:1011:user1
让我们看看输出信息。
$ sudo tail -2 /var/log/auth.log
[sudo] password for user1:
Mar 17 20:53:36 Ubuntu18 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/usr/bin/tail -2 /var/log/auth.log
Mar 17 20:53:36 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user1(uid=0)
方法 2:在 Debian/Ubuntu 中如何使用 /etc/group 文件为普通用户授予超级用户访问权限?
我们可以通过编辑 /etc/group
文件来手动地添加用户到 sudo 组或 admin
组。
只需打开该文件,并在恰当的组后追加相应的用户就可完成这一点。
$ grep -i sudo /etc/group
sudo:x:27:2gadmin,user2
在该例中,我将使用 user2
这个用户账号。
我将要通过在系统中重启 Apache httpd 服务来检查用户 user2
是不是拥有 sudo 访问权限。让我们看看这个魔术。
$ sudo systemctl restart apache2
[sudo] password for user2:
$ sudo tail -f /var/log/auth.log
[sudo] password for user2:
Mar 17 21:01:04 Ubuntu18 systemd-logind[559]: New session 22 of user user2.
Mar 17 21:01:04 Ubuntu18 systemd: pam_unix(systemd-user:session): session opened for user user2 by (uid=0)
Mar 17 21:01:33 Ubuntu18 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/systemctl restart apache2
方法 3:在 Linux 中如何使用 /etc/sudoers 文件为普通用户授予超级用户访问权限?
sudo 用户的访问权限是被 /etc/sudoers
文件控制的。因此,只需将用户添加到 sudoers
文件中的 sudo 或 admin
组下即可。
只需通过 visudo 命令将期望的用户追加到 /etc/sudoers
文件中。
# grep -i user3 /etc/sudoers
user3 ALL=(ALL:ALL) ALL
在该例中,我将使用 user3
这个用户账号。
我将要通过在系统中重启 MariaDB 服务来检查用户 user3
是不是拥有 sudo 访问权限。让我们看看这个魔术。
$ sudo systemctl restart mariadb
[sudo] password for user3:
$ sudo tail -f /var/log/auth.log
[sudo] password for user3:
Mar 17 21:12:32 Ubuntu18 systemd-logind[559]: New session 24 of user user3.
Mar 17 21:12:49 Ubuntu18 sudo: user3 : TTY=pts/0 ; PWD=/home/user3 ; USER=root ; COMMAND=/bin/systemctl restart mariadb
Mar 17 21:12:49 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user3(uid=0)
Mar 17 21:12:53 Ubuntu18 sudo: pam_unix(sudo:session): session closed for user root
Mar 17 21:13:08 Ubuntu18 sudo: user3 : TTY=pts/0 ; PWD=/home/user3 ; USER=root ; COMMAND=/usr/bin/tail -f /var/log/auth.log
Mar 17 21:13:08 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user3(uid=0)
via: https://www.2daygeek.com/how-to-configure-sudo-access-in-linux/
作者:Magesh Maruthamuthu[2] 选题:lujun9972 译者:liujing97 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
centos sudo不能运行_如何在 Linux 中配置 sudo 访问权限 | Linux 中国相关推荐
- centos sudo不能运行_如何在Linux中配置sudo访问权限
Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为. 如果其他用户想去实施一些行为,不能为所有人都提供 ...
- ) php中_如何在webmin中配置多个PHP版本
请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 如何在webmin中配置多个PHP版本?本教程将会给您 ...
- linux中600是什么权限,linux系统中文件的权限
查看文件权限的语句: 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些: -rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表 ...
- office工具栏不见_如何在Office中的快速访问工具栏中添加宏
office工具栏不见 Macros in Word and Excel provide the ability to save time on predictable, repetitive tas ...
- jenkins中jdk配置_如何在Jenkins中配置JDK
jenkins中jdk配置 In the previous chapter, we learnt how to configure the Jenkins and start the server a ...
- linux mysql授权外部访问权限,Linux中安装Mysql授权远程访问
Linux中安装MySQL 因为使用yum安装.安装过程需保证网络通畅 一.安装mysql 1.yum安装mysqlCentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql, ...
- linux 服务器访问限制,Linux中限制用户访问权限的3种方法
现在需要限定某个用户对特定目录/文件的访问权限,或者把某个用户的访问范围限制在某个目录/文件中.现实情况下,还是能遇到这样的需求的,比如说ubuntu下有多个可登录用户,默认情况下,用户A的工作目录( ...
- linux限制root用户访问权限,Linux中限制用户访问权限的3种方法
现在需要限定某个用户对特定目录/文件的访问权限,或者把某个用户的访问范围限制在某个目录/文件中.现实情况下,还是能遇到这样的需求的,比如说ubuntu下有多个可登录用户,默认情况下,用户A的工作目录( ...
- amd cpu不能在cmd环境下运行java代码_如何在Windows10中配置java的JDK环境
今天给大家分享一下如何配置java的JDK环境.操作步骤如下: 1.下载好 jdk 的安装文件,我下载的是 jdk-10.0.1_windows-x64_bin.exe 这个版本的安装文件: 2.使用 ...
最新文章
- nginx代理转发_学了三年的性能调优,你还不懂Nginx?怎么跳槽涨薪
- 使用IDEA创建一个Servlet应用程序
- java诸神之战游戏_mj回溯算法 - osc_7bgz0no1的个人空间 - OSCHINA - 中文开源技术交流社区...
- 【转】Linux终端下 dstat 监控工具
- h5前端有php,【前端】为什么有些网站的页面地址,没有加上html或者php或者jsp的后辍名?...
- 求一个数是几位数,并求每位数相加的和
- oracle数据库inactive状态session过多的原因定位
- python ^ 与 - +是有运算的先后顺序的
- 十八道海量数据处理面试题与相关知识讲解
- Python调用QQ截图工具
- 东方航空:无畏挑战,做开源数据库转型先行者
- 数据结构与算法 python版 之 递归三定律
- 【超强干货】蘑菇街App的组件化之路
- vue-03-4:vue封装方法到工具类
- 开源搜索引擎评估:lucene sphinx elasticsearch
- MySql数据库入门
- 通过免费api获取天气
- CS全新一代SDNAND(又称贴片式T卡)如何让老款MCU焕发青春活力
- 真的了解Cookie吗 - Cookie详解
- 广东省高校职称计算机考试成绩查询系统,广东省专业技术人员网上申报系统【官网入口】...
热门文章
- Postman 解决 “Could not get any response” 问题
- Matlab 绘制三维立体图(以地质异常体为例)
- JDBC executeBatch 抛出异常停止
- TWRP开启时误点了系统只读(不再提示)【解决方案】
- 【HTML】处理<br>换行符追加到前端换行无效的问题 --- html中渲染的字符串中包含HTML标签无效的处理方法,字符串中包含HTML标签被转义的问题 解决
- 树莓派安装 MySQL 时出现错误的解决方法
- 虚拟机忘记密码解决方法
- 部署Tomcat服务时,解决Cannot invoke Tomcat Manager 异常
- 关于java文件下载文件名乱码问题解决方案
- java.net.BindException: Address already in use: 解决方法