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

评论