用户和用户组的基本概念:
Linux的用户是通过账号和密码登录到Linux系统的,而Linux主机并不会直接识别账号和密码,它只认识ID。那么Linux系统用户的ID分为以下类别:
系统管理员:root,0-UID
普通用户:1-65535-UID
普通用户有分为:系统用户和登录用户
系统用户:1-999-UID
登录用户:1000-65535-UID
Linux用户组(GID)的分类:
管理员组:root,0(GID)
普通用户组:1-65535(GID)
普通用户组又分为:
系统组:1-999(GID)
登录用户组1000-65535(GID)
一个用户可以有多个不同的组,叫做用户的基本组(主组)和附加组。基本组的组名和用户名相同,只包含一个用户,也叫私有组。基本组之外的组就是用户的附加组。
与Linux用户和组相关的配置文件为/etc/passwd,此文件记录用户和用户的属性信息。
可以通过whatis passwd来查看起对应的配置文件的帮助信息。
或者也可以通过#man 5 passwd命令行去查看。
name:password:UID:GID:GECOS:directory:shell
分别表示的信息是:用户名:密码:UID:GID:用户的注释信息:用户的家目录:用户默认的shell类型。
组的相关的配置文件/etc/group。
和passwd一样可以通过命令行去查看此配置文件的帮助信息。
group_name:password:GID:user_list
分别表示的信息是:组名:密码:GID:以此组为附加组的用户列表。
/etc/shadow
保存用户的密码、账号有效期等信息,每一行对应一个用户的密码记录,九个字段
用户名:加密密码:最近修改密码时间:密码最短有效期:密码最长有效期:密码的警告时间段:密码禁用期:账号过期日期:保留字段。
当用户登录系统时,系统通过比对事先存储的信息与登录时提供的信息是否一致。
组配置文件保存的路径:
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息
用户管理常见命令的常见用法:
1、groupadd:表示创建一个新的用户组。
-g 指定用户组的UID(默认是上一个组的GID+1)
-r 创建系统组
2、groupdel:删除组
3、groupmod:修改组属性
-g 表示修改GID
-n 表示修改组名
4、useradd:表示创建用户
-u:表示指定用户的UID
-g:表示指定用户的基本组名(此组事先必须存在)
-c:表示指明注释信息
-d:表示以指定路径为用户的家目录,通过复制/etc/skel目录,并重命名实现。指定的家目录路径如果事先存在则不会为用户复制环境的配置文件
-r:表示创建系统用户
-G:指定用户的附加组名(或GID号)多个附加组用逗号隔开
-M:表示不为用户创建主目录
-s:指定用户的默认的Shell可用的shell列表在/etc/shells文件中
-D:表示显示创建用户的默认配置
5、usermod:修改用户属性信息
-u:表示修改用户的ID
-g:表示修改用户所属的基本组
-G:表示修改用户的附加组,原来的会被覆盖。如果想保留原来的附加组,则使用-a选项,与-G一同使用则表示增加附加组。
-c:表示修改注释信息
-d:表示修改用户的家目录。用户原有的家目录文件不会被转移代新的目录中,而如果和-m选项一同使用则表示将原来的家目录移动为新的家目录。
-l:表示修改用户名
-s:表示修改用户的默认的shell
-L:锁定用户的密码
-U:解锁用户的密码
6、userdel:删除用户
-r:表示在删除用户的同时,删除用户的家目录
7、passwd:修改用户的密码
#passwd username 修改指定用户的密码,仅root有此权限。Root不需要知道其他用户原来的密码。
-l、-u:表示锁定和解锁用户的密码
-d:表示清除用户的密码
-e:过期期限
-i:非活动期限
-n:密码的最短使用期限
-x:密码的最长使用期限
-w:警告期限
--stdin:
eg:#echo ‘111111111’ | passwd --stdin username
将某用户的密码设置为111111111
8、gpasswd 设置组帐号密码、添加/删除组成员
-a:向组内添加一个用户
-d:从组内删除一个用户成员
9、newgrp:临时切换基本组
10、chage:改密码的 过期信息
11、id:查看用户的相关ID信息
-u:显示ID
-g:显示基本组的GID
-G:显示所有的附加组
-n:显示name
12、su:switch user 用户切换
su - username /su -l username 表示登录式切换,重新读取用户的配置文件来重新初始化。
su username 表示非登录式切换,不会读取目标用户的配置文件进行初始化。
-c:eg:
#su - docker -c ‘whoami’-----------docker 命令引用
用户的权限管理:
用户对于文件或目录的访问权限有三种分别是:
r:readable 可读的 , 4
w:writable 可写的 ,2
x:excutable 可执行的 , 1
而对于文件或者目录的访问者也有三种分别是:
user:属主,u
group:属组,g
other:其他,o
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
进程对文件或目录的访问权限应用模型:访问者的访问权限与文件或目录的属主是否相同,如果相同,应用属主权限,否则检查进程的发起者是否属于属组,如果属于,则使用属组权限访问,如果不同,则使用其他访问权限访问。
被访问的对象如果是文件则:
r:便是可获取文件的数据
w:表示可修改文件的数据
x:可将此文件发起运行为进程
被访问的对象如果是目录则:
r:可用ls命令获取其下的所有文件列表
w:可修改此目录下的文件列表
x:可cd至此目录中,且可使用ls -l获取文件详细属性信息
权限的表示方法:
权限、 二进制、 八进制
——— 000 0
——x 001 1
—w— 010 2
—wx 011 3
r—— 100 4
r—x 101 5
rw— 110 6
rwx 111 7
权限管理命令:
chmod
-R:表示递归
chmod u= 、g= 、o=、ug= ..........
chmod u+ 、g+ 、o+、ug+ ..........
chmod u- 、g- 、o-、ug- ..........
chmod 660............... file
chmod ......--reference=rfile file........引用参考文件
从属关系管理命令:
chown命令
chown [OPTION]....[OWNER][:[GROUP]] FILE......
-R:表示递归
1、owner只改属主
2、owner: group 修改属主和属组
3、group只修改属组
chgrp:修改文件的属组
umask:文件或目录创建时的遮罩码,遮罩码就是创建一个文件或目录时的默认权限
文件的默认遮罩码是666-umask 目录的默认遮罩码是777-umask
umask命令
umask:查看umask值
umask #:设定umask值
install命令 复制文件和设置属性
单源和多源复制
-d:创建空目录
-m:设定目标文件的权限,默认是755
-o:设定目标文件的属主
-g:设定目标文件的属组
mktemp命令 创建临时文件
-d:创建临时目录
-u:用于测试 dry run