linux禁止切换到root,linux禁止普通用户切换至root用户的实例讲解

在上正文之前,我想先将一些基础的linux用户以及用户组的相关命令:

1、添加用户

useradd [-g group] [-d user_home_directory] [-p “your password”] Username

-g 表示设置新增用户所属用户组

-d 表示设置新增用户的主目录

-p 表示设置新增用户的登录密码

还有其他的选项可用useradd ?h去查看

举例:

useradd teacher1

#添加新用户teacher1,无密码,

#主目录为默认(命令执行成功后会在/home目录下生成teacher1目录作为该用户主目录),

#所属用户组为默认(以自己用户名命名的用户组teacher)

2、修改用户信息

usermod [-g group] [-d user_home_directory] [-p “your password”] Username

各选项含义与useradd中相同,其他选项详情可用usermod ?h查看。

举例:

usermod ?d /newHome ?p test1111 ?g staff teacher1

#修改teacher1的主目录为/newHome,密码为test1111,用户组为staff

其中,修改密码也可以用如下命令:

passwd [Username]

#Username为空时表示修改当前登录用户密码,不为空时表示修改指定用户密码

3、删除用户

userdel [-f] [-r] Username

-f 表示强制删除

-r 表示同时删除用户主目录

举例:

userdel ?r teacher1

#删除用户teacher1并删除其主目录

4、查看用户所属用户组

groups [username]

username为空时即查询当前用户所属用户组

举例:

groups teacher1

#查询teacher1所在用户组

5、查看用户列表

vi /etc/passwd

#由于用户信息均存储在/etc/passwd文件中,因此可以直接用vi打开查看

6、查看用户组列表

vi /etc/group

与用户列表类似,用户组信息存放在/etc/group文件中

7、切换当前用户

(1)

su username

#切换用户身份为指定username用户的身份,

#但shell环境仍为原用户环境,即环境变量、用户配置等均为原用户的。

示例:

当前用户是root,使用su test1命令切换身份为test1

(2)

su ? username

#将身份和shell环境全都切换至目标用户

举例:

当前用户是root,使用su - test1命令切换身份为test1

8、退出当前用户

exit

好了,铺垫内容有点长,但以上均是linux用户管理中经常用到的命令,也是在完成本文的目标??禁止普通用户切换至root用户中会用到的东西。以下是详细步骤:

(1)我们先新建一个普通用户test1

useradd test1

(2)将普通用户test1加入到wheel用户组

usermod ?g wheel test1

(3)修改/etc/pam.d/su配置

#打开这个配置文件,找到如下行,并将行首”#”去掉,保存文件

#auth required pam_wheel.so use_uid

(4)修改/etc/login.defs文件

vi /etc/login.defs

#在文件末尾添加” SU_WHEEL_ONLY yes”,保存文件

(5)现在只有属于wheel用户组的用户才可以切换到root用户了,下面我们来测试一下以test1身份登录系统或者由其他用户切换至test1用户,在test1用户身份下切换至root用户,发现切换成功

(6)将test1从wheel用户组中删除(或者说改为其他用户组成员),在test1用户身份下切换至root用户,发现切换失败,提示密码错误,但实际输入密码是正确的

后记:

注意,进行如上所示设置后只有属于wheel用户组的用户才可以切换至root用户。

例外不得不说关于linux的命令实在太多多到难以记忆,但用的多了以后自然能够熟练掌握。至于本文为什么要讲那么多铺垫内容,主要也是为了笔者能够及时回顾,加深记忆,如有纰漏还请留言指正。

以上这篇linux禁止普通用户切换至root用户的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持得牛网。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中new方法详解及_Python中new方法的详解

new_ 方法是什么?__new__方法其实就是创建对象的方法new()方法是在类准备将自身实例化时调用。一个类可以有多个位置参数和多个命名参数,而在实例化开始之后,在调用 init()方法之前,Python首先调用new()方法:def new(c…

linux 子域dns,linux下搭建DNS子域及相关授权详解

linux下搭建DNS子域及相关授权详解forward功能是本地无法解析的域名,转发给指定DNS服务器forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果forward first;无法解析的域名,转发给指定DNS服务器,…

python堆排序求topn_Java堆排序,取得前TopN个数

import java.util.Random;/*** Created with IntelliJ IDEA.* User: pengfei.hpf* Date: 14-4-29* Time: 上午11:45* To change this template use File | Settings | File Templates.*/public class HeapSortUtil {/*** 用堆排序方法 找出前N个最大的数* originalArray 原始数…

开机自启动程序关闭方法_电脑非常卡,总有软件偷偷自启动?学会这1招,永久关闭它们!...

小编有一个朋友,前段子发微信问我,说他的电脑非常卡,重装电脑后,会好转许多,非常流畅,但是过了几天又卡了。我问了他的电脑配置,首先电脑的配置是绝对ok。当前一流水平,后来我远程操…

linux c socket编程详解,Linux c 网络socket编程

#include int main(){int sockfd,new_fd;struct sockaddr_in my_addr;struct sockaddr_in their_addr;int sin_size;//建立TCP套接口if((sockfd socket(AF_INET,SOCK_STrEAM,0))-1){perror("socket");exit(1);}//初始化结构体,并绑定2323端口my_addr.sin…

python饮料购买_Python实现的一个自动售饮料程序代码分享

写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序。当然,只是实现基本功能,欢迎高手指点,新手学…

C语言进制的格式字符,GB汉字文件转换成C语言Unicode十六进制字符串格式

可以用在编程环境只能用GB,但程序中的汉字字符串需要用C语言的Unicode十六进制字符串格式表示。可以先在字符串中直接输入汉字,再用此程序转换。源代码用C#//ascii & GB to unicode hexadecimal string for C language//chinese GB code : "啊&…

python udp客户端 服务器实现方式_python3实现UDP协议的简单服务器和客户端

利用python中的socket模块中的来实现UDP协议,这里写一个简单的服务器和客户端。为了说明网络编程中UDP的应用,这里就不写图形化了,在两台电脑上分别打开UDP的客户端和服务端就可以了。UDP:用户数据报协议,是一个面向无连接的协议。…

C语言实现上三角蛇形矩阵不用数组,蛇形矩阵c语言实现

【问题描述】蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。如:1 3 6 10 152 5 9 144 8 137 1211本题要求根据输入的行数要求,输出对应的一个蛇形上三角矩阵【输入形式】一个整数【输出形式】与之对应的蛇形上三角矩阵【样例输入】5【样例输出…

蒙特卡洛模拟_蒙特卡洛模拟法求期权价值

今年跟朋友讨论了一个期权问题。“Earn Out”方式并购下的金融工具确认。大致条款如下(非真实情况):收购一家标的企业估值15000万元。盈利预测情况如下:收购协议中约定了第一期支付对价50%。同时第二期对价于2021年支付50%。同时若低于2021年净利润低于9…

尚展垒等编著c语言程序设计,C语言程序设计技术实践指导

本书是《C语言程序设计技术》(尚展垒等编著,中国铁道出版社出版)配套使用的学习用书,每个实验对应主教材的相关内容。本书所使用的运行环境是Visual Studio 2010,与全国计算机等级考试(二级C语言)的运行环境一致。本书的每个实验项目均在 Vis…

python爬取歌曲评论_python 爬取歌曲评论的简单示例

这篇文章主要为大家详细介绍了python 爬取歌曲评论的简单示例,具有一定的参考价值,可以用来参考一下。感兴趣python 爬取歌曲评论的简单示例的小伙伴,下面一起跟随512笔记的小编罗X来看看吧。一、抓数据要想做成词云图表,首先得有…

c语言100位整数乘法,很大的数相乘怎么办?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include&nbsp #include&nbsp using&nbsp namespace&nbsp std;int&nbsp main(int&nbsp argc,&nbsp char&nbsp *argv[]){&nbsp &nbsp&nbsp &nbsp long&nbsp i,j, c,l…

双亲委派机制_面试官:双亲委派机制的原理和作用是什么?

说到双亲委派机制,就必须要先要弄清楚Java的类加载器什么是类加载器Java类加载器(ClassLoader)是Java运行时环境(JRE)的一部分,负责动态的将Java类加载到Java虚拟机的内存空间。类加载器有哪些主要有三个:引导类加载器(Bootstrap ClassLoader…

c++语言程序的结构特点,C++的特点(特性)

本篇文章帮大家学习C的特点(特性),包含了C的特点(特性)使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。C是面向对象的编程语言。 它提供了许多功能,如下所示。简单(Simple)机器独立或可移植(Portabl…

python聊天程序程序代码_python聊天程序实例代码分享

代码简单,直接看代码吧:代码如下:import socketimport threadingimport re#import Tkinterdef ser():ssocket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind((,33333))s.listen(1)conn,addrs.accept()while True:print [%s:%d] send a message to me: %s%(addr[…

C语言 游戏远程call调用,关于远程注入游戏并调用 call 的问题

[C#] 纯文本查看 复制代码UInt32 Codecave _Magic.AllocateMemory();uint ptr 0;try{int param1 _Magic.ReadInt((uint)(_bnsMagic.ReadInt((uint)0xDC1420) 0x30));uint ptr1 _Magic.ReadUInt((uint)0xdc1420) 0x28;uint ptr2 _Magic.ReadUInt(ptr1) 0x1c;uint ptr3 …

python有大括号吗_只有我一个人觉得Python取消了大括号而显得结构更加混乱了吗?...

这就是 Python 的特色取消了大括号后,Python 比较适合编写文学程序,进行文学编程(Literate Programming)。这样的语言当初也有,比如 CobolIDENTIFICATION DIVISION.PROGRAM-ID. HELLO.ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTRO…

c语言单元测验,C语言程序设计单元测验一.PDF

C 语言程序设计单元测验一一、选择题 (每题2 分,共50 分)1、一个C 程序由若干个C 函数组成,各个函数在文件中的位置顺序为:( )A.任意 B.第一个函数必须是主函数,其他函数任意C.必须完全按照执行的顺序排列 D.其他函数可以任意&…

无广告的pdf阅读器_奥利给!免费无广告!功能超齐全!这样的良心国产软件,真的不多了!...

日常生活工作中,我们会碰到各种各样的PDF文档,它是一种全球通用的格式,由Adobe公司开发。PDF有通用性好、格式不会乱变、保真性高等优点。但同时,PDF也是让我们感到困惑最多的格式之一,因为与Word文档等其他常见办公软…