Linux的用户
用户是必须的吗
用户:标识计算机上的资源的归属
保存账号或密码的数据库文件
/etc/passwd:保存系统中的全部用户名
/etc/group:保存系统中的全部用户组名
/etc/shadow:保存系统中的各个用户的密码
/etc/gshadow:保存系统中的各个用户组的密码
用户和用户组
用户:登录系统的用户名
用户组:多个用户的集合
用户组的作用:方便多个用户的批量管理
用户身份标识
计算机每一个用户设置唯一数字
当计算机识别用户的时候,识别的是数字
这个数字是用户的uid
用户组的身份标识:gid
/etc/passwd文件详解
root:x:0:0:root:/root:/bin/bash
第一段:用户名
第二段:密码占位符,为了安全,放到了另一个文件中(/etc/shadow)
第三段:用户的uid
第四段:用户的gid
第五段:用户的描述信息
第六段:用户的家目录
第七段:用户的shell类型
注意点:这个文件的每一行都是一个用户
常见的shell类型
/bin/bash:默认的shell类型,可以登录系统
/sbin/nologin:无法登录系统
用户的分类
一、管理员用户
uid:0
特点:1、默认只有一个,就是root;2、root用户没有任何的权限约束
二、系统用户
uid:1-999
特点:
1、在Linux安装完成后或安装某个程序自动生成的用户;
2、这类用户默认无法登录系统
三、普通用户
uid:1000+
特点:
1、需要命令来创建
2、普通用户的权限非常小,通常仅仅只能在自己的家目录下进行操作
3、默认该用户的家目录是在/home下和用户同名的目录
用户组分类
用户的基本组
在/etc/passwd中的第四段的gid,所指的就是用户的基本组
用户的附加组
除主组以外的组,就是附加组
注意点
1、一个用户可以属于多个组
2、一个用户只能有一个主组,其他就是附加组
3.在用命令创建用户的时候,默认会创建一个组,这个组名和用户名是相同的(默认该组就是用户的主组)
Linux的文件的属性
属主:文件属于谁,谁创建的文件,文件的属组就是谁
属组:设置文件对一个特定用户组所有的权限
属主、属组默认只有一个
如果这个用户不属于属主和属组,那个这个用户就是属于其他用户
三类用户
属主
属组
其他用户
创建用户
命令:useradd
作用:创建新用户
格式:useradd [选项] 用户名
选项
-c "string":设置新用户的描述信息
-d 目录路径:设置用户的家目录
-g gid:这只用户的gid
-G gid:指定用户的附加组
-m:在创建用户的时候,如果家目录不存在,则创建用户的家目录(默认使用该选项)
-M:不自动创建用户的家目录
-r:创建系统用户
此选项创建用户的特点
1、默认该用户能登录系统;2、默认用户无家目录;3、用户uid<999;4、shell类型是:/bin/bash
-s shtype:指定用户的shell类型
sell类型:
/bin/bash
/sbin/nologin
-u uid:指定用户的uid
groupadd命令
作用:新建用户组
格式:groupadd 组名
选项
-g:指定用户组的组id
例:新建一个组,组id是1002
groupadd -g 1002 组名
id命令
作用:显示指定用户的id信息
格式:id [选项] 用户名
选项
-u:显示用户的uid
-g:显示用户的gid
-G:显示用户的全部组id
passwd命令
作用:修改用户的密码(也可以给用户设置密码)
格式:passwd [选项] 用户名
passwd 用户名 :修改指定用户的密码
passwd:修改当前用户的密码
默认只有root(管理员用户)能修改其他用户的密码,其他用户只能修改自己的密码
选项
-l:锁定用户(只有root用户才能进行此操作)
-u:解锁用户
userdel命令
作用:删除用户
格式:userdel 选项 用户名
选项
-r:再删除用户的时候,同时删除用户的家目录
usermod命令
作用:修改用户的基本信息
格式:usermod 选项 用户名
选项
-g:修改基本组(如果这个组不存在,要先创建这个组)
-G:修改附加组
-u:修改用户的uid
-c:修改用户的描述信息
-d:修改用户的家目录
-s:修改用户的shell类型
-l:修改用户的用户名
su命令
作用:切换用户
选项
-c:普通用户用管理员身份执行命令 "
例:su -c"touch /tmp/aa" root
注意点:su命令切换用户后,返回需要执行命令:exit
权限
r:读、w:写、x:执行
文件的权限
r:可以执行cat、head等命令读取文件中的内容
w:可以用vi/vim或重定向等操作向文件中写入内容或修改内容
x:可以执行文件
目录的权限
r:可以执行ls命令,查看目录下的文件
w:可以在目录执行文件创建和删除等操作
x:可以执行cd命令
用户的角色
属主用户:u
属组用户:g
其他用户:o
全部用户:a
文件权限位
-rw-r--r--
解释说明
- :文件类型:一般文件(d:目录文件;l:链接文件)
rw- :属主的权限,具有读写的权限(2-4位)
r-- :属组的权限,具有读权限(5-7位)
r-- :其他用户的权限,具有读权限(8-10位)
注意点:
每一类用户的权限顺序都是:读、写、执行
如果有相对应的权限,就会出现相对应的字符,没有则会显示-
chown命令
作用:修改文件的属主
格式:chown username 选项 filename
选项
-R:在修改目录的时候,将目录下的文件一并修改
例:修改a.txt文件的属主为tom
chown tom a.txt
chgrp命令
作用:修改文件的属组
格式:chgrp username 选项 filename
选项
-R:在修改目录的时候,将目录下的文件一并修改
例:修改a.txt文件的属组为root
chgrp root a.txt
chmod命令
作用:修改文件的权限
格式:chmod 赋权 文件名
方式
+:增加权限(在原有的基础上增加)
例:chmod o+w a.txt 给其他用户增加写的权限
-:去除权限(在原有的基础上去除)
例:chmod a-w a.txt 给属主用户减去写的权限
=:将权限修改为指定的权限(与原权限无关)
例:chmod a=w a.txt 给全部用户修改为写的权限
数字表示权限
0:无权限
1:执行权限
2:写权限
4:读权限
注意点
如果是一个数字修改的是其他用户
如果是两个数字修改的是其他用户和属组
如果是三个数字修改的是属主、属组和其他用户
用户家目录模版:/etc/skel
新用户的家目录的生成
将/etc/skel复制到/home下,改名与新用户名相同
将这个目录的属主、属组改为该用户
将目录的权限改为700
/etc/login.defs:控制新建用户的默认属性
#QMAIL_DIR /var/spool/mail
制定新用户的邮箱位置
PASS_MAX_DAYS 99999
新用户密码最长有效期
PASS_MIN_DAYS 0
新用户修改密码的最短时间
PASS_MIN_LEN 5
用户的密码最短长度
PASS_WARN_AGE 7
密码到期前警告时间长度
UID_MIN
新建用户的默认uid最小值
UID_MAX
新建用户的默认uid最大值
CREATE_HOME
默认创建家目录
USERGROUPS_ENAB
当前用户组中没有用户,是否删除用户组
ENCRYPT_METHOD SHA512
指定加密算法