一.用户账号类型
1.1用户
二.组账号
三.uid
四.用户账号管理
五.组管理
六.权限
七.三种特殊权限
1.1用户
Linux下有三大用户类型
1.超级管理员:最高权限拥有者 root root 用户是 Linux 操作系统中默认的超级用户账号,对本 主机拥有至高
2.普通用户: 权限受限的用户,账号需要由 root 用户或其他管理员用户创建,拥有的权限受
到一定限制,处理问题受到限制,一般只在用户自己的宿主目录中拥有完整权限。
3.程序用户: 不是给人用的,是给程序使用的用户。在安装 Linux 操作系统及部分应用程序时, 会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维 持系统或某个程序的正常运行
二.组账号
组就是将多个用户集合起来,有相同属性的一类人,统一分配某种相同的权限(开通或关闭)。
1基本组:一个人有且只有一个组。在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定。建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组, 这个组就是私有组,这个组默认只容纳了一个用户。
2.附加组:可有可无,除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定
谁在前面谁是 基本组, 后面的都是附加组
三.uid
Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID。
生成用户的时候,会自动分配一个 uid 的账号
系统去分别用户的时候不是已以用户名 而是以 uid号
root 不一定是超级管理员
uid=0 的才是超级管理员
uid 取值的范围
0 是超级管理员
程序用户=系统用户
centos7登录用户是从1000起到60000
centos6 500~60000
系统用户:1-499
普通用户:500+
GID,与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity,组标识号)。root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1~499,500~60000 的 GID 号默认分配给普通组使用。
四.用户账号管理
/etc/passwd
存放用户信息文件。系统上所有的用户信息 都存在这个文件中
root : x : 0 : 0 : root : /root : /bin/bash
root:用户名
x:密码占位符
0 : uid 用户编号
0: gid 组编号
root: 备注
/root: 家目录的位置
/bin/bash:用户默认加载的 shell 环境
/etc/shadow 存放用户信息密码
存放 用户密码信息的文件
root:$6$4V92DDnjpoaeXmmD$Dx./:18318:0:99999:7: : :
第一字段:root:用户名
第二字段:$6$4V92DDnjpoaeXmmD$Dx:算法加密后密码 如果此处 为* !! 禁止登陆
第三字段18318: 从1970.1.1 (linux 诞生的日期) 到 今天 过了19318
第四字段:0: 代表不限制 更改密码的时间 ,如果写10 代表10天内不能修改
第五字段:99999:密码 有效期 约等200年 永久
第六字段:7:密码到期前 7天 提醒你
第7字段: 密码过期后的宽限天数 30 天 还能登陆
第8字段:账号失效时间
第九字段:无用字段
vim /etc/shadw 只有超级用户才能打开
添加用户
useradd
使用 useradd 等于 往 /etc/passwd 文件里加了一条用户信息
使用 passwd 改密码 等于 修改 /etc/shadow 的 第二字段
基本用法:
useradd [选项] 用户名
对新建用户的基本信息进行修改
选项:
-u 指定uid
-d 指定家目录
-M 不建立/家目录
-s 指定shell类型
-e 账户失效时间 yy-mm-dd
-g 指定基本组的 gid
-G 指定附加组的gid
-
useradd lisi
什么选项也不加
1生成同名的组 ,并且这个组是用户的基本组
2会生成一个同名的家目录 /home/lisi
3往后按顺序生成
指定家目录 不需要先有家目录
useradd liqi -d /mnt/aaa
不建立家目录 -M
指定uid
useradd liwu -u 10086
-s /sbin/nologin 不让用户登录
建立一个用户 指定uid 不建加目录 不让这个用户登录
指定过期时间 -e yy-mm-dd
五.组管理
指定基本组 -g
指定附加组 -G
passwd
修改密码
passwd 选项 用户名
passwd 用户名 修改密码
选项:
-l 锁定用户 ,不让用户登录
-u 解锁
-S 查看是否锁定
-d 清空密码,不需要密码登录
passwd -l lisi 锁定lisi 不让用户登录
passwd -S 查看是否锁定
passwd -u 解锁 -f 强制解锁
useradd 新建用户的信息进行修改
已存在的用户需要 使用 usermod 进行修改
选项:
-l 更改用户名
-u 指定uid
-d 指定家目录
-M 不建立家目录
-s 指定shell类型
-e 账户失效时间 yy-mm-dd
-g 指定基本组的 gid
-G 指定附加组的gid
-L 锁定用户 passwd -l 一样
-U 解锁用户 passwd -u 一样
修改用户名 -l
修改shell 环境
userdel
删除 用户 -r 连家目录一起删除
.bash_logout
退出用户后 ,关机之前 会执行此文件里面的命令
.bash_profile 先
.bashrc 后,备胎
进入用户后会执行里面的所有命令
userdel liwu 删除用户
userdel /home/ -r连家目录一起删除
组
建立组 cat /etc/group |grep cxk
格式 groupadd 组名
gpasswd 往组 添加 删除用户
-a 加
-d 减
-M 批量加
查看用户登录信息
[root@localhost ~]#yum install finger -y
user 登录到系统用户
TTY 登录终端
FROM 表示用户从哪里登陆进来,一般显示远程登陆主机IP地址或者主机名
LOGIN@ 用户登录日期时间
IDLE 表示某个程序上次从终端开始执行到现在所持续时间
六.权限
文件目录的权限和归属
1.访问权限
读取r:允许查看文件内容,显示目录列表
写入w:允许修改文件内容,允许在目录中新建移动删除文件或子目录
可执行x:允许运行程序,切换目录
归属:拥有该文件或目录的用户账号 u
属组:拥有该文件或目录的组账号 g 其他人 o
1.一个普通能被删除和自身权限有关么?
和本身没有关系,只和所在目录有关 必须有 w x
2.目录必须要有执行权限 ,否则任何事情做不了,目录的最小权限x
权限命令 chmod
rwx rwx rwx --- --- ---
属主 属组 其他 g 组 u属主 o 其他 a 所有
r-- -w- --x
只有读 只有写 只有执行
100 010 001 二进制
4 2 1 7最高
读 写 执行
二进制 十进制
1 1
10 2
100 4
4读 2写 1执行
g=rwx =赋予rwx权限
g=r 赋予组只有读
g+x 组在原有基础上加上执行权限
g-x 在原有基础上减去执行权限
644 读写 读 读
umask 新建文件目录的权限由umask来决定 文件的最高权限666
umask 的值可以用来保留在创建文件权限 文件夹最高权限777
为了安全考虑新建文件666权限,怕是病毒
实现方式:
新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
新建目录的默认权限: 777 - umask =755
非特权用户umask默认是 002
root的umask 默认是 022
文件不可能是奇数,只有2.4所以奇数自动加一
改属主和改属组
格式 chmod 777 文件/文件夹
chown 属主:属组 文件
chown 属主 文件
chown :属组 文件
-R递归
rm -rf
cp /etc/passwd
ls passwd
chmod 770
(m代表启用控制列表,u代表用户张三)
面试题
文件一定要有读权限
七.三种特殊权限
suid 一般用在命令 万能权限
which passwd
任何用户当使用suid时候对所有文件都有效果谁用都行,权限拉满,想干嘛干嘛
sticky 位 粘贴位 除了超级管理员和属主其他人动不了文件,权限满了也一样
# Sticky 位
#具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
#在目录设置Sticky 位,只有文件的所有者或root可以删除该文件
#sticky 设置在文件上无意义
#Sticky权限设定:
chmod o+t DIR...
chmod o-t DIR..
[root@localhost aa]#chmod o+t /opt/aa
# 添加Sticky 位
[root@localhost opt]#chmod o-t /opt/aa
#减少Sticky 位
sgid也是一样
#SGID
[root@localhost aa]#chmod g+s /usr/bin/vim
[root@localhost aa]#ll /usr/bin/vim
-rwxr-sr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim