目录
用户账号和组账户概述
1.用户账户
在linux操作系统中,用户账户包括三种类型:
-
超级用户:root是本机的超级用户账号,类似于windows中的administrator用户
-
普通用户:普通用户需要由root用户或其他管理员创建,在权限上会有限制,只在自己的宿主中拥有完整权限
-
程序用户:安装linux操作及部分应用程序时,会添加一些用户账号,这 些用户不允许登录,仅维持系统和某个程序运行
2.组账号
基于某种联系将多个用户集合在一起,及构成一个用户组,该组内所以账号称为组账号。在linux操作系统中用户组分为基本组和公共组。
基本组 | 每一个用户账号至少属于一个组,则称为基本组 |
---|---|
公共组 | 当该用户同时在其他组中时,这些组称为该用户的附加组 |
对组账户设置的权限将适用用组内每一个用户账户,实行继承制
3.UID和GID
UID(User IDentify,用户标识号) | GID(Grouping IDentify,组标识号) |
---|---|
每一个用户账号都有一个数字形式的身份标识,称为UID | 每一个组账号都有一个数字形式的身份标识,称为GID |
每个用户的UID是唯一的 | 每个组的GID是唯一的 |
root用户账号的UID为固定为0,而程序用户的UID号默认为1499,500600000的UID号默认给普通用户使用 | root用户账号的GD为固定为0,而程序用户的GID号默认为1499,500600000的GID号默认给普通用户使用 |
用户账号管理
linux操作系统中用户账号,密码等信息都保存在相应的配置文件中,直接修改文件就可以实行管理
1.用户账号文件
与用户账号相关的文件主要有两个:/etc/passwd和/etc/shadow
<1>passwd文件的配置
操作系统的所有账号信息都保存在/etc/passwd中,该文件是文本文件,所有用户都可以查看
查看用户的信息
cat /etc/passwd 查看已创建用户
[root@localhost ~]# cat /etc/passwd root:x:0:0:Super User:/root:/bin/bash zhangsan:x:1000:1000::/home/zhangsan:/bin/bash #用户名:经过加密的密码:UID:GID::家目录:登录shell信息
<2>shadow文件配置
shadow文件也称为影子文件,其中包括用户的密码信息,因此对shadow文件访问进行严格控制,默认只有root用户能够读取,且不能直接编辑内容
[root@localhost ~]# cat /etc/shadow root:$sm3$V80ZfS3ROMQFM4MB$xJ8ukWrExAeXPjCntFtFGh.1g4X8EZL8CghDTYfARW5::0:99999:7::: zhangsan:!:20171:0:99999:7::: 用户名 :密码:天数:密码最短有效天数 :最迟修改日期:提醒天数::账号失效时间:
2.添加,修改,删除用户账号
<1> useradd 创建用户账号
useradd 用户名 创建用户
用法:useradd [选项] 登录名 useradd -D useradd -D [选项] 选项: -u :指定用户的UID号,要求是未使用过的 -d :指定用户的宿主目录位置(不能与-M一起使用) -e: 指定用户的失效时间,可使用YYYY-MM-DD的日期格式 -g: 指定用户的基本组名(或使用GID号) -G: 指定用户的附加组名(或使用GID号) -M: 不建立宿主目录,即使/etc/login。defs 系统配置中以设定要 建立宿主目录 -s: 指定用户登录shell
示例执行以下操作创建名为lisi的账号,并查看/etc/passwd,/etc/shadow和/home等目录来确认操作所带来的变化
[root@localhost ~]# useradd lisi [root@localhost ~]# tail -1 /etc/passwd lisi:x:1000:1000::/home/lisi:/bin/bash [root@localhost ~]# tail -1 /etc/shadow lisi:!:20171:0:99999:7::: [root@localhost ~]# ls -a /home/lisi/ . .. .bash_logout .bash_profile .bashrc
<2>passwd --为用户账号设置密码
passwd zhangsan 更改zhangsan的用户密码
[root@localhost ~]# passwd zhangsan 更改用户 zhangsan 的密码 。 新的密码: 重新输入新的密码: passwd:所有的身份验证令牌已经成功更新。 #用法: passwd [选项...] <帐号名称> 选项: -d:清空指定用户的密码,仅使用用户名就可登录 -l:锁定用户账户 -S:查看用户的状态(时候绑定) -u:解锁用户账户
实例:通过passwd命令锁定解锁用户账号lisi
[root@localhost ~]# passwd -l lisi 锁定用户 lisi 的密码 。 passwd: 操作成功 [root@localhost ~]# passwd -S lisi lisi LK 2025-03-24 0 99999 7 -1 (密码已被锁定。) [root@localhost ~]# passwd -u -f lisi 解锁用户 lisi 的密码。 passwd: 操作成功 [root@localhost ~]# passwd -S lisi lisi NP 2025-03-24 0 99999 7 -1 (密码为空。)
<3>usermod--修改用户账号属性
用法:usermod [选项] 登录名 选项: -u 修改用户的UID号 -d 修改用户的宿主目录位置 -e 修改用户的失效时间,可使用YYYY-MM-DD时间格式 -g 修改用户的基本组名 -G 修改用户的附加组名 -s 指定登陆的shell -l 更改用户账户的登录名称 -L 锁定用户账户 -U 解锁用户账户
<4>userdel --删除用户账号
用法:userdel [选项] 登录名 选项:-r 同时删除宿主目录
组账户管理
1.添加,管理,删除组账号
<1>groupadd命令--添加主账号
用法:groupadd [选项] 组
<2>gpasswd命令--添加,设置,删除zuchengyuan
用法:gpasswd [选项] 登录名 选项:-a 添加成员 -d 删除成员 -M 同时添加多个用户
<3>groupdel命令--删除组账号
groupdel 组名
查询账号信息
在linux操作系统中,还可以使用id,groups,finger,users等
1.groups--查询用户账号所属组
[root@localhost ~]# groups root [root@localhost ~]# groups lisi lisi : lisi
2.id--查询用户账号的身份标识
使用id命令可以精确查看用户的UID,GID等标识信息
[root@localhost ~]# id lisi uid=1000(lisi) gid=1000(lisi) 组=1000(lisi)
3.w--查询当前主机的登录情况
使用w命令可以查询主机中的用户登录情况,登录账号名称,所在终端,登陆时间,来源地点等信息
[root@localhost ~]# w 09:45:24 up 50 min, 3 users, load average: 0.00, 0.17, 0.18 USER TTY LOGIN@ IDLE JCPU PCPU WHAT root tty1 08:55 50:20 0.03s 0.03s -bash root pts/0 08:55 48:03 0.03s 0.03s -bash root pts/1 09:02 1.00s 0.21s 0.07s w
管理目录和文件的属性
在linux操作系统中,系统的文件和目录分为两个属性:访问权限和归属,其中访问权限权限包括可读,写入,可执行三种类型。归属包括属主(该文件的用户),属组(该文件的组账号)。用户可根据权限和归属来对访问过程进行控制
1.查看目录和文件属性
[root@localhost ~]# ls -ld /etc /etc/passwd drwxr-xr-x. 83 root root 4096 3月24日 08:54 /etc -rw-r--r--. 1 root root 1123 3月23日 21:19 /etc/passwd
在上述输出信息中,第3,4字段的数据分别表示为属主和数组。
drwxr-xr-x. 和 -rw-r--r-- 这俩部分的含义表示为:
-
第一个字符:表示该文件的类型:d(目录),b(块设备文件),c(字符设备文件),“-”(不同文件),字母“l"(链接文件)
-
第2~4个字符:表示属主对文件的权限
-
第5~7个字符:表示属组对文件的权限
-
第8~10个字符:表示其他用户对文件的权限
-
第11个字符,这个"."与SELinux有关
2.权限字符的含义
权限 | 文件 | 目录 |
---|---|---|
r | 查看文件内容 | 查看文件内容(显示子目录·文件列表) |
w | 修改文件内容 | 修改文件内容(在目录中添加,删除,修改文件或子目录) |
x | 执行文件内容 | 执行cd命令来进入和退出目录 |
若用户访问的文件和目录不具备相应的权限,则操作被拒绝
例如普通用户lisi想访问/etc/shadow,被拒绝
[lisi@localhost ~]$ cat /etc/shadow cat: /etc/shadow: Permission denied
3.设置目录文件的权限
需要更待目录文件的权限是使用chmod命令进行。使用两种形式的权限表示方式:字符形式和数字形式。r,w,x分别表示为八进制数字4,2,1。表示一个集合是需要将数字相加。
字符形式 | 数字形式 |
---|---|
rwx | 7 |
rw | 6 |
rx | 5 |
wx | 3 |
命令格式为:
用法:chmod [ugoa][+-=][rwx]文件或目录 或:chmod [nnn] 文件或目录
上述组成部分的含义是:
-
“ugoa"表示该权限所针对的用户类型,u(宿主),g(属组内的全部用户),o(其他用户)a(表示全部用户)
-
”+-=“表示权限的操作动作,+(增加)-(减少)=(设置对应的权限)
-
'rwx'是权限的字符形式
在实际的环境中,需要将目录中所有的总目录和文件权限都设置一样,使用chmod时结合-R一起来用
[root@localhost ~]# chmod -R 644 /var/ftp
4.设置文件和目录的归属
需要更待目录文件的归属是使用chown命令进行,chown命令格式如下:
chown 属主:[:[属组] 文件或目录
需要将目录中所有的总目录和文件权限都设置一样,使用chown时结合-R一起来用。
实例:将lisi目录的宿主变为root
[root@localhost ~]# ls -ld /home/lisi drwx------. 2 lisi lisi 4096 3月24日 09:34 /home/lisi [root@localhost ~]# chown -R root: /home/lisi [root@localhost ~]# ls -ld /home/lisi drwx------. 2 root root 4096 3月24日 09:34 /home/lisi [root@localhost ~]# chown -R :lisi /home/lisi [root@localhost ~]# ls -ld /home/lisi drwx------. 2 root lisi 4096 3月24日 09:34 /home/lisi
将lisi目录属主变为lisi,属组变为root
[root@localhost ~]# ls -ld /home/lisi drwx------. 2 root lisi 4096 3月24日 09:34 /home/lisi [root@localhost ~]# chown -R lisi:root /home/lisi [root@localhost ~]# ls -ld /home/lisi drwx------. 2 lisi root 4096 3月24日 09:34 /home/lisi
5.设置文件的默认权限
当新建一个文件或目录时,它的权限与Umask(反码)有关
当umask为022时,你的目录权限为777-022,也就是755
实例:执行命令Umask 000,看他的默认权限
[root@localhost ~]# umask 000 [root@localhost ~]# mkdir /umask [root@localhost ~]# ls -ld /umask drwxrwxrwx. 2 root root 4096 3月24日 10:05 /umask
文件的默认权限755
目录的默认权限644
本章总结
本意围绕Linux系统的账号和权限管理展开。首先介绍了用户账号和组账号,包括其类型、相关配置文件(如passwd、shadow、group)及管理命令(useradd、passwd等),还提及账号查询命令。接看讲解目录和文件属性管理,通过 1s-1d童看属性,chmod 设置权限(字行或数字形式),chmod设置归属,同时说明了mask对新建文件和目录默认权限的影响,为Linux系统安全管理提供帮助。