用户和用户组的基本概念:docker
Linux的用户是经过帐号和密码登陆到Linux系统的,而Linux主机并不会直接识别帐号和密码,它只认识ID。那么Linux系统用户的ID分为如下类别:shell
系统管理员:root,0-UIDide
普通用户:1-65535-UID测试
普通用户有分为:系统用户和登陆用户加密
系统用户:1-999-UIDspa
登陆用户: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:保存组账号的密码信息
用户管理常见命令的常见用法:
一、groupadd:表示建立一个新的用户组。
-g 指定用户组的UID(默认是上一个组的GID+1)
-r 建立系统组
二、groupdel:删除组
三、groupmod:修改组属性
-g 表示修改GID
-n 表示修改组名
四、useradd:表示建立用户
-u:表示指定用户的UID
-g:表示指定用户的基本组名(此组事先必须存在)
-c:表示指明注释信息
-d:表示以指定路径为用户的家目录,经过复制/etc/skel目录,并重命名实现。指定的家目录路径若是事先存在则不会为用户复制环境的配置文件
-r:表示建立系统用户
-G:指定用户的附加组名(或GID号)多个附加组用逗号隔开
-M:表示不为用户建立主目录
-s:指定用户的默认的Shell可用的shell列表在/etc/shells文件中
-D:表示显示建立用户的默认配置
五、usermod:修改用户属性信息
-u:表示修改用户的ID
-g:表示修改用户所属的基本组
-G:表示修改用户的附加组,原来的会被覆盖。若是想保留原来的附加组,则使用-a选项,与-G一同使用则表示增长附加组。
-c:表示修改注释信息
-d:表示修改用户的家目录。用户原有的家目录文件不会被转移代新的目录中,而若是和-m选项一同使用则表示将原来的家目录移动为新的家目录。
-l:表示修改用户名
-s:表示修改用户的默认的shell
-L:锁定用户的密码
-U:解锁用户的密码
六、userdel:删除用户
-r:表示在删除用户的同时,删除用户的家目录
七、passwd:修改用户的密码
#passwd username 修改指定用户的密码,仅root有此权限。Root不须要知道其余用户原来的密码。
-l、-u:表示锁定和解锁用户的密码
-d:表示清除用户的密码
-e:过时期限
-i:非活动期限
-n:密码的最短使用期限
-x:密码的最长使用期限
-w:警告期限
--stdin:
eg:#echo ‘111111111’ | passwd --stdin username
将某用户的密码设置为111111111
八、gpasswd 设置组账号密码、添加/删除组成员
-a:向组内添加一个用户
-d:从组内删除一个用户成员
九、newgrp:临时切换基本组
十、chage:改密码的 过时信息
十一、id:查看用户的相关ID信息
-u:显示ID
-g:显示基本组的GID
-G:显示全部的附加组
-n:显示name
十二、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:表示递归
一、owner只改属主
二、owner: group 修改属主和属组
三、group只修改属组
chgrp:修改文件的属组
umask:文件或目录建立时的遮罩码,遮罩码就是建立一个文件或目录时的默认权限
文件的默认遮罩码是666-umask 目录的默认遮罩码是777-umask
umask命令
umask:查看umask值
umask #:设定umask值
install命令 复制文件和设置属性
单源和多源复制
-d:建立空目录
-m:设定目标文件的权限,默认是755
-o:设定目标文件的属主
-g:设定目标文件的属组
mktemp命令 建立临时文件
-d:建立临时目录
-u:用于测试 dry run