Linux系统及操作 (05)
帐号控制总述
-
基于账户身份对资源访问进行控制
- 账户类别:用户帐号,组帐号
- 识别方式:UID[ linux系统自动给予用户编号 ],GID[ 组帐号编号 ]
- 不同的用户/账户对资源的访问权限不同
-
用户帐号(UID):
- 超级用户root (权限最大) : UID=0
- 系统用户(系统自用): UID=1 ~999
- 普通用户 : UID=1000~
-
组帐号 (GID):方便管理多个用户
- 基本组(私有组):一般情况与用户同名,一个用户必须有基本组,基本组只能有一个
- 附加组(从属组):一个用户可以有多个附加组,也可以没有附加组
-
帐号数据存放:本机磁盘中————本地账户
- /etc/passwd /etc/shadow
- /etc/group /etc/gshadow
-
/etc/passwd 中是各个用户的基础信息
例 : [ root : x : 0 : 0 : root : /root : /bin/bash ]
[ 账户名称 :占位符 :UID :GID :用户全名 :宿主目录 :Shell程序路径 ]
-
Linux系统 允许无家目录,或家目录异常的用户帐号。
添加用户帐号
useradd 添加用户
- 格式 :useradd [ 选项 ] … 用户名
常用选项
-
[ -u ] : 指定 UID 标记号。
[ useradd -u 2333 bilibili ] #1000到6w
[ id bilibili ] ===> [ uid=2333(bilibili) gid=2333(bilibili) 组=2333(bilibili) ] -
[ -d ] :指定宿主目录。家目录。(缺省默认为 /home/用户名)
- 自己创建的家目录权限过高,建议自动创建。
[ useradd -d /opt bilibili ]
[ grep bilibili /etc/passwd ] ====> [ bilibili : x : 1001 : 1001 : : /opt/bilibili : /bin/bash ]
- 自己创建的家目录权限过高,建议自动创建。
-
[ -G ] :指定所属的附加组。
[ groupadd diyi ] 单独创建 diyi 组
[ groupadd dier ] 单独创建 dier 组
[ useradd -G diyi bilibili ]
[ id bilibili ] ===> [ uid=2336(bilibili) gid=2338(bilibili) 组=2338(bilibili),2335(diyi)]
[ useradd -G diyi,dier 4399game ]
[ id bilibili ]
===> [ uid=2337(4399game) gid=2338(4399game) 组=2338(4399game),2335(diyi),2336(dier) ] -
[ -s ] :指定用户的登录解释器( /bin/bash )。
-
shell : 壳,解释器。
- 用户 -------> 解释器(shell ) -------> 内核 --------> 硬件
-
-
/sbin/nologin :禁止用户登录操作系统。(锁定其用户帐号)
[ useradd -s /sbin/nologin bilibili ] 把 /bin/bash 换成 /sbin/nologin
[ passwd bilibili ] 设置密码,密码没有屏幕显示,需要输入两次密码
usermod 修改用户
- usermod命令格式 : usermod [ 选项 ]… 用户名
常用选项 :
-
[ -l ] : 更改用户帐号的登陆名称。
- [ usermod -l newname oldname ]
-
[ -u ] : 更改 用户id。
- [ usermod -u 1555 newname ]
-
[ -d ] : 更改 家目录路径。
- [ usermod -d /opt newname ]
-
[ -md ] : 把原本的家目录中的 家 移动到新家目录下。(推荐使用)
-
[ -s ] : 更改 登录解释器。
- [ usermod -s /sbin/nologin newname ]
-
[ -G ] : 更改 附加组/重置 附加组。
- [ usermod -G diyi,dier newname ]
passwd命令 :
-
设置用户密码
-
格式 : passwd [ 选项 ]… 用户名 { 交互式 }
-
[ passwd bilibili ] 设置用户 bilibili 的用户密码
- [ su - bilibili ] 临时从 root 用户临时切换到 bilibili 用户
- [ passwd ] 修改当前用户的密码(需要旧密码)
- [ exit ] 退出临时用户 bilibili ,回到原用户 root
-
-
非交互式设置密码 [ --stadin ]
-
格式 :[ echo xxxxx | passwd --stadin 用户名 ]
-
[ echo 123 | passwd -stadin bilibili ]
-
用户初始配置
主要的初始配置文件
- 每创造一个用户,/etc/skel 默认在 /home 下建在对应的家目录
[ _~/.bashrc_profile ]
- 每次登陆系统时执行
[ _~/.bashrc ]
-
每次开始新的命令行终端时执行
-
/root/.bashrc 用于定义永久别名
-
[ alias echo 现在目录: ; pwd ; ls ]
-
只对应家目录对应的用户
-
用户的删与查
删除用户
[ userdel ] 命令
-
格式:userdel [-r] 用户名
-
添加 -r 选项,家目录/用户邮件也一并删除
[ userdel -r bilibili ] 连同家目录一并删除
[ userdel bilibili ] 不删除家目录,只删除用户信息组
查询账户id
[ id ] 命令 —Identity
-
格式 :id [ 选项 ]… 用户名
[ id bilibili ]
组帐号管理
- 创建组 :[ groupadd ]
组帐号基本操作
/etc/group
-
保存组帐号的基本信息。每新建一个组,就会在 group 下更新一个信息。
-
每个组记录一行,以:分割为4个字段。
[ stugrp:❌:1504:nsd06 ]
组名:组密码占位符:组的GID:组成员列表。
[ bilibili:❌:1505: ]
用户 bilibili 作为一个组,无成员。
[ gpasswd ]命令
- 格式:gpasswd [选项]… 组名 { 添加附加组 }
常用选项
-
[ -a ] : 添加组成员,每次只能加一个
[ gpasswd -a wudang bilibili ] { 添加 wudang 组到 bilibili 组 }
-
[ -d ] : 删除组成员,每次只能删一个
[ gpasswd -d wudang bilibili ] { 把 wudang 组从 bilibili 组删除 }
-
[ -M ] : 定义(重置)组成员用户列表,可设置多个用户
[ gpasswd -M ‘wudang,shaolin,emei’ bilibili ] { 定义bilibili 组的组成员列表 ,添加多个}
-
[ -A ] : 定义组管理员列表(组管理员可以属于此组也可以不属于此组)
- root 是所有组的默认管理员
-
[ /etc/gshadow ] 组管理信息配置文件。 记录着个个组的管理员名单。
[ gpasswd -A wudang bilibili ] { 把 wudang 组设置成bilibili 组的管理员 }
[ groupdel ] 命令
-
删除组。删除组的时候,不可以删除基本组。
-
删除组不会删除对应用户。
-
格式 : groupdel 组名
[ groupdel bilibili ] { 删除 bilibili 组 }
总结 1 :用户与组重要的配置文件
1./etc/passwd:用户基本信息配置文件
2./etc/shadow:用户密码信息配置文件
3./etc/group:组基本信息配置文件
4./etc/gshadow:组管理信息配置文件
- 当创建一个新的用户时,以上四个文件都会增加新的内容。
总结 2 :Linux系统执行useradd命令,会完成那些操作?
1.会在/etc/passwd增加一行信息
2.会在/etc/shadow增加一行信息
3.会在/home新增用户家目录
4.会在/var/spool/mail增加用户邮件文件
5.会在/etc/group增加一行组信息
6.会在/etc/gshadow增加一行组的管理信息
总结 3 :Linux系统执行userdel -r命令,会完成那些操作?
1.会在/etc/passwd删除一行信息
2.会在/etc/shadow删除一行信息
3.会在/home删除用户家目录
4.会在/var/spool/mail删除用户邮件文件
5.会在/etc/group删除一行组信息
6.会在/etc/gshadow删除一行组的管理信息
计划任务
用途:按照设置的时间间隔,为用户反复执行某一项固定的系统任务
- 软件包:cronie、crontabs
- 系统服务:crond
- 日志文件:/var/log/cron
- [ tail ] : tail [ 选项 ] 文件名
- 显示文件的尾部内容,默认会显示指定文件的末尾 10 行的内容。
- 通常用于查看日志文件或实时监控日志文件的更新。
- [ -n ] : 指定要显示的尾部行数
- [ -f ] : 持续跟踪显示文件尾部最新的内容,实时看到输出显示。
[ crontab ] 命令
- 编辑:crontab -e [-u 用户名]
- [ crontab -e -u root ] 以 root 的身份进入 -e 的编辑模式。
- 查看:crontab -l [-u 用户名]
- 清除:crontab -r [-u 用户名]
编写[ crontab ] 任务
-
任务配置文件在**/etc/crontab**
-
时间配置
-
分 时 日 月 周 任务命令行(绝对路径)
[ * * * * * ] #每分钟执行一次
[ 30 8 * * * ] #每天早晨的8点30分,执行一次
[ 30 23 * * * ] #每天晚上23:30 执行一次
[ 30 23 * * 5 ] #每周的周五23:30 执行一次
[ 30 23 * * 1-5 ] #每周的周一至周五23:30 执行一次
[ 30 23 * * 1,3,6 ] #每周的周一周三周六23:30 执行一次
[ 30 23 1 * 1 ] #每月的1号晚上23:30或每周一晚上23:30 执行一次
特别写法:
[ 5 * * * * ] #每个小时的第五分钟执行一次
[ */5 * * * * ] #每隔5分钟运行一次
[ 38 */2 * * * ] #每隔2小时运行一次
[ * ]:匹配范围内任意时间
[ , ]:分隔多个不连续的时间点
[ - ]:指定连续时间范围
[ /n ]:指定时间频率,每n …
-