用户账户和组账号概述
-
Linux基于用户身份对资源访问进行控制
-
用户账号
- 超级管理员:权限最高的用户
- 普通用户:权限受到限制的用户
- 程序用户:不是给人登录用的
-
组账号
- 基本组(私有组):一定要有,有且只有一个
- 附加组(公共组):可有可无,可以有多个
-
UID和GID
-
UID(User IDentify,用户标识号):用户的uid为0,就是超级管理员,不是因为它叫“root”
-
GID(Group IDentify,组标识号)
-
系统是靠UID来区分用户身份的
-
Centos7的UID范围
- 超级管理员0
- 普通用户1000-60000
- 程序用户1-999
-
Centos6的UID范围
- 超级管理员0
- 普通用户500-60000
- 程序用户1-499
-
-
用户账号文件/etc/passwd
-
保存用户名称、宿主目录、登录Shell等基本信息
- 文件位置:/etc/passwd
- 每一行对应一个用户密码记录
-
root: x : 0:0:root:/root:/bin/bash
- root:用户的名字
- x :密码占位符
- 0:uid
- 0:gid
- root:备注信息
- /root:家目录位置
- /bin/bash:登陆时默认加载的shell类型
man 5 passwd可以查询该文件的信息
密码文件Shadow
-
shadow文件
-
文件位置:/etc/shadow
作用:存放密码及密码策略的文件
zhangsan:3/O6NuAjdnApLp2f$:19818:0:99999:7:::
- zhangsan:用户名
- 3/O6NuAjdnApLp2f$:加密的密码
如果第二列是!!或*该用户不可以登录到系统中,如果为空代表该用户密码可以直接登录
- 19818:上次修改密码的时间
1970.1.1到修改密码那天一共过了19818天
- 0:最短修改密码间隔的时间,0代表不限制下次修改密码的时间
如果该项为3,今天修改密码后,想再次修改密码,需要3天以后
- 99999:密码有效期为99999天
9999天约等于273年(约等于永久有效)
- 7:密码到期前7天提醒你
- 空:密码宽限时间
如果为3,密码到期后还可以登录3天
- 空:账户失效时间
1970.1.1+失效天数=失效日期
- 保留字段:暂未未启用
man 5 shadow可以查询该文件的信息
命令
useradd
useradd 用户名
- 新建一个用户
[root@localhost /]# useradd wangyue
[root@localhost /]# cat /etc/passwd | grep "wangyue"
wangyue:x:1003:1003::/home/wangyue:/bin/bash
特点
- 自动建立一个同名的基本组
- 自动建立一个同名的家目录,在/home下
useradd常用选项(默写)
-
-u:指定uid
[root@localhost ~]# useradd -u 1100 wangwu [root@localhost ~]# cat /etc/passwd|grep "wangwu" wangwu:x:1100:1100::/home/wangwu:/bin/bash -
-s指定登录shell类型
[root@localhost ~]# useradd lisi -s /sbin/nologin [root@localhost ~]# cat /etc/passwd|grep "lisi" lisi:x:1112:1112::/home/lisi:/sbin/nologin -
-M不建立家目录
[root@localhost ~]# useradd test -M [root@localhost /]# cd /home [root@localhost home]# ls huang list
用法:useradd 【选项】 【用户名】
useradd lisi -u 1111 -s /sbin/nologin -M
[root@localhost home]# useradd lisi -u 1111 -s /sbin/nologin -M
[root@localhost home]# cat /etc/passwd |grep "lisi"
lisi:x:1111:1111::/home/lisi:/sbin/nologin
useradd其他选项
- -d:指定家目录
- -e:指定用户失效时间,格式yy-mm-dd
- -r:随机生成一个系统用户
- -g:指定基本组
- -G:指定附加组
- -c:备注信息
- -p:密码,但是不能直接使用,必须输入加密后的密码(一个字符串)
passwd
passwd 修改当前用户密码
[root@localhost /]# passwd
更改用户 root 的密码 。
新的 密码:
passwd 用户名
不加用户名修改当前用户的密码
[root@localhost /]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
-d:清空用户密码
[root@localhost /]# passwd lisi -d
清除用户的密码 lisi。
passwd: 操作成功
[root@localhost /]# cat /etc/shadow |grep "lisi"
lisi::19821:0:99999:7:::
-l:锁定用户无法登录
[root@localhost /]# passwd lisi -l
锁定用户 lisi 的密码 。
passwd: 操作成功
-u:解锁用户
[root@localhost /]# passwd lisi -uf
解锁用户 lisi 的密码。
passwd: 操作成功
-S:查看用户是否被锁定
[root@localhost /]# passwd lisi -S
lisi LK 2024-04-08 0 99999 7 -1 (密码已被锁定。)
免交互
echo ”123123“ |passwd lisi --stdin
[root@localhost /]# cat /etc/shadow |grep "lisi"
lisi:$6$HmQnymCN$Rp9yOaSexzwgHptFlZn6q5LSxGa4t3IG97muaYO8JSesAJ42vwzp60D.Ws5lTyGU0q9DWMKdGmqXezN/nN4QI/:19821:0:99999:7:::
[root@localhost /]# echo "123123"|passwd lisi --stdin
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost /]# cat /etc/shadow |grep "lisi"
lisi:$6$4jGS0bo.$FxRfKiPTlHB9Lvw225vTTr9.jlXvvcMKnkEUchxTyTLLnqMwfddlUmvuHrXUoyz4AfpjRBNk976bVh2Owi.Vt1:19821:0:99999:7:::
usermod自定义账户
usermod
-
-l:修改用户名,先写新的名字,再写旧的名字
usermod -l new_user old_user -
-u:修改uid
usermod -u uid user
- -s修改登录shell类型
[root@localhost /]# usermod -s /sbin/nologin lisi
[root@localhost /]# cat /etc/passwd|grep "lisi"
lisi:x:1001:1001::/home/lisi:/sbin/nologin
- -e:指定用户失效时间,格式yy-mm-dd
[root@localhost /]# usermod lisi -e 2024-4-9
[root@localhost /]# cat /etc/shadow|grep "lisi"
lisi:$6$4jGS0bo.$FxRfKiPTlHB9Lvw225vTTr9.jlXvvcMKnkEUchxTyTLLnqMwfddlUmvuHrXUoyz4AfpjRBNk976bVh2Owi.Vt1:19821:0:99999:7::19822:
- -L:锁定用户账户
同passwd,注意这里是大写的“L"
- -u:锁定用户无法登录
同passwd
userdel
userdel 用户名:删除用户
- -r:和家目录一起删除
[root@localhost home]# userdel lisi -fr
[root@localhost home]# id lisi
id: lisi: no such user
权限管理
r:读(4)
文件:可以看到里面的内容
文件夹:可以用ls看文件夹中的文件列表
w:写(2)
文件:可以修改文件的内容
文件夹:新建文件(文件夹),删除文件(文件夹),移动文件(文件夹)
x:执行(1)
- 文件:可以运行(命令,脚本)颜色是绿色
- 文件夹:执行是最小的权限,没有执行读写无法使用
- 对文件而言,如果大家都没有执行权限,超级管理员也没有执行权限,只要有一个人有执行权限,那么超级管理员也有
- 删除一个文件和文件夹
修改文件的属性
-
chmod 可以修改文件权限
选项:-R:递归修改
非数字法
- 用法:chmod 【选项】 指明属主or属主or其他人【权限】【文件】
chmod u+r abc:给属主加上读的权限
chmod u=r abc:给属主去赋予的权限
chmod u-r abc:给属主去掉读的权限
chmod a+r abc:给所有人加上读的权限
- 属主:u
- 属组:g
- 其他人:o
- 所有:a
- +:加上
- -:减去
- =:赋予
数字表示法
-
表示方式:rwx rwx rwx=777
- 数字法表示,文件的权限
-
用法:chmod 777 test
r w x
1 0 0 ——————4
0 1 0 ——————2
0 0 1 ——————1
1 1 1 ——————7
二进制转换成十进制
- 满权限
7 7 7
属主 属组 其他人
cp的最小权限
cp /etc/issue /data/mnt
cp:x
/etc:x
issue:r
/data:x
/mnt:wx
chown 改变文件的属主,属组
chown 属主 文件名:只改变文件的属主
chown :属组 文件名:只改变文件的属组
umask
在linux中规定了新建文件夹和新建文件的权限
默认umask为022 ,是你没有的权限
拿最高权限减去umask就是你的最终权限
文件夹的最高权限为777
777-002=755,所以文件夹的最高权限为rwx r-x r-x
文件的最高权限为666,执行权限对于文件而言非常危险
666-002=644 rw- r-- r--
直接使用umask可以看到当前的umask设置
umask后面跟上数值可以设置umask的值
umask 123
文件夹一样
文件权限,用666-umask结果有奇数自动加1,偶数不变
666-123=543奇数加1=644
三种特殊权限
suid:默认当前用户为属主
guid:默认当前用户为属组
stikey:粘贴位,只对文件夹有效。拥有该权限的文件夹,该文件夹内的文件只有超级管理员和属主可以删除,其他人不可以删除。