Linux基于用户身份对资源访问进行控制
1、用户帐号
root用户是Linux 操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。
由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
在安装Linux操作系统及部分应用程序时,会添加一- 些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系
统或某个程序的正常运行,如bin、daemon、 ftp、 mail等。
2、组帐号
基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号。
用户除基本组以外,额外添加指定的组。
3、UID和GID
root用户的UID和GID号为固定值0
程序用户账号的UID和GID号默认为Centos5,6: 1~499, Centos7: 1~999
普通用户的UID和GID号默认为Centos5,6: 500~65535, Centos7: 1000 ~ 65535
-/etc/passwd |
用户账号文件/etc/passwd:基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。
文件位置:/etc/passwd
如下图所示:
字段解释:
注:上述图中有个占位符“x”,在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一 定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中, 而passwd文件中仅保留密码占位符“x”。
-/etc/shadow |
用户账号文件/etc/ shadow:默认只有root用户能够读取shadow文件中的内容,且不允许直接编辑该文件中的内容。
文件位置:/etc/shadow
如下图所示:
各个字段解释如下:
useradd命令
useradd 【选项】 用户名
常用选项
-u: 指定用户的UID号,要求该UID号码未被其他用户使用。
-d: 指定用户的宿主目录位置(当与-M一起使用时,不生效)。只能用绝对路径指定目录,且不需要事先创建目录
-e: 指定用户的账户失效时间,可使用YYY-MM-DD的日期格式。
-g: 指定用户的基本组名(或使用GID号),对应的组名必须已存在。
-G: 指定用户的附加组名(或使用GID号),对应的组名必须已存在。
-M: 不建立宿主目录。
-s: 指定用户的登录Shell, (比如/bin/bash为可登陆系统,/sbin/nologin和/bin/ false为禁止用户登陆系统)。
示例:
Ⅰ
Ⅱ
passwd命令
passwd 【选项】 用户名
常用选项
-d: 清空指定用户的密码,仅使用用户名即可登录系统。
-l:锁定用户账户,锁定的用户账号将无法再登录系统。
-S:查看用户账户的状态( 是否被锁定)
-U:解锁用户账户。
第二种设置用户密码的方式:echo “密码” | passwd --stdin 用户名
修改用户的账号属性usermod
-u:修改用户的UID号。
-d:修改用户的宿主目录位置。
-e:修改用户的账户失效时间,可使用YYYY -MM-DD的日期格式。
-g: 修改用户的基本组名(或使用GID号)。
-G: 修改用户的附加组名(或使用GID号)。
-s: 指定用户的登录Shell.
-l:更改用户账号的登录名称。
-L: 锁定用户账户。
-U: 解锁用户账户。
将admin1 用户的登录名称更改为master
usermod -l master admin1
示例:
Ⅰ解锁用户
通过上述两图可以思考的是将用户锁定,那么它将不会出现在用户列表上!
Ⅱ修改密码
Ⅲ修改用户名
userdel命令
userdel 【选项】 用户名
添加-r选项时,表示连用户的宿主目录一并删除
文件来源
- useradd命令添加一个新的用户账号后会在该用户的宿主
目录中建立一些初始配置文件.- 这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏
文件。
附录:用户初始配置文件如下:
用户宿主目录下的初始配置文件只对当前用户有效 |
~/.bash_ profile
#此文件中的命令将在该用户每次登录时被执行,它会设置一些环境变量,并且会调用该用户的~/.bashrc文件
~/.bashrc
#此文件中的命令会在每次打开新的bash shel1时(也包括登录系统)被执行,并且会调用/etc/bashrc文件
~/.bash logout
#此文件中的命令将在用户每次退出登录或退出bashshell时执行
全局配置文件对所有用户有效 |
/etc/profile
#这个文件是为系统全局变量配置文件,可通过重启系统或者执行source /etc/profile 命令使profile文件被读取
/etc/profile.d/
#这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本
/etc/bashrc
#每一个运行bash shell的用户都会执行此文件,可通过执行bash命令打开t个 新的bash shell时,使bashrc文件被读取
示例:
Ⅰ在bash里面设置一下变量(这里感觉相当于设置自己平时喜欢的快节方式一样)
最近在工作中用到了 Hbase 这个数据库,也顺便做了关于 Hbase 的知识记录来分享...
12月13日消息外媒 Windows Latest 报道,安全性和性能提升在网页浏览器中总是受...
如何在 ASP 里建立表格? % Dim conn Set conn = Server.CreateObject("ADODB.Co...
Spring3.0配置多个事务管理器(即操作多个数据源)的方法 大多数项目只需要一个...
文章大纲 引言 一、repo 概述 1、repo的工作原理概述 2、repo 库的主要结构**rep...
介绍# 响应压缩技术是目前Web开发领域中比较常用的技术,在带宽资源受限的情况下...
经过我修改ConnectorServlet.java和SimpleUploaderServlet.java两个文件,重新生...
JSP 开发之Servlet解决网页缓存问题 (1)我们为什么要防止游览器页面缓存的问题...
如何使用 Apache 在本地配置出多个虚拟主机呢?而且使用不同的“域名”来访问本...
Taglib指令介绍 Taglib指令,其实就是定义一个标签库以及自定义标签的前缀。 比...