当前位置: 首页 > 科技观察

Linux中如何配置sudo权限

时间:2023-03-12 22:57:28 科技观察

Linux系统中的root用户在Linux中拥有完全的控制权。在Linux系统中,root是具有***权限的用户,可以在系统中进行任意操作。如果其他用户想做某事,则不能向所有人授予根访问权限。因为如果他或她做错了什么,就没有办法改正。有什么办法可以解决这个问题吗?我们可以通过向相应用户授予sudo权限来克服这种情况。sudo命令提供了一种机制,可以在不共享root用户密码的情况下为受信任的用户授予系统管理权限。他们可以执行大多数管理操作,但不像root那样拥有完整权限。什么是须藤?sudo是一个程序,普通用户可以使用该程序以超级用户或其他用户的身份执行命令,如安全策略所指定的那样。sudo用户的访问权限由/etc/sudoers文件控制。成为sudo用户有什么好处?在Linux系统中,如果您不熟悉sudo,sudo是一种运行命令的安全方式。Linux系统将日志保存在/var/log/secure和/var/log/auth.log文件中,您可以验证sudo用户执行了哪些操作。每次它都会提示输入当前操作的密码。因此,您将有时间验证此操作是否是您要执行的操作。如果您发现这是不正确的行为,您可以安全退出并且不执行此操作。基于RHEL的系统,如Redhat(RHEL)、CentOS和OracleEnterpriseLinux(OEL),在这方面不同于基于Debian的系统,如Debian、Ubuntu和LinuxMint。我们将教您如何在本文提到的两个发行版上执行此操作。以下是可应用于两种分布的三种方法。将用户添加到相应的组中。对于基于RHEL的系统,我们需要将用户添加到wheel组。在基于Debain的系统上,我们将用户添加到sudo或admin组。手动将用户添加到/etc/group文件。使用visudo命令将用户添加到/etc/sudoers文件。RHEL/CentOS/OEL系统如何配置sudo权限?在基于RHEL的系统上,例如Redhat(RHEL)、CentOS和OracleEnterpriseLinux(OEL),可以使用以下三种方法完成此操作。方法一:Linux中如何使用wheel组给普通用户授予超级用户权限?wheel是基于RHEL的系统中的一个特殊组,它提供额外的权限,授权用户像超级用户一样执行受限命令。请注意,应在/etc/sudoers文件中激活wheel组以获得此访问权限。#grep-iwheel/etc/sudoers##允许组wheel中的人运行所有命令%wheelALL=(ALL)ALL#%wheelALL=(ALL)NOPASSWD:ALL假设我们已经创建了一个用户帐户来执行这些操作.在这里,我将使用用户帐户daygeek。执行以下命令将用户添加到wheel组。#usermod-aGwheeldaygeek我们可以使用下面的命令来确定这一点。#getentgroupwheelwheel:x:10:daygeek我要检查用户daygeek是否可以访问属于root用户的文件。$tail-5/var/log/securetail:cannotopen/var/log/secureforreading:Permissiondenied当我尝试以普通用户身份访问/var/log/secure文件时出现错误。我将使用sudo访问同一个文件,让我们看看魔术。$sudotail-5/var/log/secure[sudo]daygeek的密码:Mar1707:01:56CentOS7sudo:daygeek:TTY=pts/0;PWD=/home/daygeek;用户=根;COMMAND=/bin/tail-5/var/log/secureMar1707:01:56CentOS7sudo:pam_unix(sudo:session):daygeek(uid=0)Mar1707:01:56CentOS7为用户root打开的会话sudo:pam_unix(sudo:session):用户rootMar1707:05:10会话关闭CentOS7sudo:daygeek:TTY=pts/0;PWD=/home/daygeek;用户=根;COMMAND=/bin/tail-5/var/log/secureMar1707:05:10CentOS7sudo:pam_unix(sudo:session):sessionopenedforuserrootbydaygeek(uid=0)方法二:如何使用/etc/group文件在RHEL/CentOS/OEL中正常用户授予超级用户访问权限?我们可以通过编辑/etc/group文件手动将用户添加到wheel组。这可以通过简单地打开文件并在适当的组之后附加适当的用户来完成。$grep-iwheel/etc/groupwheel:x:10:daygeek,user1在此示例中,我将使用用户帐户user1。我将通过重启系统中的Apachehttpd服务来检查用户user1是否具有sudo访问权限。让我们看看魔术。$sudosystemctlrestarthttpd[sudo]user1的密码:$sudogrep-iuser1/var/log/secure[sudo]user1的密码:Mar1707:09:47CentOS7sudo:user1:TTY=pts/0;密码=/home/user1;用户=根;COMMAND=/bin/systemctlrestarthttpdMar1707:10:40CentOS7sudo:user1:TTY=pts/0;密码=/home/user1;用户=根;COMMAND=/bin/systemctlrestarthttpdMar1707:12:35CentOS7sudo:user1:TTY=pts/0;密码=/home/user1;用户=根;COMMAND=/bin/grep-ihttpd/var/log/secure方法三:如何在Linux中使用/etc/sudoers文件给普通用户授予超级用户权限?sudo用户的访问权限由/etc/sudoers文件控制。所以只要在sudoers文件中的wheel组下添加用户即可。只需通过visudo命令将所需用户附加到/etc/sudoers文件即可。#grep-iuser2/etc/sudoersuser2ALL=(ALL)ALL在此示例中,我将使用用户帐户user2。我将通过重启系统中的MariaDB服务来检查用户user2是否具有sudo访问权限。让我们看看魔术。$sudosystemctlrestartmariadb[sudo]user2的密码:$sudogrep-imariadb/var/log/secure[sudo]user2的密码:Mar1707:23:10CentOS7sudo:user2:TTY=pts/0;密码=/家/用户2;用户=根;COMMAND=/bin/systemctlrestartmariadbMar1707:26:52CentOS7sudo:user2:TTY=pts/0;密码=/home/user2;用户=根;COMMAND=/bin/grep-imariadb/var/log/secureDebian/Ubuntu系统如何设置sudo访问权限?在基于Debian的系统(例如Debian、Ubuntu和LinuxMint)上,这可以使用以下三种方法完成。方法1:如何使用sudo或admin组在Linux中授予普通用户超级用户访问权限?sudo或admin是基于Debian的系统中的一个特殊组,它提供额外的权限,授权用户像超级用户一样执行受限命令。请注意,应在/etc/sudoers文件中激活sudo或管理员组以获得此访问权限。#grep-i'sudo\|admin'/etc/sudoers#admin组成员可以获得root权限%adminALL=(ALL)ALL#允许sudo组成员执行任何命令%sudoALL=(ALL:ALL)ALL假设我们已经创建了一个用户帐户来执行这些操作。在这里,我将使用2gadmin用户帐户。执行以下命令将用户添加到sudo组。#usermod-aGsudo2gadmin我们可以使用以下命令确定这一点。#getentgroupsudosudo:x:27:2gadmin我要检查用户2gadmin是否可以访问属于root用户的文件。$less/var/log/auth.log/var/log/auth.log:Permissiondenied当我尝试以普通用户身份访问/var/log/auth.log文件时出现错误。我将使用sudo访问同一个文件,让我们看看魔术。$sudotail-5/var/log/auth.log[sudo]密码2gadmin:Mar1720:39:47Ubuntu18sudo:2gadmin:TTY=pts/0;PWD=/home/2gadmin;用户=根;COMMAND=/bin/bashMar1720:39:47Ubuntu18sudo:pam_unix(sudo:session):2gadmin(uid=0)为root用户打开会话Mar1720:40:23Ubuntu18sudo:pam_unix(sudo:session):为用户rootMar1720:40:48Ubuntu18sudo:2gadmin:TTY=pts/0关闭会话;PWD=/home/2gadmin;用户=根;命令=/usr/bin/tail-5/var/log/auth.logMar1720:40:48Ubuntu18sudo:pam_unix(sudo:session):sessionopenedforuserrootby2gadmin(uid=0)或者,我们可以通过将用户添加到管理员组来执行相同的操作。运行以下命令将用户添加到管理员组。#usermod-aGadminuser1我们可以使用以下命令确定这一点。#getentgroupadminadmin:x:1011:user1让我们看看输出。$sudotail-2/var/log/auth.log[sudo]passwordforuser1:Mar1720:53:36Ubuntu18sudo:user1:TTY=pts/0;密码=/home/user1;用户=根;COMMAND=/usr/bin/tail-2/var/log/auth.logMar1720:53:36Ubuntu18sudo:pam_unix(sudo:session):user1(uid=0)为用户root打开的会话方法2:关于Debian如何在Ubuntu中使用/etc/group文件将超级用户权限授予普通用户?我们可以通过编辑/etc/group文件手动将用户添加到sudo组或admin组。这可以通过简单地打开文件并在适当的组之后附加适当的用户来完成。$grep-isudo/etc/groupsudo:x:27:2gadmin,user2在此示例中,我将使用用户帐户user2。我将通过重启系统中的Apachehttpd服务来检查用户user2是否具有sudo访问权限。让我们看看魔术。$sudosystemctlrestartapache2[sudo]用户2的密码:$sudotail-f/var/log/auth.log[sudo]用户2的密码:Mar1721:01:04Ubuntu18systemd-logind[559]:新会话22用户user2.Mar1721:01:04Ubuntu18systemd:pam_unix(systemd-user:session):sessionopenedforuseruser2by(uid=0)Mar1721:01:33Ubuntu18sudo:user2:TTY=pts/0;密码=/home/user2;用户=根;COMMAND=/bin/systemctlrestartapache2方法三:Linux中如何使用/etc/sudoers文件给普通用户授予超级用户权限?sudo用户的访问权限由/etc/sudoers文件控制。所以只要在sudoers文件中将用户添加到sudo或admin组下即可。只需通过visudo命令将所需用户附加到/etc/sudoers文件即可。#grep-iuser3/etc/sudoersuser3ALL=(ALL:ALL)ALL在此示例中,我将使用用户帐户user3。我将通过重启系统中的MariaDB服务来检查用户user3是否具有sudo访问权限。让我们看看魔术。$sudosystemctlrestartmariadb[sudo]用户3的密码:$sudotail-f/var/log/auth.log[sudo]用户3的密码:Mar1721:12:32Ubuntu18systemd-logind[559]:新会话24用户user3.Mar1721:12:49Ubuntu18sudo:user3:TTY=pts/0;PWD=/home/user3;用户=根;COMMAND=/bin/systemctlrestartmariadbMar1721:12:49Ubuntu18sudo:pam_unix(sudo:session):由user3(uid=0)为用户root打开的会话Mar1721:12:53Ubuntu18sudo:pam_unix(sudo:会话):用户rootMar1721:13:08Ubuntu18sudo:user3:TTY=pts/0的会话已关闭;PWD=/home/user3;用户=根;COMMAND=/usr/bin/tail-f/var/log/auth.logMar1721:13:08Ubuntu18sudo:pam_unix(sudo:session):user3(uid=0)为用户root打开的会话