文章目录
一、管理用户账号和组账号
1.1 用户账号和组账号概述
- Linux基于用户身份对资源访问进行控制
1、用户账号
-
超级用户:root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似于 Windows 操作系统中的 Administrator 用户。只有当进行系统管理、维护任务时,才建议使用 root 用户登录系统,日常事务处理建议只使用普通用户账号。
-
普通用户:普通用户账号需要由 root 用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。
-
程序用户:在安装 Linux 操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运 行,如 bin、daemon、ftp、mail 等。
2、组账号
私有组(基本组):随着用户的建立而建立,与用户同名
共有组(附加组):直接创建空组,可以自由添加已有用户。给组设置权限后,该组中的所有用户都具备此权限。
3、UID号和GID号
UID(User IDentity,用户标识号)
- root 用户账号的 UID 号为固定值 0,而程序用户账号的 UID 号默认为 1~499,500~60000 的 UID 号默认分配给普通用户使用。
GID(Group IDentify,组标识号)
- root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1~499,500~ 60000 的 GID 号默认分配给普通组使用。
1.2 用户账号文件
1.2.1 用户账号文件/etc/passwd
- 保存用户名名称、宿主目录、登录Shell等基本信息
- 文件位置:/etc/passdwd
- 每一行对应一个用户的账号记录
例如:查看passwd文件头两行内容(每一行对应一个用户的账号记录)
[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
- passwd 文件的每一行内容中包含了七个用“:”(冒号)分隔的配置字段,从左到右各配置字段的含义分别如下所述。
- 第 1 字段:用户账号的名称,也是登录系统时使用的识别名称。
- 第 2 字段:经过加密的用户密码字串,或者密码占位符“x”。
- 第 3 字段:用户账号的 UID 号。
- 第 4 字段:所属基本组账号的 GID 号。
- 第 5 字段:用户全名,可填写与用户相关的说明信息。
- 第 6 字段:宿主目录,即该用户登录后所在的默认工作目录。
- 第 7 字段:登录 Shell 等信息,用户完成登录后使用的 Shell。一般是/bin/bash
1.2.2 用户账号文件/etc/shadow
- 保存用户的密码、账号有效期等信息
- 文件位置:/etc/shadow
- 每一行对应一个账户的加密信息
查看头两行shadow文件内容
[root@localhost opt]# cat /etc/shadow
root:666avzTM/XgLwTNebk6$vhnv.oCvWagc8lC9I7SRM.T1uAIWswUz1xxzU6Ib7UOrQoBLgvW2P/LaCCQkAraNtKqecrz5.EQXYxDKEkTnK.::0:99999:7:::
- shadow 文件的每一行内容中包含了九个用“:”(冒号)分隔的配置字段,从左到右各配置字段的含义分别如下所述。
- 1 账户名
- 2 mde5密码加密信息 ###*或!!则不等登录 如空则没密码也可以登录
###做项目的时候,所有设备上线都要弱口令扫描,如果结果说密码强度不高,则需要重新设置密码。
如果过弱口令方案,你可以备份shadow文件,然后进shadow 删除没过的账号。 - 3 上次修改密码时间 1970年1月1号到最近修改密码间隔的天数
- 4 密码的最短有效天数,如0则不限制
- 5 密码的最长有效天数,如99999则不进行限制
- 6 提前多少天告警,用户口令将过期,默认是7
- 7 密码过期后多少天内禁用此用户
- 8 账号失效时间,1970年1月1日计算,默认是空则账号永久使用
- 9 保留字段,目前没使用
二、用户账号和组帐号管理
2.1 用户账号管理
切换用户:su 用户,保持路径不变
su - 用户,切换到当前用户的家目录
grep “bash$” /etc/passwd 查看当前可用用户
用户被锁定后,可以从高权限用户切换到普通用户,但是不可以用普通用户登录
2.1.1 添加用户账号
-
useradd命令
useradd [选项] 用户名 -
常用选项有:
-u 指定用户的UID号,要求UID号码未被其他用户使用
-d 指定用户的宿主目录位置(当与 -M 一起使用时,不生效)
-e 指定用户的账户失效时间,可以使用YYYY-MM-DD的日期格式
-g 指示基本组
-G 指示附加组
-M 不建立宿主目录,即使/etc/login.defs系统配置中已设置要建立宿主目录
-s 指定用户的登录shell -
例如:
创建一个名为lala的FTP账号(禁止终端登录),该账号将于2020.10.1失效。
[root@localhost ~]# useradd -e 2020-10-1 -s /sbin/nologin lalala
/sbin/nologin后用户无法直接登录和被切换登录
2.1.2 设置/更改用户口令passwd
-
passwd命令
passwd [选项] 用户名 -
常用选项
-d 清空指定用户的密码,仅使用用户名即可登录系统
-l 锁定用户账户
-S (大S)查看用户账户是否被锁定
-u 解锁用户账户
不指定用户名时,修改当前账号的密码 -
通过passwd命令锁定的用户账号,将无法再登录系统(shadow文件中的对应密码子串前将添加“!!”字符),只能由管理员来解除锁定。(还可以从root用户切换登录)
设置用户密码的两种方法
第一种:
[root@localhost ~]# useradd yang
[root@localhost ~]# passwd yang
第二种:
[root@localhost ~]# useradd yang
[root@localhost ~]# echo “123123” | passwd --stdin yang ###--stdin为标准型输入
2.1.3 修改用户账号的属性usermod
-
usermod命令
usermod [选项] 用户名 -
常用选项
-l 更改用户账号的登录名称(Login Name)
-L 锁定用户账户
-U 解锁用户账户
-u 修改用户的UID号
-d 修改用户的宿主目录位置
-e 修改用户的账户失效时间,可以使用YYYY-MM-DD的日期格式
-s 指定用户的登录shell
usrmod和password区别:
- usrmod -L ###锁定 一个感叹号
usrmod -U ###解锁 一个感叹号 - password -l tom###锁定 两个感叹号
password -u tom###解锁 两个感叹号
2.1.4 删除用户账号userdel
- userdel命令
userdel [-r] 用户名 - 添加-r选项时,表示连用户的宿主目录一并删除
2.1.5 用户账号的初始配置文件
-
文件来源
- 新建用户账号时,从/etc/skel 目录中复制而来的
-
主要的用户初始配置文件
~/.bash_profile ###文件中命令将在该用户每次登录被执行
~/.bashrc ###文件中的命令在每次加载/bin/bash程序(包括登录)执行
~/.bash_logout ###文件中的命令将在每次退出登录时执行- .bashrc和.bash_profile都是开机启动,.bashrc 要比.bash_profile 更加精细
- .bash_logout 可以理解,干坏事后擦屁股,擦脚印。
上三个都是针对用户的,用户一旦切换,就不会生效
- ~/etc/profile ###针对系统的,不管切换到哪个用户都会生效
2.2 组帐号管理
2.2.1 groupadd命令 --添加组账号
- 需要指定GID号时,可以使用’-g’选项。
groupadd [-g GID] 组账号名
示例:
添加组账号market
[root@localhost ~]# groupadd -g 1000 market
[root@localhost ~]# tail -1 /etc/group ###查看刚建的组账号
2.2.2 gpasswd命令–添加删除组成员
-
设置组账号密码(极少用),添加/删除组成员
gpasswd [选项] 组账号名 -
常用选项
-a 向组内添加一个用户
-d 从组中删除一个用户成员
-M 定义组成员列表,以逗号分隔 -
例如:
向组内添加一个用户
[root@localhost ~]# gpasswd -a 12
例如:从组内删除一个用户
[root@localhost ~]# gpasswd -d 12
例如:添加多个用户
[root@localhost ~]# gpasswd -M a,b,c,d
2.2.3 groupdel命令–删除组账号
groupdel 组账号名
例如
[root@33 ~]# groupdel market
2.2.4 查询账号信息
-
groups命令:查询用户所属的组
groups [用户名] -
id命令:查询用户的身份标识
id [用户名] -
finger命令:查询用户账号的详细信息(包括登录名称,完整名称,宿主目录,登录shell等。)
finger [用户名] -
w、who、users命令:查询已登录到主机的用户信息
-
last:查看最近哪些人登录
-
lastb:记载错误登录
三、管理目录和文件的属性
3.1 文件/目录的权限和归属
-
访问权限
4–读取r:允许查看文件内容、显示目录列表
2–写入w:允许修改文件内容、允许在目录中新建、移动、删除文件或子目录
1–可执行x:允许运行此程序、切换目录 -
归属(所有权)
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
3.2 查看文件/目录的权限和归属
- 理解权限字段-rw-r–r–的含义
- 第 1 个字符:表示该文件的类型,可以是 d(目录)、b(块设备文件)、c(字符设备文件)、“-”(普通文件)、字母“l”(链接文件)等。
- 第 2~4 个字符:表示该文件的属主用户(User)对该文件的访问权限。
- 第 5~7 个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限。
- 第 8~10 个字符:表示其他任何用户(Other)对该文件的访问权限。
- 第 11 个字符:这里的“.”与 SELinux 有关,目前不必关注。
- 其他字段含义
- 1 子文件数量
- root 属主
- root 属组
- 34298 大小,单位:字节
- 04-02 00:23 创建时间
3.3 设置文件和目录的权限chmod
-
chmod命令
chmod [ugoa] [+ - =] [rwx] 文件或目录
chmod nnn 文件或目录 ###常用
(u,g,o,a分别表示属主,属组,其他用户,所有用户)
(+ - =分别表示增加,去除,设置权限)
(r、w、x分别表示读、写、运行权限) -
常用选项
-R: 递归修改指定目录下所有子项的权限
3.4 设置目录和文件的归属chown
-
chown命令
chown 属主 文件或目录
chown:属组 文件或目录
chown 属主:属组 文件或目录### :也可以用 . 代替 -
常用选项
-R: 递归修改指定目录下所有文件,子目录的归属
3.5 权限掩码umask
- umask作用
- 控制新建的文件或目录的权限
- 默认权限去除umask的权限就为新建的文件或者目录的权限
- **umask设置:umask 022
umask的分数指的是“该默认值需要减掉的权限,”因此,如果执行“umask 022”,代表group和other被拿掉了权限“2”,也就是被拿掉了写的权限。
如果执行命令“umask 000”,代表文件的默认权限是“777” - **umask查看:umask
- -R 递归修改指定目录下所有文件,子目录的归属