Linux系统基础-管理之用户、权限管理
Linux用户、权限管理
=============================================
一、如何实现"用户管理"
1.什么是用户 "User" :
是一个使用者获取系统资源的凭证,是权限的结合,为了识别界定每一个用户所能访问的资源及其服务的。只是一种凭证。会有一个表示数字,计算机会首先跟这个数字相匹配。ID号。一般来讲用户名是公开的。
还要有个一个验证机制,来验证用户就是那个它所声称的那个人。(密码其实是最不可靠的方法)
2.什么是组 "Group":
一个组,可以识别是一个权限的集合,而且任何加入这个组的人都自动拥有这个组的权限。计算机靠GID(组ID)来识别.
一个用户组也是有密码的。一般的用户不能随便加入某个组中,需要用管理员协助。密码的作用是让一个没有管理权限的用户临时的加入某组
组分成两种组:(linux下任何一个用户必然会属于某一个组,即便没有分组,系统也会给你分一个跟你同名的组)
2.1.私有组:这个里面只有一个用户,而且这个用户名跟组名同名。也叫用户的基本组
2.2.公共组 : 也叫共有组。也叫用户的额外组,或者附加组。
一个用户可以同时拥有多个组。
UID,GID:其实是保存为无符号十进制数,用十六位二进制表示,0~65535
UID, GID和UID的编号相同
管理员的ID号,永远为 0 (root)
#id 命令+ 用户 ,可以查看用户的id以及组。
#groups + 用户名,可查询某个用户帐号所属的组
#finger [ -l ] +用户帐号、查询用户账号的详细信息,列出用户登录名、终端、登录时间以及个人信息等
1-499 :属于系统用户,让某个程序运行的时候能以某个用户的身份运行。
500-65534:普通用户
65535:Nobody特殊用户(也有可能是65536则,溢出,则为-1,相当于Guest,来宾账号)
二、用户相关配置文件:
/etc/passwd:由以下部分组成:
root : x : 0 : 0 :root :/root :/bin/bash
用户名:密码占位符:UID:私有组ID:描述信息Finger:家目录:默认shell
/etc/shadow:密码存放文件:
1 2 3 4 | [root@station23 ~] # more /etc/shadow root:$6$KncS /2rL $YfiB10z02noObxa1x7WNRAo6lYOfkfw47v8jyfbEDPNKckaen
数字6表示用的是SHA512加密
数字1表示用的是MD5加密 |
/etc/skel,/etc/default/useradd 两个文件包含了默认创建用户时复制所需的文件。
三、创建用户、创建组:
#useradd/adduser UserName
-u:指定UID(不可重复)
-g:指定GID,即指定用户的基本组前提GID要事先存在
-G:指定用户的额外组,组要事先存在
-d:指定家目录的存放位置(该目录事先可不存在)
-c:"描述信息"
-s:指定默认Shell,应该指定/etc/shells文件中出现的shell
-m:创建用户时,强制给用户创建家目录
-M:创建用户,但不创建家目录
-D:default,为useradd命令创建的拥挤指定新的默认值
-r:创建系统用户
#groupadd GrpName
-g GID:创建组并为其指定GID
/etc/group:格式:
组名:组密码:GID:组内成员列表(成员间用逗号分隔)
四、删除用户和组:
删除用户,默认会保留家目录
#userdel UserName
-r:一并删除家目录
#groupdel GrpName
五、修改用户账户信息:
修改用户的属性定义:
#chsh UserName->修改用户默认shell
#chfn UserName->修改用户的备注信息
#usermod UserName
-u:修改UID(不可重复)
-g:修改GID,即指定用户的基本组前提GID要事先存在
-G:默认覆盖原有的附加组;如果是添加,则同时使用-a选项
-d:默认不会迁移用户的家目录,如果要要迁移,则同时使用-m
-c:"描述信息"
-s:指定新shell
-l:新登录名
-e:可以指定用户的过期时间。
-f:
-U:解锁 ---->#passwd -l UserName
-L:锁定用户账号 ---->#passwd -u UserName
#groupmod 命令,用于修改组的信息
-g : 修改GID
-n : 修改组名
#gpasswd
gpasswd -a 用户帐户(号)组名(号) ->添加单个组成员
gpasswd -M 用户帐户1(号)......组名(号) ->批量添加多个成员到组
gpasswd -d 用户帐户(号)组名(号) ->删除组成员
gpasswd -A 用户帐户(号)组名(号) ->指定组管理员
gpasswd 组名 ->设置组密码
gpasswd -r 组名 ->删除组密码
gpasswd -R 组名 ->禁止用户切换到指定的组
#newgroup 组名 ->切换组
六、查看用户的相关信息
#id UserName
-u:只显示UID,与-n一起使用则显示用户名
-g:只显示GID,与-n一起使用则显示基本组名
-G:只显示所有组组,与-n一起使用则显示所有组名
七、#passwd命令: 给用户加密
-l : 用于锁定用户账号
-u : 解锁用户账号
–stdin : (把标准输入改为别的输入)为用户添加密码的时候用非标准输入进行创建密码
-x : 设定密码最长使用期限
-n : 设定密码最短使用期限
密码安全性策略:
足够复杂、够长、交叉应用数字、大小写字母和特殊中的至少三种
尽量避免使用易猜测的密码;定期更换
如果将/etc/shadow中的某个用户密码删除,不是不能登录系统,而是不需要密码即可登录
加密的方式:对称加密
公钥加密
单项加密 (主要目的在于提取数据的特征值,拿到一段数据可以提取这个数据的特征码。)
特点有:1.单项
2.雪崩效应(不管密码有多长,只要初始条件有一点点改动,结果将有巨大的变化)
3.定长输出(无论你输入有多长,而加密有的结果都是一样的。)
经常用的单项加密是
MD5(128bit定长输出) , sha1(160bit定长输出)
用户密码为“!!”指没有密码
“ $1$8kkXoZno$naC13rWnhoKfcMyiZr5qy9/ ”
(1代表是MD5算法)$杂质(盐)$内容
数字6表示用的是SHA512加密
八、修改帐号日期属性
#chage [Option] [Login]
-E:指定账号被锁定的日期<YYYY-MM-DD> -I
-m:指定用户改变密码所间隔的最小天数
-M:指定密码有效的最大天数
-d:指定自从1997年1月1日起密码被改变的天数
-w:指定密码过期前要向用户发出警报的天数
=============================================
权限管理
=============================================
Linux权限管理:
属主---属组---其他
权限:read,write,execute
r w x
文件:
r:可以使用内容查看类的命令来显示其相关内容;
w:可以使用编辑器修改其内容;
x:可以将其发起一个进程;
目录:
r:可以使用ls命令查看目录内容的文件信息;
w:可以创建、删除文件l;
x:可以使用ls -l命令查看目录内容的文件信息,并且可以使用cd命令切换此目录为工作目录;
用户不拥有某位权限,则使用"-"占位;
如:
r-x:可读、可执行;r--:只读
修改文件的属主、属组;仅有管理员可执行:chown,chgrp
该文件权限: chmod
000: --- , 0
001: --x ,1
010: -w- ,2
011: -wx ,3
100: r-- ,4
101: r-x ,5
110: rw- ,6
111: rwx ,7
通过2进制转换为8进制
#chmod命令:
(1)操作3类用户的权限,使用8进制形式;
#chmod [-R] OCTAL-MODE file...
-R:递归更改目录及其内部文件权限
(2)操作指定类别用户的权限:使用u,g,o,a来赋权,基于=或+/-来进行;
#chmod [u|g|o|a] [=|-|+]
u:属主
g:属组
o:其他
a:所有
=:操作制定类别用户的权限
+/-:操作指定类别用户的单个权限
+x:省略前面的u,g,o即表示所有a
(3)参照其他文件的权限为当文件的赋权.
#chmod [-R] --reference=参照文件 需要修改文件
修改文件的属主或属组:chown,chgrp:
-R:递归
--reference=
#chown [option] UserName file --->更改属主
或者:#chown [option] UserName [:|.] GrpName file --->属主、属组同时更改
#chown [option] :GrpName file --->更改属组
#chgrp [option] GrpName file --->更改属组
#umask
创建文件:666-umask
文件默认绝不允许出现执行权限!
如设置:umask 023
666-023=643+1(如果出现将+1)
创建目录:777-umask
root:022
如果用户名和基本组一致:002,否则则为:022
权限应用模型:
进程的属主,是否与文件的属主相同;如果相同,进程则以文件属主的权限来访问文件;否则进程的属主所属的组,是否其中之一与文件的属组相同;如果相同,进程则以文件属组的权限来访问文件;否则进程则以文件的其他用户的权限来访问文件;
转载于:https://blog.51cto.com/maoqiu/1359596
相关文章:
Ubuntu14.04 LTS中安装Ruby 2.4源码操作步骤
(1)、查看是否已安装ruby,执行命令,如下图,可见机子上还没有安装ruby,即使通过apt-get install命令安装也只能安装1.8版本;(2)、从 http://www.ruby-lang.org/en/downloads/ 下载最新稳定版2.4即ruby-2.4.0.tar.gz&a…

图森未来完成2.15亿美元D轮融资,将拓展无人驾驶运输服务
AI科技大本营消息,9月17日,图森未来宣布获得1.2亿美元的D2轮投资,并完成总额为2.15亿美元的D轮融资。D2轮的投资方除了此前已宣布的UPS外,还包括新的投资方鼎晖资本,以及一级供应商万都(Mando Corporation&…

中国互联网公司开源项目调研报告
近年来,开源技术得到越来越多的重视,微软收购GitHub、IBM收购红帽,都表明了开源的价值。国内公司也越来越多的参与开源,加入开源基金会/贡献开源项目。但是,它们到底做得如何呢?为此InfoQ统计了国内在GitHu…

ReSharper 配置及用法
1:安装后,Resharper会用他自己的英文智能提示,替换掉 vs2010的智能提示,所以我们要换回到vs2010的智能提示 2:快捷键。是使用vs2010的快捷键还是使用 Resharper的快捷键呢?我是使用re的快捷键 3: Resharper安装后,会做…
Ubuntu14.04 LTS中升级gcc/g++版本到4.9.4的操作步骤
Ubuntu14.04 LTS中默认的gcc/g版本为4.8.4,如下图,在C11中增加了对正则表达式的支持,但是好像到gcc/g 4.9.2版本才会对正则表达式能很好的支持,这里介绍下Ubuntu14.04 LTS升级gcc/g版本到4.9.4的操作步骤: 1࿰…

华为全球最快AI训练集群Atlas 900诞生
作者 | 胡巍巍来源 | CSDN(ID:CSDNnews)你,和计算有什么关系?早上,你打开手机App,查看天气预报,和计算有关;中午,你打开支付宝人脸支付,买了份宫保…

rabbitmq可靠发送的自动重试机制 --转
原贴地址 https://www.jianshu.com/p/6579e48d18ae https://www.jianshu.com/p/4112d78a8753 git项目代码地址 https://github.com/littlersmall/rabbitmq-access 转载于:https://www.cnblogs.com/hmpcly/p/10641688.html

在Linux下如何安装配置SVN服务
2019独角兽企业重金招聘Python工程师标准>>> Linux下在阿里云上架一个svn centos上安装:yum install subversion 安装成功 键入命令 svnserve --version 有版本信息则进行下一步 1、新建版本库目录 mkdir -p /opt/svndata/repos 2、设置此目录为…

201671030129 周婷 《英文文本统计分析》结对项目报告
项目内容这个作业属于哪个课程软件工程这个作业的要求在哪里软件工程结对项目课程学习目标熟悉软件开发整体流程及结对编程,提升自身能力本次作业在哪个具体方面帮助我们实现目标体验组队编程,体验一个完整的工程任务一: 作业所点评博客GetHu…

C++/C++11中std::string用法汇总
C/C11中std::string是个模板类,它是一个标准库。使用string类型必须首先包含<string>头文件。作为标准库的一部分,string定义在命名空间std中。std::string是C中的字符串。字符串对象是一种特殊类型的容器,专门设计来操作字符序列。str…

你在付费听《说好不哭》,我在这里免费看直播还送书 | CSDN新书发布会
周一的时候,我拖着疲惫的身体回到家中,躺倒床上刷刷朋友圈,什么?周杰伦出新歌了?朋友圈都是在分享周杰伦的新歌《说好不哭》,作为周杰伦的粉丝,我赶紧打开手机上的QQ音乐,准备去听&a…

解决Mysql:unrecognized service错误的方法(CentOS)附:修改用户名密码
2019独角兽企业重金招聘Python工程师标准>>> service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误的方法如下: [rootctohome.com ~]# service mysql startmysql: unrecognized service [rootctohome.co…
Caffe源码中Net文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/net.hpp文件的内容:1. include文件:(1)、<caffe/blob.hpp>:此文件的介绍可以参考:http://blo…

满满干货的硬核技术沙龙,免费看直播还送书 | CSDN新书发布会
周一的时候,我拖着疲惫的身体回到家中,躺倒床上刷刷朋友圈,什么,周杰伦出新歌了?朋友圈都是在分享周杰伦的新歌《说好的不哭》,作为周杰伦的粉丝,我赶紧打开我手机上的QQ音乐,准备去…

【重磅上线】思维导图工具XMind:ZEN基础问题详解合集
XMind是XMind Ltd公司旗下一款出色的思维导图和头脑风暴软件。黑暗的UI设计、独特的ZEN模式、丰富的风格和主题、多分支的颜色等等功能会让你的工作更加便捷与高效。在视觉感官上也会给你带来最佳的体验感。 对于初学者来说,肯定会遇到各种各样的问题,有…

Linux内置的审计跟踪工具:last命令
这个命令是last。它对于追踪非常有用。让我们来看一下last可以为你做些什么。last命令的功能是什么last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制文件,它不能被文本编辑器浏览,比如vi、Joe或者其他软件。这是非常有用…

C++/C++11中std::set用法汇总
一个容器就是一些特定类型对象的集合。顺序容器(sequential container)为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖于元素的值,而是与元素加入容器时的位置相对应。与之相对的,有序和无序关联容器,则根据关键字的值来存储元…

值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(下)
作者 | 黄浴来源 | 转载自知乎专栏自动驾驶的挑战和发展【导读】在近日发布的《值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(上)》一文中,作者介绍了一部分各大公司和机构基于激光雷达的目标检测所做的工作࿰…

java B2B2C源码电子商务平台 -commonservice-config配置服务搭建
2019独角兽企业重金招聘Python工程师标准>>> Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象…

Topshelf:一款非常好用的 Windows 服务开发框架
背景 多数系统都会涉及到“后台服务”的开发,一般是为了调度一些自动执行的任务或从队列中消费一些消息,开发 windows service 有一点不爽的是:调试麻烦,当然你还需要知道 windows service 相关的一些开发知识(也不难&…

C++中nothrow的介绍及使用
在C中,使用malloc等分配内存的函数时,一定要检查其返回值是否为”空指针”,并以此作为检查内存操作是否成功的依据,这种Test-for-NULL代码形式是一种良好的编程习惯,也是编写可靠程序所必需的。在C中new在申请内存失败…

你猜猜typeof (typeof 1) 会返回什么值(类型)?!
typeof typeof操作符返回一个字符串,表示未经计算的操作数的类型。 语法: var num a; console.log(typeof (num)); 或console.log(typeof num) 复制代码typeof 可以返回的类型为:number、string、boolean、undefined、null、object、functi…

阿里云智能运维的自动化三剑客
整理 | 王银出品 | AI科技大本营(ID:rgznai100)近日,2019 AI开发者大会在北京举行。会上,近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者进行技术解读和产业论证。而在AIDevOps论坛上,阿里巴巴高级技术专家滕圣…

Sublime Text2.0.2注册码
直接输入注册码就可以了 ----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC99798F 942194A6 02396E98 E62C9979 4BB979FE 91424C9D A45400BF F6747D88 2FB88078 90F5CC94 1CDC92DC 8457107A F151657B 1D22E383 A997F016 …
Caffe源码中Solver文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/solver.hpp文件的内容:1. include文件: <caffe/solver.hpp>:此文件的介绍可以参考: http://b…

百度大脑金秋九月CV盛典,人脸识别新产品及伙伴计划发布会压轴开启
提起人脸识别你最先想到的是什么?是告别排队,刷脸就能支付的超市;还是告别黄牛,刷脸就能自助挂号建档的医院?其实,“刷脸”的时代早已到来,并且人脸识别技术的发展已经超越你的想象,…

BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序
BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗。 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源。 如果你已经进了ETL这个坑,而且预算有限,并且有大量的活要做; 时间紧&am…

ADO数据库操作
void CSjtestDlg::OnBnClickedButtonAdd() {// TODO: 在此添加控件通知处理程序代码this->ShowWindow(SW_HIDE);DigAdd dig ;dig.DoModal() ;this->ShowWindow(SW_SHOW);m_Grid.DeleteAllItems() ;ADOConn m_Adoconn ;m_Adoconn.OnInitADOConn() ;CString sql ;sql.Forma…
C++中try/catch/throw的使用
C异常是指在程序运行时发生的反常行为,这些行为超出了函数正常功能的范围。当程序的某部分检测到一个它无法处理的问题时,需要用到异常处理。异常提供了一种转移程序控制权的方式。C异常处理涉及到三个关键字:try、catch、throw。 在C语言中…

掌握这些步骤,机器学习模型问题药到病除
作者 | Cecelia Shao编译 | ronghuaiyang来源 | AI公园(ID:AI_Paradise)【导读】这篇文章提供了切实可行的步骤来识别和修复机器学习模型的训练、泛化和优化问题。众所周知,调试机器学习代码非常困难。即使对于简单的前馈神经网络也是这样&am…