Linux账号:
用户账户:
|------|---------------------------|
| 超级用户 | root,在系统具有最高权限 |
| 普通用户 | 由root或其他管理员创建的用户,默认只具有低权限 |
| 程序用户 | 用于给应用程序运行的低权限用户,一般不允许登录系统 |
组账户:
|-----|------------------|
| 基本组 | 用户加入的第一个组 |
| 附加组 | 用户额外加入的除了基本组以外的组 |
用户账户的ID和组账户ID :
|-----|--------|
| UID | 用户账户ID |
| GID | 组账户ID |
UID/GID范围:
|------------------|-----------------------------------------------|
| root的UID和GID都固定为0 ||
| 程序用户默认的UID/GID范围 | centos7以前为 1~499;从centos7开始为 1~999 |
| 普通用户默认的UID/GID范围 | centos7以前为 500~60000;从centos7开始为 1000~60000 |
用户账号文件、用户密码文件 :
用户账号文件 /etc/passwd 有7个字段
用户名:x密码占位符:UID:GID:用户说明:家目录:登录shell
允许登录系统/bin/bash 不允许登录系统/sbin/nologin /bin/false
[root@localhost ~]# cat /etc/passwd | wc -l
45
//查看用户账号文件夹/etc/passwd 用户文件有多少行
用户密码文件 /etc/shadow 有9个字段
用户名:密码字符串:上一次修改密码的时间:密码最短有限期:密码最长有限期:密码过期提前告警的时间:密码过期禁用用户的时间:账号失效的时间:空
密码最短有限期:默认为0不限制
密码最长有限期:默认为99999永不过期
账号失效的时间:从1970.1.1开始算起
密码过期提前告警的时间:默认为7
创建用户:
useradd 用户名
adduser 用户名
-u 指定UID
-g 基本组名或GID
-G 附加组名或GID
-d 指定家目录
-s 指定登录shell
-M 不建立家目录,不可与-d同时使用
-e YYYY-MM-DD 指定账号失效日期
Last login: Fri Apr 12 22:49:45 2024
[root@localhost ~]# useradd cywl //创建用户cywl
[root@localhost ~]# vim /etc passwd //配置文件/etc/passwd
[root@localhost ~]# which useradd
/usr/sbin/useradd
[root@localhost ~]# which adduser
/usr/sbin/adduser
[root@localhost ~]#
//adduser 用户名和 useradd是一样的
[root@localhost ~]# man 5 passwd
//查看passwd文件的格式和内容说明 //man 5 是用来查看配置文件的帮助命令
PASSWD(5) File formats PASSWD(5)
NAME 名称
passwd - 密码文件
描述
Passwd 是个文本文件, 它包含了一个系统帐户列表,
给出每个帐户一些有用的信息,比如用户 ID,组 ID, 家目录,
shell,等. 通常它也包含了每个用户经过加密的密码.
它通常应该是可读的(许多命令,工具程序,象 ls(1)
用它做用户 Id
到用户名称的映射),但是只允许超级用户有写方式权限.
在过去美好的日子里,这种一般的读许可没有什么大问题.
每个人都能读到加密了的密码,因为硬件太慢以至于不能解开一个
精选的密码,另外,这基本假定是为友好的使用团体使用的.
现在,许多人运行一些版本的影子密码套件,它们在
/etc/passwd 的密码域里是 *,而不再是加密的口令,
加密的口令放在 /etc/shadow 中,那个文件只有超级用户能读.
不管是否使用了影子密码,许多系统管理员使用一个星号在加密的
密码字段
以确保用户不能鉴别他(她)自己的密码. (见下面的注意)
Manual page passwd(5) line 1 (press h for help or q to q
id 用户名 //查看查看uid gid 组名
[root@localhost ~]# id cywl //查看uid gid 组名
uid=1001(cywl) gid=1001(cywl) 组=1001(cywl)
[root@localhost home]# useradd bb -u 2022 -M -s /sbin/nologin
//创建用户bb -u指定uid 2022 -M不建立家目录 -s不允许登录系统
[root@localhost home]# vim /etc/passwd
验证/home/目录下没有bb用户家目录
[root@localhost home]# cd /home/
[root@localhost home]# ls
cywl test
[root@localhost home]#
[root@localhost ~]# useradd zy -d /opt/tt -g bb
//创建用户zy 指定家目录是/opt/下新建tt 并和bb基本组
[root@localhost ~]#
修改用户密码:
passwd [用户名]
-d 清空用户密码
-l 锁定/禁用用户
-u 解锁用户
-S 查看锁定状态
echo 'XXXX' | passwd --stdin 用户名
echo 用户名:密码 | chpasswd
[root@localhost ~]# useradd gmm //创建用户gmm
[root@localhost ~]# cd /opt
[root@localhost opt]# passwd gmm //修改gmm的密码
更改用户 gmm 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost opt]#
[root@localhost opt]# vim /etc/shadow //配置文件 /etc/shadow
-d 清空用户密码
[root@localhost ~]# passwd -d gmm //清空gmm的密码
清除用户的密码 gmm。
passwd: 操作成功
[root@localhost ~]#
[root@localhost ~]# cd /opt //切换opt目录
[root@localhost opt]# vim /etc/shadow //配置文件/etc/shadow
-l 锁定/禁用用户 -S 查看锁定状态
[root@localhost opt]#
[root@localhost opt]# passwd -l gmm //锁定用户gmm
锁定用户 gmm 的密码 。
passwd: 操作成功
[root@localhost opt]# passwd -S gmm //查看用户gmm锁定状态
gmm LK 2024-04-13 0 99999 7 -1 (密码已被锁定。)
[root@localhost opt]#
-u 解锁用户
[root@localhost opt]# passwd -u gmm //解锁用户gmm
解锁用户 gmm 的密码。
passwd: 操作成功
[root@localhost opt]# passwd -S gmm //查看gmm的锁定状态
gmm PS 2024-04-13 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
解锁空密码账户会 警告 如果想解锁 passwd -u -f [用户名]
快捷设置密码 echo 'XXXX' | passwd --stdin 用户名 // --stdin是代表键盘输入
echo 用户名:密码 | chpasswd
[root@localhost opt]# echo abc1234 | passwd --stdin gmm //输出abc234 被管道符号|捕获 交给passwd修改账号密码 密码要键盘输入 所有--stdin模拟键盘输入
更改用户 gmm 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost opt]# echo gmm:abc1234 | chpasswd
修改已存在的用户:
usermod 用户名 -l 新用户名 修改用户名
-L 锁定/禁用用户
-U 解锁用户
-u 指定UID
-g 基本组名或GID
-G 附加组名或GID
-d 指定家目录
-s 指定登录shell
-e YYYY-MM-DD 指定账号失效日期
[root@localhost opt]# usermod gmm -l mm // 修改用户名gmm------>mm
[root@localhost opt]# usermod mm -L //锁定/禁用用户mm
[root@localhost opt]# usermod mm -U // 解锁用户mm
[root@localhost opt]# usermod mm -u 1314 -g 1001 //修改用户mm的uid1314 gid1001
[root@localhost opt]#
[root@localhost opt]#
[root@localhost ~]# usermod mm -G kfc //mm用户附加组名kfc
[root@localhost ~]# id mm //查看mmuid gid 组和附加组
uid=1314(mm) gid=1001(cywl) 组=1001(cywl),2025(kfc)
[root@localhost ~]# usermod -s /bin/bash bb //指定登录用户为bb shell改为bash
[root@localhost ~]# vim /etc/passwd
[root@localhost ~]# echo mm:123456 | chpasswd //输出密码123456 到mm
[root@localhost ~]# usermod mm -e 2024-12-31 //修改mm账号账号失效日期
[root@localhost ~]# vim /etc/shadow
[root@localhost ~]#
删除用户:
userdel [-r] 用户名 #-r代表删除用户时,家目录也会一起删除
[root@localhost home]# userdel sy1 //删除用户sy1
[root@localhost home]# ls //查看,用户sy1家目录还存在
cywl gmm sy1 test
[root@localhost home]# rm -rf sy1 //删除sy1家目录
[root@localhost home]# ls
cywl gmm test //sy1家目录不存在
[root@localhost home]#
[root@localhost home]# userdel -r sy3 //删除用户sy3同时删除用户家目录
[root@localhost home]# ls
cywl gmm sy2 sy4 test
[root@localhost home]#
系统/用户环境初始化配置文件:
|-------------|---------------------------------------------|----------|
| 系统环境初始化配置文件 | /etc/profile /etc/bashrc | 对所有用户有效 |
| 用户环境初始化配置文件 | ~/.bash_profile ~/.bashrc ~/.bash_logout | 只对当前用户有效 |
/etc/profile ~/.bash_profile #设置用户每次登录时要执行的命令
/etc/bashrc ~/.bashrc #设置切换shell环境时(包括登录系统时)要执行的命令
~/.bash_logout # 设置退出登录或shell环境时执行的命令
组账号文件:
/etc/group 有4个字段
组账号名:x占位符:GID号:组账号成员
[root@localhost ~]# vim /etc/group //查看当前系统中的组
[root@localhost ~]# cat /etc/group | wc -l //统计系统中有多少组
78
添加组账号:
groupadd [-g GID] 组名
[root@localhost ~]# groupadd xy102 -g 1314 //添加组账号xy102 -g 1314
[root@localhost ~]#
管理组账号的成员:
gpasswd 组名 -a 用户名 #添加组成员
-d 用户名 #删除组成员
-M 用户1,用户2,... #重新定义组成员列表
[root@localhost ~]# gpasswd xy102 -a cywl //cywl 加入到 xy102组
正在将用户"cywl"加入到"xy102"组中
[root@localhost ~]#
[root@localhost ~]# vim /etc/group //查看当前组
[root@localhost ~]#
[root@localhost ~]# gpasswd xy102 -d sy2 //sy2从xy102组中删除
正在将用户"sy2"从"xy102"组中删除
[root@localhost ~]# vim /etc/group //查看当前组
[root@localhost ~]# gpasswd xy102 -M zy,bb //重新定义组xy102成员zy,bb
此操作会自动清空之前组成员
[root@localhost ~]# vim /etc/group
删除组账号:
groupdel 组名
[root@localhost ~]#
[root@localhost ~]# groupdel xy101 //删除组101
[root@localhost ~]# vim /etc/group
查询用户的组信息:
groups 用户名
id 用户名 //id比groups更全面
[root@localhost ~]# groups zy //查询用户的组信息
zy : bb xy102
[root@localhost ~]# id zy //查询用户的组信息
uid=2023(zy) gid=2022(bb) 组=2022(bb),1314(xy102)
[root@localhost ~]#
查询登录系统的用户:
w who users
[root@localhost ~]# w
17:22:47 up 5:04, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 :0 10:13 ?xdm? 58.20s 0.15s /usr/libexec/gnome-session-binary --session gnome-classic
root pts/1 20.0.0.1 15:12 23:19 0.05s 0.01s vim /etc/passwd
root pts/2 20.0.0.1 16:04 7.00s 0.10s 0.02s w
[root@localhost ~]# who
root :0 2024-04-13 10:13 (:0)
root pts/1 2024-04-13 15:12 (20.0.0.1)
root pts/2 2024-04-13 16:04 (20.0.0.1)
[root@localhost ~]# users
root root root
[root@localhost ~]#
文件权限 :
|------|-----|-----|-------------|----------|
| 字符表示 | r 读 | w 写 | x 执行文件/切换目录 | - (没有权限) |
| 数字表示 | 4 | 2 | 1 | 0 |
[root@localhost ~]# ll /etc/passwd
-rw-r--r--. 1 root root 2486 4月 13 16:25 /etc/passwd
[root@localhost ~]# mkdir /data //新建目录date
[root@localhost etc]# cd /data/ //切换date目录
[root@localhost data]# touch sy1
[root@localhost data]# touch sy2
[root@localhost data]# touch sy3
[root@localhost data]# ll //查看
总用量 0
-rw-r--r--. 1 root root 0 4月 13 17:28 sy1
-rw-r--r--. 1 root root 0 4月 13 17:28 sy2
-rw-r--r--. 1 root root 0 4月 13 17:28 sy3
[root@localhost data]#
设置权限:
chmod [-R] rmx 文件/目录 #-R表示递归修改目录及其所有子目录和文件权限
chmod +rwx 文件/目录 #添加权限
- #删除权限
= #重新定义权限
[root@localhost data]# chmod -R 777 sy1 //设置sy1权限
[root@localhost data]# ll
总用量 0
-rwxrwxrwx. 1 root root 0 4月 13 17:28 sy1
-rw-r--r--. 1 root root 0 4月 13 17:28 sy2
-rw-r--r--. 1 root root 0 4月 13 17:28 sy3
[root@localhost data]# chmod +621 sy2 添加权限
[root@localhost data]#
[root@localhost data]# ll
总用量 0
-rwxrwxrwx. 1 root root 0 4月 13 17:28 sy1
-rw-rw-r-x. 1 root root 0 4月 13 17:28 sy2
-rw-r--r--. 1 root root 0 4月 13 17:28 sy3
[root@localhost data]#
[root@localhost data]# chmod -004 sy2 删除sy2权限
[root@localhost data]# ll
总用量 0
-rwxrwxrwx. 1 root root 0 4月 13 17:28 sy1
-rw-rw----. 1 root root 0 4月 13 17:28 sy2
-rw-r--r--. 1 root root 0 4月 13 17:28 sy3
[root@localhost data]#
[root@localhost data]# chmod =744 sy2 //重新定义权限
[root@localhost data]# ll
总用量 0
-rwxrwxrwx. 1 root root 0 4月 13 17:28 sy1
-rwxr--r--. 1 root root 0 4月 13 17:28 sy2
-rw-r--r--. 1 root root 0 4月 13 17:28 sy3
[root@localhost data]#
设置归属:
chown [-R] 属主 文件/目录
:属组
属主:属组
属主.属组(:可以用.来表示,效果一样)
[root@localhost data]# chown -R cywl:cywl sy1 属主cywl 属组cywl
[root@localhost data]# ll
总用量 0
-rwxrwxrwx. 1 cywl cywl 0 4月 13 17:28 sy1
-rwxr--r--. 1 root root 0 4月 13 17:28 sy2
-rw-r--r--. 1 root root 0 4月 13 17:28 sy3
[root@localhost data]#
[root@localhost data]# chown -R zy sy1 属主zy
[root@localhost data]# ll
总用量 0
-rwxrwxrwx. 1 zy cywl 0 4月 13 17:28 sy1
-rwxr--r--. 1 root root 0 4月 13 17:28 sy2
-rw-r--r--. 1 root root 0 4月 13 17:28 sy3
[root@localhost data]#
[root@localhost data]# chown -R cywl.sy4 sy1 属主cywl 属组sy4
[root@localhost data]# ll
总用量 0
-rwxrwxrwx. 1 cywl sy4 0 4月 13 17:28 sy1
-rwxr--r--. 1 root root 0 4月 13 17:28 sy2
-rw-r--r--. 1 root root 0 4月 13 17:28 sy3
[root@localhost data]#
设置默认权限:
umask nnn
查询umask的值 umask
文件的最大默认权限为 6 目录的最大默认为 7
新建的文件/目录的默认权限 = 最大默认权限 - umask值
[root@localhost data]# umask 022 设置默认权限022
[root@localhost data]# touch sy5 新建文件夹sy5
[root@localhost data]# ll
总用量 0
-rwxrwxrwx. 1 cywl sy4 0 4月 13 17:28 sy1
-rwxr--r--. 1 root root 0 4月 13 17:28 sy2
-rw-r--r--. 1 root root 0 4月 13 17:28 sy3
-rw-r--r--. 1 root root 0 4月 13 18:07 sy5
[root@localhost data]#