网络安全系列之十三 Linux中su与sudo的安全设置

1. 限制使用su命令的用户

Linux系统中的root用户权限过大,所以在实际使用中一般都是以普通用户的身份登录,当需要时可以切换到root用户身份。切换用户身份使用su命令。

但是我们可能并不希望所有用户都能切换到root身份,而是只想指定某个用户可以切换,比如只允许zhangsan用户使用su命令切换身份。

要限制使用su命令的用户,需要进行两个方面的设置。

首先需要启用pam_wheel认证模块,


[[email protected] ~]# vim /etc/pam.d/su ‘将文件中下面一行前的#去掉

auth required pam_wheel.so use_uid

这样凡是执行“su – root”命令的用户都将受到限制,只有wheel组中的成员才有权限执行该命令。

因而下面需要做的就是将zhangsan加入到wheel组中。


[[email protected] ~]# gpasswd -a zhangsan wheel

[[email protected] ~]# id zhangsan

uid=501(zhangsan) gid=501(zhangsan) groups=501(zhangsan),10(wheel)

这样,当使用一个不属于wheel组成员的账号切换到root时,系统便会拒绝。

例如,使用lisi切换到root,即使输入了正确的root用户密码,也会提示“密码不正确”。


[[email protected] ~]$ su - root

口令:

su: 密码不正确

2. 使用sudo机制提升权限

利用su命令切换到root用户,必须要输入root用户的密码。对于管理员,可以先用普通用户的身份登录系统,然后再用su命令切换到管理员账号;而对于普通用户如果也可以使用su命令,这很明显不利于系统安全性,所以对于普通用户更常使用的是sudo命令。

sudo命令的作用主要在于能够允许经过授权的个别普通用户以root权限执行一些授权使用的管理命令。

如以普通用户zhangsan的身份创建用户,会提示没有权限:


[[email protected] ~]$ useradd test

-bash: /usr/sbin/useradd: 权限不够

下面让zhangsan使用sudo命令以root权限去执行命令。注意,普通用户使用sudo执行命令时会要求提供自己的密码进行验证。


[[email protected] ~]$ sudo useradd test

[sudo] password for zhangsan:

zhangsan is not in the sudoers file. This incident will be reported.

zhangsan使用sudo命令仍然无法创建用户,这是因为在Linux中只有被授权的用户才能执行sudo命令,而且使用sudo也只能执行那些被授权过的命令。

所以要使用sudo命令首先必须要经过管理员的授权设置,需要修改配置文件“/etc/sudoers”。

例如:授权普通用户zhangsan可以通过sudo方式执行所有的命令:

注意,“/etc/sudoers”是一个只读文件,修改完成保存退出时要使用“wq!”命令。

如果希望zhangsan只能执行部分命令,可以在“/etc/sudoers”中指定zhangsan所能执行的命令的文件路径,命令的文件路径可以通过which命令查找。

例如:授权zhangsan只能执行useradd和userdel命令。

zhangsan每次在执行sudo命令时都要输入自己的密码,为了省去普通用户执行sudo命令时需要输入密码的麻烦,可以在“/etc/sudoers”进行如下设置:

除了针对用户授权之外,我们也可以对用户组授权,这样用户组内的所有成员用户就都具有了执行sudo命令的权限。如果授权的对象是用户组,需要在组名的前面要加上“%”。

例如:授权managers组内的成员用户可以添加、删除、更改用户账号。

时间: 2024-10-27 20:05:10

网络安全系列之十三 Linux中su与sudo的安全设置的相关文章

linux中su和sudo区别

su切换用户,切换成root用户,要输入root用户的密码 su - 用户名 sudo  涉及到 /etc/sudoers文件 ,内容如下: # User privilege specificationroot ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges%admin ALL=(ALL) ALL # Allow members of group sudo to execute any command

Linux中su和sudo的用法

su -#su - oldboy //当执行这个命令的时候表示切换到oldboy用户,并且重新读取用户环境相关配置文件,具体的来说就是执行下用户家目录下.bash_profile和.bashrc文件,这个我们成为全切换su#su oldboy //执行这个命令的时候系统不读取以上两个文件,所以我们一般称它为半切换,这样切换过去之后,oldboy用户使用的依旧是此前用户的环境配置信息sudo#sudo这个命令设计初的主要目的是为了使某些用户具有特定用户的一些特殊的权限,举例说明:比如A,B两个人,

Linux 中su和sudo命令的几个注意点

1 su与su - 的区别 1.1命令说明 su对应是是no-login shell的方式进行账号登陆,命令行的变量配置还是切换账号前的变量. su-对应的是login shell的方式进行账号登陆,这时候相当于完全登陆新的账号获取新的账号的变量信息 因此在写脚本的过程中,根据里面变量的配置,要合理选用“su” 或者“su -”.附上鸟哥书中关于no-login shell与login shell的讲解 login shell:取得 bash 时需要完整的登陆流程的,就称为 login shel

在linux中添加ftp用户,并设置相应的权限

在linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test 2.建用户:在root用户下: useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/testpasswd test //为test设置密码 3.更改用户相应的权限设置: usermod -s /sbin/nologin test //限定用户test不能telnet,只能ftpuse

Linux中计划任务、周期性任务设置

Linux中计划任务.周期性任务设置 计划任务:指在未来的特定时间里,执行一次某一特定任务.当然,如果同一任务需要在不同时间点执行执行两次.三次或多次,可以视为多个一次看待. 周期性任务:指某一任务需要周期性的执行.周期性可以是以分.时.天等为单位,但又不限于这些单位. 常用于执行计划任务的命令--at, batch, 与周期性任务相关的的命令crontabs. 1.at命令和batch命令的区别. at命令旨在特定的之间执行任务:batch命令设置的任务由系统选择空闲时间去执行,空闲时间默认为

linux centos7 中 su、sudo及禁止远程访问root

一. su命令 1.切换用户su - fxq su命令后带"- ",表示环境变量一起切换过去 [[email protected]_46_188_centos ~]# whoami root [[email protected]_46_188_centos ~]# Last login: Tue Aug  8 22:30:12 CST 2017 on pts/0 [[email protected]_46_188_centos ~]$ pwd /home/fxq [[email pro

Linux通过su、sudo命令实现用户切换、提权

概述 大多数Linux服务器并不建议用户直接以root用户进行登录.一方面可以大大减少因误操作而导致的破坏,另一方面也降低了特权密码在不安全的网络中被泄露的风险.鉴于这些原因,需要为普通用户提供一种身份切换或权限或权限提升机制,以便在必要的时候执行管理任务.此时就需要借助Linux为我们提供的su.sudo两种命令来提升执行权限. 提权配置的三种方式 1.针对用户 2.针对组 3.针对用户.组.命令的别名 实验目标 1.熟悉su.sudo的用法,熟练使用sudoers相关的配置 2.体验用户切换

【linux】su、sudo、sudo su、sudo -i的用法和区别

来源:http://bbs.csdn.net/topics/390938651 sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.不过有时间限制,Ubuntu默认为一次时长15分钟.su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为"su 账户名称".如果后面不加账户时系统默认为root账户,密码也为超级账户的密码.没有时间限制.sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而

网络安全系列之四十三 在IIS6中配置ASP网站

本文将介绍如何在Win2003系统中通过IIS6.0来搭建一个ASP网站,网站数据库采用的是ACCESS,对于这类简单的小型数据库,无需安装数据库程序,只需直接配置IIS即可. 首先在添加删除组件中选择安装应用程序服务器,在安装过程中需要插入系统安装光盘: 安装完成后,打开IIS管理器,将默认站点停止运行,然后新建一个名为test的站点. 在创建站点时给予运行脚本权限. 站点创建完成后,设置站点属性,启用父路径.所谓父路径也就是在网页中允许使用"../"来代表上一级父目录. 在Web服