Linux用户、组管理与计划任务
基于账号的访问控制
账号类别:用户账号、组账号 识别方式:UID、GID
用户账号 超级用户root(UID为0) 系统用户(UID一般为1-999) 普通用户(默认情况下UID从1000开始)
组账号 基本组(私有组) 附加组(公共组或从属组)
Linux系统规则:一个用户至少属于一个组 当你 useradd zhu 只是创建了一个用户,linux就会自动创建一个同名组 zhu(基本组) 组:xs、cw、sg(附加组)
账号的存放类别
账号数据的存放 存放在本机磁盘中–本地账户 本地账户的数据文件
解析用户账号文件
用户账号基本信息 /etc/passwd
每个用户记录一行 以:分割为7个字段
head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash 冒号分割 用户名:密码占位符:用户的UID:用户基本组的GID:用户的描述信息:家目录:解释器程序
/etc/shadow /etc/group 组信息含成员 /etc/gshadow 组管理员信息
useradd 添加用户
-u 指定UID -d 指定宿主目录,缺省为/home/用户组 -G 指定所属的附加组 -g 指定基本组 -s 指定用户的登录解释器
usermod 修改用户
-l 修改用户名 -u 修改UID -d 修改家目录,缺省为/home/用户组 不会创建家目录 -G 修改附加组 (会将其他附加组全部干掉) -s 修改用户的登录解释器
usermod -s /sbin/nologin zhu1
将用户再加到一个组里 gpasswd -a zhu1 zhug1
passwd 设置口令
根用户修改普通用户密码: passwd zhu1 普通用户修改自己的密码: passwd
su – zhu1
身份切换过去了 su 环境变量也切换过去 –
exit 会退出切换,回到切换前的环境用户
非交互式设置密码:
–stdin 标准输入
echo 123456 | passwd –stdin zhu1
解析用户密码文件
/etc/shadow 保存密码字串/有效期等信息 每个用户为一行。以 :分隔成9个字段
zhu1:$6$exw7u0.a$oasPL/WWekNGN/ Rpf0Ex6no6qyDdjvIqYDyOvPl3ZU8PbKh4D.FnzWZon/9fcK.C1L1FUh1ET2jSQEAxKfXD1/:18644:0:99999:7:::
用户名: 密码加密串: 上次修改密码的时间: 自1970年1月1日到上次修改密码的时间 单位:天: 密码的最短有效期,默认0 — 这个时间内不允许修改密码: 密码的最长有效期,默认99999: 密码过期前的警告天数,默认7: 密码过期后多少天禁用此用户账户: 账号失效时间,默认为空: 保留字段:
用户初始配置文件
配置文件来源
新建用户时,根据 /etc/skel 模板目录复制
主要的初始配置文件
~/.bash_profile 每次登录时执行,定义初始化变量 ~/.bashrc 每次进入新的bash环境时执行,每开启一个新的终端,专门定义永久别名
全局配置文件:
/etc/profile /etc/bashrc
用户删除与查询
userdel 删除用户
userdel 用户名
-r 连同用户目录 用户邮件也一并删除
使用id查询账号
id zhu # 查看用户基本信息
组管理
添加组
groupadd 组名 /etc/group 每个组一行,以:分割成4个字段 zhug1:x:1002:zhu1 组账号名称 密码占位符 组账号的GID 本组成员列表
gpasswd
添加成员到组 -a 一次一个 删除成员 -d 一次一个 定义组成员的列表 -M 一次多个(原来的会被删除) 指定组的管理员 -A 相当于管理下放 gpasswd -A zhu1 zhug1
清空组中所有成员 gpasswd -M ” zhug1
组管理员信息
/etc/gshadow
zhug1:!:zhu1:zhu1
组名 加密后的密码字符串 组管理列表 本组成员列表
删除组
groupdel 组名
不让删除基本组
计划任务
cron 任务概述
按照设置的时间间隔,为用户周期性的去执行某一项固定的系统任务
软件包 cronie crontabs
系统服务 crond
日志文件 /var/log/cron
计划任务书写格式:
分 时 日 月 周 任务命令行(绝对路径) 参考 /etc/crontab 文件
格式: * * * * * # 每分钟执行一次
匹配范围内的任意时间 * 星号 分隔多个不连续的时间点 , 逗号 指定时间频率 /n 每n.. 指定连续时间范围 –
30 8 * * * #每天8点30分执行 30 23 * * * #每天晚上11点半执行 30 23 * * 5 #每周五晚上11点半执行 30 23 * * 1-5 #每周1至周五11点半执行 30 23 * * 1,4,5 # 每周1,周四,周五11点半执行 30 23 1 * 1 # 每月的1号执行 或者每周一执行 并集 */5 * * * * # 每隔5分钟执行一次
命令
crontab -e 编辑计划任务 (dd 删除即可) -u 用户名 无则以当前用户身份写 -l 查看 -r 清除 全部的计划任务(不推荐)
案例
每分钟记录当前的系统时间,写入到/opt/time.txt
命令 * * * * * date >> /opt/time.txt
评论