03用户管理 、 组账号管理 、 计划任务

用户账户

作用: 1.可以登陆操作系统 2.不同的用户具备不同的权限

唯一标识:UID(编号从0开始的编号,默认最大60000)

zhangsan(UID 1200)

管理员root的UID:永远为0

系统用户为 1~999(专为程序运行,服务运行提供的身份 )

普通用户的UID:默认从1000开始

一个用户必须至少属于一个组

组账户的分类:

基本组:系统创建与用户同名

附加组(从属组):由管理员创建,由管理员进行加入

本地账户的数据文件

/etc/passwd /etc/shadow

/etc/group /etc/gshadow


/etc/passwd

保存用户账号的基本信息,每个用户记录一行,分割为个字段

passwd 备份文件 /etc/passwd-

[root@localhost ~]# ls /etc/passwd-
passwd   passwd-  

root​❌0:0:Super User:/root:/bin/bash

root:用户名

x:密码占位符

uid:0

用户组编号(基本组 gid):0

用户描述信息:Super User

该用户的家目录:/root

解释器:/bin/bash

tom​❌1002:1002::/home/tom:/bin/bash

tom用户名:x密码站位:1002 UID:1002GID:用户信息描述:/home/tom家目录:/bin/bash 解释器

useradd

命令useradd

– 格式:useradd [选项]… 用户名

• 常用命令选项

– -u:指定 UID 标记号

– -d:指定宿主目录(家目录),缺省为 /home/用户名 --home-dir HOME_DIR dirctory

– -G:指定所属的附加组

– -s:指定用户的登录解释器

useradd nsd03

-u, --uid UID 新账户的用户 ID

useradd nsd03 -u 1300

grep nds04 /etc/passwd

id 查看用户

id tom
uid=1002(tom) gid=1002(tom) 组=1002(tom)

-d directory

useradd -d /home/oo7oo asdf

-G, --groups GROUPS
[root@localhost ~]# groupadd stugrp
[root@localhost ~]# useradd -G stugrp nsd08
[root@localhost ~]# id nsd08
uid=1304(nsd08) gid=1305(nsd08) 组=1305(nsd08),1304(stugrp)
[root@localhost ~]#

-s, --shell SHELL 新账户的登录 shell

默认解释器 、/bin/bash

用户---->解释器---->内核---->硬件

useradd -s /sbin/nologin nsd10

命令 usermod

– 格式:usermod [选项]… 用户名

• 常用命令选项

– -l:更改用户帐号的登录名称

– -u:用户id

– -d:家目录路径

– -s:登录解释器

– -G:附加组 //重置附加组

-l:更改用户帐号的登录名称

-u:用户id

-s:登录解释器

-l 更改用户帐号的登录名称

–login NEW_LOGIN 新的登录名称

usermod -l stu14 nds14

-s, --shell SHELL 该用户帐号的新登录 shell

usermod -s /sbin/nologin stu13

-d, --home HOME_DIR 用户的新主目录

usermod -d /etc/abc/ nsd15

usermod

usermod -G suygrp nsd16 组重置

gpasswd -a nsd16 tmooc 追加组

[root@localhost ~]# gpasswd -a nsd16 tmooc
正在将用户“nsd16”加入到“tmooc”组中
[root@localhost ~]# id nsd16
uid=1305(nsd16) gid=1306(nsd16) 组=1306(nsd16),1304(stugrp),1307(tmooc)

passwd 设置密码

root 用户

passwd +要修改的用户名

其他用户

passwd

输入密码:

确认密码:

非交互式设置密码:

-S, --status 报告已命名帐号的密码状态(只有 root 用户才能进行此操作)
–stdin 从标准输入读取令牌(只有 root 用户才能进行此操作)

echo 111111 | passwd --stdin admin

[root@localhost ~]# echo 111111 | passwd -S admin
admin PS 2025-06-06 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

/etc/shadow

cat /etc/shadow

admin:$61RZFbn4R9O6Md28c1RZFbn4R9O6Md28c1RZFbn4R9O6Md28cUAbGIofaD9u4.FiYbSjYhU.fHd4hNmBJg5H2PbGh0H4Z6265uuyQ0G7d6vqEqmxu4jM9ORuVsloOm1q9q8AeV.:20245:0:99999:7:::

账号:加密后的密码:密码创建时间:0代表密码最短使用的期限:密码最长使用的期限99999:7 提前7天警告密码过期:::表示用户密码有效

/etc/skel

创建家目录时,跟随创建的默认文件

[root@localhost ~]# ls -A /etc/skel/
.bash_logout  .bash_profile  .bashrc

在新添加账号时,会复制/etc/skel 下所创建的文件到家目录,在/etc/skel下创建文件后,新的账号也会同步新创建的文件

[root@localhost ~]# ls -A /etc/skel/
.bash_logout  .bash_profile  .bashrc
[root@localhost ~]# touch /etc/skel/来财来财
[root@localhost ~]# useradd laicai
[root@localhost ~]# ls -a /home/laicai/
.  ..  来财来财  .bash_logout  .bash_profile  .bashrc

/home/root/ 初始文件配置

~/.bash_profile 每次登录系统时执行,定义初始变量值

~/.bashrc 每次进入新的Bash环境时执行(开启新的终端)

# .bashrc

# User specific aliases and functions
echo ·¢²Æ·¢²Æ 

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias hn='hostname'
alias haha='echo haha'
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
~                  

/etc/bashrc 全局配置文件 影响全体用户

userdel 删除命令

命令格式:userdel

-r, --remove 删除主目录和信件池

组账户管理

/etc/group,保存组帐号的基本信息

root​❌0:admin

root组名字:x组密码占位符:0组id:admin 组成员

gpasswd

-a, --add USER 向组 GROUP 中添加用户 USER

[root@localhost ~]# useradd kaka
[root@localhost ~]# useradd nb
[root@localhost ~]# useradd jack
[root@localhost ~]# useradd kenji
[root@localhost ~]# gpasswd  -a kaka tarena
正在将用户“kaka”加入到“tarena”组中

查看用户是否在组里

方法1
[root@localhost ~]# grep kaka /etc/group
tarena:x:1310:kaka
kaka:x:1311:
方法2
[root@localhost ~]# id kaka
uid=1307(kaka) gid=1311(kaka) 组=1311(kaka),1310(tarena)
[root@localhost ~]# grep tarena /etc/group
tarena:x:1310:kaka,nb

-M, --members USER,… 设置组 GROUP 的成员列表

[root@localhost ~]# gpasswd -M 'jack,kenji' tarena
[root@localhost ~]# grep tarena /etc/group
tarena:x:1310:jack,kenji

之前加的两个用户不见了,所以这条命令是设置组成员列表,不能追加

gpasswd  -M 'kaka,nb,jack,kenji' tarena
[root@localhost ~]# grep tarena /etc/group
tarena:x:1310:kaka,nb,jack,kenji

-d, --delete USER 从组 GROUP 中添加或删除用户

gpasswd -d kaka tarena
正在将用户“kaka”从“tarena”组中删除
[root@localhost ~]# grep tarena /etc/group
tarena:x:1310:nb,jack,kenji
只能一个一个删除太麻烦

组内一次性删除所有成员,定义-M 参数为空

[root@localhost ~]# gpasswd -M '' tarena
[root@localhost ~]# grep tarnea /etc/group

练习

[root@localhost ~]# gpasswd  -a kaka tarena
正在将用户“kaka”加入到“tarena”组中
[root@localhost ~]# grep kaka /etc/group
tarena:x:1310:kaka
kaka:x:1311:
[root@localhost ~]# id kaka
uid=1307(kaka) gid=1311(kaka) 组=1311(kaka),1310(tarena)
[root@localhost ~]# gpasswd -a nb tarena
正在将用户“nb”加入到“tarena”组中
[root@localhost ~]# grep tarena /etc/group
tarena:x:1310:kaka,nb
[root@localhost ~]# gpasswd -M 'jack,kenji' tarena
[root@localhost ~]# grep tarena /etc/group
tarena:x:1310:jack,kenji
[root@localhost ~]# gpasswd  -M 'kaka,nb,jack,kenji' tarena
[root@localhost ~]# grep tar* /etc/group
tape:x:33:
printadmin:x:995:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
cockpit-wsinstance:x:987:
natasha:x:1003:
tarena:x:1310:kaka,nb,jack,kenji
[root@localhost ~]# grep tarena /etc/group
tarena:x:1310:kaka,nb,jack,kenji
[root@localhost ~]# gpasswd  -d kaka tarena
正在将用户“kaka”从“tarena”组中删除
[root@localhost ~]# grep tarena /etc/group
tarena:x:1310:nb,jack,kenji
[root@localhost ~]# gpasswd -M '' tarena
[root@localhost ~]# grep tarnea /etc/group
[root@localhost ~]# gpasswd -a kaka tarena
正在将用户“kaka”加入到“tarena”组中
[root@localhost ~]# grep tarena /etc/group
tarena:x:1310:kaka
[root@localhost ~]# id kaka
uid=1307(kaka) gid=1311(kaka) 组=1311(kaka),1310(tarena)
[root@localhost ~]# gpasswd -a nb tarena
正在将用户“nb”加入到“tarena”组中
[root@localhost ~]# grep nb /etc/group
unbound:x:990:
tarena:x:1310:kaka,nb
nb:x:1312:
[root@localhost ~]# id nb
uid=1308(nb) gid=1312(nb) 组=1312(nb),1310(tarena)
[root@localhost ~]# gpasswd -M 'jack,kenji' tarena
[root@localhost ~]# grep tarena /etc/group
tarena:x:1310:jack,kenji
[root@localhost ~]# gpasswd -a nb tarena
正在将用户“nb”加入到“tarena”组中
[root@localhost ~]# grep ^tar /etc/group
tarena:x:1310:jack,kenji,nb
[root@localhost ~]# gpasswd -d nb tarena
正在将用户“nb”从“tarena”组中删除
[root@localhost ~]# grep tarena /etc/gr*
/etc/group:tarena:x:1310:jack,kenji
/etc/group-:tarena:x:1310:jack,kenji,nb
grep: /etc/grub.d: Is a directory
[root@localhost ~]# gpasswd  -d nb tarena
正在将用户“nb”从“tarena”组中删除
gpasswd:用户“nb”不是“tarena”的成员
[root@localhost ~]# gpasswd  -a nb tarena
正在将用户“nb”加入到“tarena”组中
[root@localhost ~]# gpasswd  -d nb tarena
正在将用户“nb”从“tarena”组中删除
[root@localhost ~]# grep ^tar /etc/gr*
/etc/group:tarena:x:1310:jack,kenji
/etc/group-:tarena:x:1310:jack,kenji,nb
grep: /etc/grub.d: Is a directory
[root@localhost ~]# grep ^tar /etc/gro*

-A, --administrators ADMIN,… 设置组的管理员列表
普通用户添加组成员,提示没有权限,这是需要设置组管理员

[jack@localhost root]$ gpasswd -a kenji tarena
gpasswd:没有权限。

在root下配置

[root@localhost ~]# gpasswd -A jack tarena
jack再次添加组成员
[jack@localhost root]$ gpasswd -a kenji tarena
正在将用户“kenji”加入到“tarena”组中

那么如何查看组的管理员是谁呢

/etc/gshadow

[root@localhost ~]# grep tarena /etc/gshadow
tarena:!:jack:jack,kenji

tarena 组名:

!:密码加密后的字符串,现在不用了

:jack 组管理员

:jack,kenji 组成员

设置多个组管理员

[root@localhost ~]# gpasswd  -A 'jack,nb' tarena
[root@localhost ~]# grep tarena /etc/group[root@localhost ~]# grep tarena /etc/gshadow
tarena:!:jack,nb:jack,kenji
tarena:x:1310:jack,kenji

组删除 groupdel

root@localhost ~]# groupdel tarena

计划任务 crontab

基本命令

命令功能
crontab -e编辑当前用户的 cron 表(首次使用时会提示选择编辑器)
crontab -l列出当前用户的所有计划任务
crontab -r删除当前用户的所有计划任务(慎用!)
crontab -u username -e管理员编辑其他用户的 cron 表(需 root 权限)
crontab -u username -l查看其他用户的计划任务

crontab 文件格式

每个任务一行,格式为:

* * * * * <要执行的命令>
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └─ 星期几 (0-7, 0和7=星期日)
│ │ │ └─── 月份 (1-12)
│ │ └───── 日 (1-31)
│ └─────── 小时 (0-23)
└───────── 分钟 (0-59)

时间字段详解

字段取值范围特殊符号用法
分钟0-59*/5 每 5 分钟
小时0-238-17 早 8 点到下午 5 点
1-311,15 每月 1 号和 15 号
1-12*/3 每 3 个月
星期0-7 (0/7=周日)1-5 周一到周五

常用时间示例

示例说明
* * * * *每分钟执行一次
0 * * * *每小时整点执行
*/15 * * * *每 15 分钟执行
08-17 * * 1-5工作日早 8 点到晚 5 点每小时执行
0 0 1 * *每月 1 号 0 点执行
@reboot系统启动时执行(非标准 cron,需系统支持)

特殊关键字(部分系统支持)

关键字等价于说明
@yearly0 0 1 1 *每年 1 月 1 日执行
@monthly0 0 1 * *每月 1 日执行
@weekly0 0 * * 0每周日执行
@daily0 0 * * *每天 0 点执行
@hourly0 * * * *每小时执行

重要注意事项

  1. 路径问题 cron 的执行环境与用户登录环境不同,脚本中建议使用 绝对路径(如 /home/user/script.sh 而非 ./script.sh)。

  2. 环境变量 cron 默认环境变量简单,关键命令需写全路径(如 /usr/bin/python3)。建议在脚本中设置环境变量。

  3. 输出处理 cron 的输出会通过邮件发送给用户。若需忽略输出:

    Plaintext
    
    
    
    
    
    
    * * * * * /path/to/command >/dev/null 2>&1
    
  4. 权限控制

    • 普通用户只能操作自己的 cron。
    • 限制用户使用 cron:将用户名写入 /etc/cron.deny
  5. 日志查看

    • cron 日志通常位于 /var/log/syslog/var/log/cron(取决于系统)。
    • 使用 grep cron /var/log/syslog 查看记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值