目录 用户账户的信息、用户的密码及账户的有效期 创建用户的命令 创建用户的密码及修改密码 修改账号的属性 组账号的了解 配置文件 权限管理 用户账户的信息、用户的密码及账户的有效期 用户账号: 超级用户 管理员 root 默认对本机拥有最高权限的账户。在系统中是唯一的。 普通用户 :一般都是由管理员创建的,拥有的权限是受限的。一般只在自己的家目录当中拥有完整的权限。可以正常的登录系统。 程序用户 :在安装软件时,有的应用程序需要创建一些账号来保证程序的正常运行,就会创建一个程序账户,程序账户是一些特定的低权限的账户,而且这些账户是不能登录到系统的 UID:用户的标识号,创建用户的时候可以指定,也可以系统自动分配。但是唯一,不能重复。 GID:组标识,创建用户的时候可以指定,也可以自动分配,也是唯一的,不能重复。 根据uid来区分: 管理的uid 0 普通用户的uid 1000 程序用户的uid 1-999 判定一个用户是否为管理员,以uid为标准,uie+0的为管理员 root:x:0:0:root:/root:/bin/bash dn:x:1001:1001::/home/dn:/bin/bash saned:x:989:983:SANE scanner daemon user:/usr/share/sane:/sbin/nologin 字段1:用户账号的名称 字段2:用户密码的占位符。无实意 字段3:用户的uid 字段4:用户的gid 字段5:用户的全名,一般情况下都是和字段1一致 字段6:用户的家目录所在的位置 字段7:用户的登录的shell,shell默认的解释器就是bash,得有/bin/bash才可以登录系统。/sbin/nologin/bin/false,表示不可以登录系统。 一般程序用户的shell都是/sbin/nologin/bin/false。 普通用户能否设置成/sbin/nologin? 在 Linux 系统中,普通用户可以被设置为/sbin/nologin。 /sbin/nologin 是一个特殊的登录 shell,它的作用是禁止用户登录系统。当用户尝试登录时,系统会拒绝登录并显示一条消息,提示用户无法登录。 这种做法通常用于限制某些用户的访问权限,例如禁止一个普通用户登录系统。通过将用户的登录 shell 设置为/sbin/nologin,管理员可以有效地限制用户的登录能力,从而增强系统的安全性。 /etc/passwd : 保存的用户信息 /etc/shadow:用户的密码和账户的有效期 root:$6$gRCs6IVcOy0PQxgJ$AGYVlRjml5ihIad.qNB1rszoJRYKswzuhOLVUQCIJii9tUJYePHgRaCmgI9l2k98.80600DLhfBahaKBgLMmN0:19846:0:99999:7::: 字段1:用户的账号名称 字段2:用户的密码,MD5加密的方式。*表示不能登录系统,!!表示密码为空,不是真的空。什么都没有才是真的空 字段3:表示上一次修改密码的时间,19864,表示从1970-1-1到2024年5-21号过了多少天。 字段4:密码的最短有效天数,0表示不限制 字段5:密码的最长有效天数 9999表示不限制 字段6: 提前多少天告诉用户,密码将会过期。默认为7 字段7:密码过期之后多少天会禁用该用户 字段8: 账号的失效时间,为空表示失效 字段9: 保留字段,预留字段 无实意 创建用户的命令 useradd useradd -u 指定uid号。已被占用的uid不能被使用 useradd -d 指定用户的家目录的位置。(一般不动) useradd -e 指定用户的账户失效的时间,格式yyyy-mm-dd useradd -M 创建用户时,不建立家目录 useradd -s 创建用户是,指定用户的登录shell 家目录还显示,但是用户里面没有了 创建用户的密码及修改密码 用户创建密码:passwd passwd -d 清空指定用户的密码 (慎用) passwd -l 锁定用户,无法登录(面试题) paswwd -u 解锁用户 passwd -S 查看用户的状态,用户是否被锁定了 修改密码的另一种方式 echo bmm123 | passwd --stdin bmm 修改账号的属性 usermod 修改账号的属性 usermod -u 修改用户的uid号 usermod -d 修改用户的家目录地址 (没人用) usermod -e 修改用户的账户失效时间 yyyy-MM-DD usermod -s 修改用户的登录的shell usermod -L 锁定用户 usermod -U 解锁用户 锁定用户的两种方式(面试题) passwd -l usermod -L 删除用户:userdel 用户名 只删除用户,不删除家目录 userdel -r 用户名 删除用户名的时候同时删除家目录 组账号的了解 组账号:(了解就行) /etc/group 组账号信息 /etc/gshadow 保存组账号的额外信息 groupadd 添加组账号 添加或者删除组成员: gpasswd gpasswd -a 向组内添加用户 gpasswd -d 从组内删除用户 gpasswd -M 定义组员的列表,每个用户用逗号隔开。 添加可以一次性多个,删除只能一个一个删除。 配置文件 配置文件 :/etc/profile 全局配置,对所有用户都生效 ~ /.bash_profile 用户登录时会读取的配置,只对自己生效。 ~/.bashrc 用户的配置文件,只对自己生效,每次新打开一个shell就会读取这个文件。 ~/.bash'_logout 用户退出当面shell的时候会执行的配置 每次登录都是shell的一个子shell,每个之间互相隔离 读取顺序: /etc/profile ------------ /.bash_profile------------ /.bashrc ------------- /.bash'_logout 权限管理 权限管理: 查询用户身份标识: id (查询uid gid 所属组) 查询已经登录到主机的用户信息: w who users U:所有者 G:所在组 O:其他用户 a:所有用户 八进制算法替换了 421 R read 读权限4 W wirt 写权限2 X 执行 执行权限1 chomd 赋权命令 chomd -R 递归赋权 只有一层目录,目录当中的所有都会生效,如果是级联目录只有最后一个生效 umask作用:用来设定文件和目录的默认权限。 文件的默认权限 666 目录的默认权限 777 (面试题) 创建文件,默认就是不给你执行权限。 创建目录,一定要有执行权限,没有执行权限,你就不能切换(cd)进入这个目录。 修改所有者和所在组: 前提 :用户和组都要存在,要先创建好。 chown chown ld:ld 所有者和所在组一起变 chown ld.ld chown ld 文件名/目录名 只修改 所有者 chown :ld 文件名/ 目录名 只修改所在组 chown .ld