目录
1、useradd命令(创建用户):useradd [选项] 用户名
2、passwd 命令(修改用户密码):passwd [选项] 用户名
3、usermod命令(修改用户属性):usermod [选项] 用户名
4、userdel 命令(删除用户):userdel [选项] 用户
groupadd命令 :groupadd [选项] 组账号名
ACL:Access Control List,实现灵活的权限管理
重点先导
用户:
useradd 添加用户
passwd 修改密码
usermod 修改用户属性
权限:
chmod 赋予权限,更改权限
chown 修改文件所有者和所在组
Linux安全模型(3A认证)
Authentication: 认证,验证用户身份、用户名和密码
Authorization: 授权,不同的用户设置不同权限
Accouting|Audition: 审计
当用户登录成功时,系统会自动分配令牌 token,包括: 用户标识和组成员等信息双因子验证
用户账号和组账号概述
Linux基于用户身份对资源访问进行控制
用户帐号:
1、超级用户
2、普通用户
3、程序用户(不可登录,程序使用)
组帐号:
1、基本组(私有组)
2、附加组(公共组)
OUID和GID:
1、UID (UserIDentity,用户标识号)
2、GID (Group IDentify,组标识号)
用户帐号类型
用户的 (uid) 身份证
Linux中每个用户是通过 User ld (UID)来唯一标识的新建普通用户 1-60000动分配
1、超级管理员:
root,0 uid为o
2、程序用户:
Centos 6:1-499
Centos 7:1-999
3、普通用户:
CentoS6:500~60000
Centos7:1000~60000
一、添加用户账号
1、useradd命令(创建用户):useradd [选项] 用户名
常用选项:
-U: 指定用户的 UID 号 例2000(1000--60000),要求该 UID 号码未被其他用户使用·
--d: 指定用户的宿主目录位置 (当与-M 一起使用时,不生效)。
-e: 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-g: 指定用户的基本组名 (或使用GID 号)
-G: 指定用户的附加组名 (或使用GID号)
-M: 不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录
-s:指定用户的登录 /sbin/nologin
-r:创建系统用户 CentOs 6之前:D<500,CentOs7 以后:D<1000 系统用户 = 程序用户
-c: 备注信息
2、passwd 命令(修改用户密码):passwd [选项] 用户名
常用选项:
不添加任何选项:更改当前用户密码
-d : 清空用户密码(生产环境中不建议使用)
-l : 锁定用户账号
-S : 查看被锁定用户(是否被锁定)
-u:解锁用户账号
3、usermod命令(修改用户属性):usermod [选项] 用户名
常用选项
-l :修改用户名
-L :锁定用户账户
-U :解锁锁用户账户
以下选项与useradd命今中的含义相同
-u:指定用户的 UID 号
-d:指定用户的宿主目录位置
-e:指定用户的账户失效时间
-g:指定用户的基本组名
-G:指定用户的附加组名
-s:指定用户的登录
4、userdel 命令(删除用户):userdel [选项] 用户
常用选项
-r :连同删除用户家目录
无法删除用户解决方法:
当我们想删除某个用户的时候,出现 user xxx is currently used by process xxx ,可能的原因是
创建用户user1之后,使用su命令切换到user1用户下,
之后又想删除user1用户,使用su root切换到root用户下,
然后在 root用户下使用userdel user1。
出现上述情况的根本原因在于切换回root用户之后,user1还被某个进程占用。
解决方案:
- ctrl+d(退出当前用户) 第一次使用ctrl+d退出root用户,回到user1用户;
- 第二次使用ctrl+d退出user1用户,此时会返回到root用户
3、再按ctrl+d退出登陆连接,此时使用userdel user1 可以正常删除
用户账号的初始配置文件
文件来源:
新建用户帐号时,从 /etc/skel 目录中复制而来
ocat /etc/default/useradd
主要的用户初始配置文件:
~/.bash_profile(开机时)
~/.bashrc(开机时)
~/.bash_logout(关机时)
文件位置:
·/etc/passwd 存放保存用户名称、宿主目录、登录Shell 等基本信息
UID: 用户身份编号(1000)
shell:用户默认使用shell(/bin/bash),
添加组账号
groupadd命令 :groupadd [选项] 组账号名
常用选项:
-a : 将用户加入组
-d : 将用户删除出组
-M : 批量加减
查看用户信息:
finger命令:finger [用户名]
W
users
who
目录与文件权限
权限类别:
r (可读):允许查看文件的类容
w(可写):允许修改文件的类容
x (可执行):允许运行程序、切换目录 (一般是绿色的)
一个文件的权限 需要区别三类人:
1、文件的拥有者:属主
2、文件的拥有组:属组
3、其他人other其他用户
rw- : 属主
r-x : 属组
r-x : 其他
- 表示没有权限
1 表示真,0 表示假
r w x
0 0 1
0 1 0
1 0 0
二进制转换成十进制
4 2 1
文件最大权限 666 :与目录相比,文件没有执行权限
目录最大权限 777 :目录自带执行权限,cd 靠的就是执行权限
对于文件夹而言 必须有执行的权限,否则无法进行任何操作x是文件夹的最小权限
无论在什么情况下 文件夹一定要有执行(x)权限
一个普通文件可以被删除,和这个文件本身权限有关么?
和文件身没有关系 与文件所在文件夹有关
设置文件和目录的权限
chmod命令(赋予权限,更改权限):chmod 777(权限) 文件或目录
常用选项:
-R : 递归修改指定目录下所有子项的权限
改变文件或目录的属主和属组
chown 命令(修改文件所有者和所在组):
格式一:chown 所有者 : 所在组 文件或目录
格式二:chown 所有者 . 所在组 文件或目录
chown 所有者 文件 ------> 只修改所有者
chown :所在组 文件 ------> 只修改所在组
chown . 所在组 文件 ------> 只修改所在组
常用选项:
-R :递归修改指定目录下所有文件、子目的归属
设置目录或文件初始权限
umask命令(赋予目录或文件初始权限的反掩码):umask 权限 文件或目录
文件没有执行权限,故算出来的反掩码若是奇数 则需要往前进一
例: umask 024
则建立的文件和目录的默认权限就为 642和753
三种特殊权限
suid:
让普通用户临时拥有该文件的属主的执行权限,suid权限只能应用在二进制可执行文件(命令)上,而且suid权限只能设置在属主位置上。
sgid:
sgid权限一般应用在目录上,当一个目录拥有sgid权限时,任何用户在该目录下创建的文件的属组都会继承该目录的属组。
Sticky:
sticky权限一般针对目录来设置,作用是只允该目录下的文件的创建者删除自己的创建的文件,不允许其他人删除文件。(root用户除外,因为root用户是超级管理员),而且sticky权限只能设置在other位置上。
ACL:Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
CentOS7 默认创建的xfs和ext4文件系统具有ACL功能
CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加