目的是为了对linux系统里的资源进行管控 -- 谁能访问,谁不能访问
资源管控:文件的访问、读取、执行
进程 -- 正在运行的程序 --内核会因为这个进程的运行身份对它进行一定的限制
用户 user -- 登录的人
组 group -- 组织
UID -- 每个用户的身份证号 --唯一
GID -- 每个组的标识 -- 唯一
多个账户可以属于同一个组
一个用户可以加入多个组
[root@sc usergroup]# id root
uid=0(root) gid=0(root) 组=0(root)
[root@sc usergroup]# useradd sc1
[root@sc usergroup]# id sc1
uid=1061(sc1) gid=1061(sc1) 组=1061(sc1)
[root@sc usergroup]# useradd sc2
[root@sc usergroup]# id sc2
uid=1062(sc2) gid=1062(sc2) 组=1062(sc2)
一个用户属于某个组会继承这个组的权限
1.主要组
2.次要组
用户的主要组(有效组)属于某个组,会继承这个组的权限,如果是附属组属于某个组,也会继承
拒绝权限高于一切 --》针对用户
一个组允许,一个组拒绝 --》允许
/etc/passwd -- 记录用户的信息 当用户登录的时候,会查看这个文件
[root@sc usergroup]# tail -3 /etc/passwd
liulangyang:x:1060:1060::/home/liulangyang:/bin/bash
sc1:x:1061:1061::/home/sc1:/bin/bash
sc2:x:1062:1062::/home/sc2:/bin/bash
使用: 进行分割
字段1: 用户名
字段2: 用户密码字段或者密码占位符"x"
字段3: 用户id --》唯一,创建的普通用户uid都是在上一个用户的基础上+1 -u 可以指定
字段4: 所属基本组的id --》 用户在创建的时候默认都会创建一个同名的组,这个组会成为用户的基本组 -g 可以指定
字段5: 用户的描述信息 --》 默认是空 -c 可以指定
字段6: 家目录 --》 默认是在/home目录下创建一个跟用户同名的目录 -d 可以指定
字段7: 登录shell --》 默认是/bin/bash -s 可以指定
[root@sc usergroup]# awk -F: '{print $7}' /etc/passwd|sort|uniq
/bin/bash #普通shell
/bin/false #禁止用户登录
/bin/sync #sync就是内存的缓存同步到磁盘
/sbin/halt #关机
/sbin/nologin #禁止用户登录
/sbin/shutdown #关机
[root@sc usergroup]# useradd -s /sbin/nologin sc3 #禁止登录
[root@sc usergroup]# tail -1 /etc/passwd
sc3:x:1063:1063::/home/sc3:/sbin/nologin
[root@sc usergroup]# echo 123456|passwd sc3 --stdin #指定密码
更改用户 sc3 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@sc usergroup]# ssh [email protected] -p 2233
The authenticity of host '[192.168.0.204]:2233 ([192.168.0.204]:2233)' can't be established.
ECDSA key fingerprint is SHA256:JccgoJ9N7Tel3N/Zehpgraddu8nLaQUlepsJrQNX34c.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.0.204]:2233' (ECDSA) to the list of known hosts.
[email protected]'s password:
Connection closed by 192.168.0.204 port 2233
[root@sc usergroup]# su - sc3
This account is currently not available.
[root@sc usergroup]# useradd -s /bin/false sc4
[root@sc usergroup]# echo 123456|passwd sc4 --stdin
更改用户 sc4 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@sc usergroup]# su - sc4
[root@sc usergroup]# ssh [email protected] -p 2233
[email protected]'s password:
Last login: Tue Aug 3 11:23:46 2021
Connection to 192.168.0.204 closed.
[root@sc ~]# useradd -c "this is sc5" sc5
[root@sc ~]# tail -1 /etc/passwd
sc5:x:1065:1065:this is sc5:/home/sc5:/bin/bash
[root@sc ~]# useradd -d /tmp/sc6 sc6
[root@sc ~]# tail -1 /etc/passwd
sc6:x:1066:1066::/tmp/sc6:/bin/bash
[root@sc ~]# su - sc6
[sc6@sc ~]$ pwd
/tmp/sc6
[root@sc ~]# groupadd sanchuang
[root@sc ~]# tail -2 /etc/group
feng:x:1002:
sanchuang:x:1003:
[root@sc ~]# useradd -g sanchuang jack
[root@sc ~]# id jack
uid=1002(jack) gid=1003(sanchuang) 组=1003(sanchuang)
-u是短选项 --uid是长选项
[root@sc ~]# useradd --uid 2000 sc8
[root@sc ~]# tail -1 /etc/passwd
sc8:x:2000:2000::/home/sc8:/bin/bash
/etc/passwd 存放用户信息相关文件
/etc/shadow 存放用户密码相关信息的文件
两个备份文件 /etc/passwd- /etc/shadow- 永远比/etc/passwd 和shadow 少一行
[root@sc etc]# ls |egrep passwd
passwd
passwd-
[root@sc etc]# wc -l passwd
36 passwd
[root@sc etc]# wc -l passwd-
35 passwd-
[root@sc etc]# ls |egrep "^shadow"
shadow
shadow-
[root@sc etc]# wc -l <shadow
36
[root@sc etc]# wc -l <shadow-
35
[root@goweb ~]# cat /etc/shadow|tail -2
named:!!:19550::::::
sc:$6$tteNc7C5$I7h1ZllTo1TBBK.kCbxVsu3z3ShwxxsDm8COq1kuR3.MxbvoQQ7NubfpecDY6ygqB7gpUYTydK7TYY6lWKHtt/:19557:0:99999:7:::
第一个字段:用户账号(sc)
第二个字段:存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;星号代表帐号被锁定;双叹号表示这个密码已经过期了。
$6开头的,表明是用SHA-512加密的,$1表明是用MD5加密的,$2是用Blowfish加密的,$5是用 SHA-256加密的;
$tteNc7C5表示加密算法所加的盐值为abcde;
$I7h1ZllTo1TBBK.kCbxVsu3z3ShwxxsDm8COq1kuR3.MxbvoQQ7NubfpecDY6ygqB7gpUYTydK7TYY6lWKHtt/表示加密算法得到的密文
第三个字段:表示的是从某个时刻起,到用户最后一次修改口令时的天数,时间起点对不同的系统可能不一样。
第四个字段:指的是两次修改口令之间所需的最小天数。
第五个字段:指的是口令保持有效的最大天数。
第六个字段:表示的是从系统开始警告用户到用户密码正式失效之间的天数。
第七个字段:表示的是用户没有登录活动但账号仍能保持有效的最大天数。
第八个字段:给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
第九个字段:保留字段
/etc/group -->存放组信息的
/etc/gshadow -->存放组密码的
/etc/group- 和 /etc/gshadow- 备份文件
[root@sc etc]# ls |grep group
group
group-
[root@sc etc]# ls |grep gshadow
gshadow
gshadow-
[root@sc etc]# wc -l <group
57
[root@sc etc]# wc -l <group-
56
[root@sc etc]# wc -l <gshadow
57
[root@sc etc]# wc -l <gshadow-
56
[root@sc ~]# cd /home/sc7
[root@sc sc7]# ls
[root@sc sc7]# ls -al
总用量 16
drwx------ 2 sc7 sc1 62 8月 3 11:52 .
drwxr-xr-x. 70 root root 4096 8月 3 11:57 ..
-rw-r--r-- 1 sc7 sc1 18 11月 9 2019 .bash_logout
-rw-r--r-- 1 sc7 sc1 141 11月 9 2019 .bash_profile
-rw-r--r-- 1 sc7 sc1 312 11月 9 2019 .bashrc
[root@sc sc7]# cd /etc/skel
[root@sc skel]# touch aa #在skel下面创建一个aa文件
[root@sc skel]# ls -al
总用量 24
drwxr-xr-x. 2 root root 72 8月 3 15:38 .
drwxr-xr-x. 87 root root 8192 8月 3 11:57 ..
-rw-r--r-- 1 root root 0 8月 3 15:38 aa
-rw-r--r--. 1 root root 18 11月 9 2019 .bash_logout
-rw-r--r--. 1 root root 141 11月 9 2019 .bash_profile
-rw-r--r--. 1 root root 312 11月 9 2019 .bashrc
[root@sc skel]# useradd sc9 #创建新用户
[root@sc skel]# cd /home/sc9 #默认家目录下多了个aa文件
[root@sc sc9]# ls -al
总用量 16
drwx------ 2 sc9 sc9 72 8月 3 15:39 .
drwxr-xr-x. 71 root root 4096 8月 3 15:39 ..
-rw-r--r-- 1 sc9 sc9 0 8月 3 15:38 aa
-rw-r--r-- 1 sc9 sc9 18 11月 9 2019 .bash_logout
-rw-r--r-- 1 sc9 sc9 141 11月 9 2019 .bash_profile
-rw-r--r-- 1 sc9 sc9 312 11月 9 2019 .bashrc
[root@sc etc]# cd /home
[root@sc home]# ll
总用量 0
drwx------ 2 feng feng 83 7月 28 19:34 feng
drwx------ 2 haha haha 62 7月 28 20:09 haha
drwx------ 2 jack sanchuang 62 7月 27 22:12 jack
drwx------ 2 sc sc 62 7月 19 21:24 sc
drwx------ 2 tangsen xiyouji 83 7月 28 17:39 tangsen
drwx------ 2 tangseng tangseng 83 7月 29 11:16 tangseng
drwx------ 2 xixi xixi 62 7月 28 20:09 xixi
Ubuntu里默认是禁用root用户的
默认情况下root用户不能远程登录Ubuntu系统的
1.给root用户设置密码
sudo passwd root
2.切换到root用户
su - root
sudo是一个授权的命令,得到了root用户的授权
有一个日志文件会记录被授权者执行的所有命令
/var/log/secure
/var 存放可变化的文件 variable 可变的
log 日志文件 是不停的记录程序发生的事情
secure 是与Linux安全相关的日志
登录进入Linux,新建用户,设密密码
messages 可以记录的日志,默认都记录 --》rsyslogd进程会记录能记录的各种消息都会记录一份到messages文件里
boot.log 启动过程中的日志
[root@sc ~]# vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tangseng ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
%xiyouji ALL=(ALL) ALL
[root@sc ~]# su - tangseng
上一次登录:六 7月 29 11:11:18 CST 2023pts/0 上
[tangseng@sc ~]$ useradd cs
useradd: Permission denied.
useradd:无法锁定 /etc/passwd,请稍后再试。
[tangseng@sc ~]$ sudo useradd cs
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] tangseng 的密码:
[tangseng@sc ~]$ id cs
uid=1008(cs) gid=1010(cs) 组=1010(cs)
[root@sc ~]# vim /etc/sudoers
## Services
Cmnd_Alias USERADDMANGER = /usr/sbin/useradd,/usr/sbin/userdel,/usr/bin/passwd,/usr/sbin/groupadd
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tangseng ALL=(ALL) ALL
feng ALL=USERADDMANGER
[root@sc ~]# su - feng
上一次登录:五 7月 28 21:34:41 CST 2023pts/1 上
[feng@sc ~]$ sudo useradd sc1
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] feng 的密码:
[feng@sc ~]$ id sc1
uid=1009(sc1) gid=1011(sc1) 组=1011(sc1)
[feng@sc ~]$ sudo userdel -r sc1
[feng@sc ~]$ id sc1
id: sc1: no such user
[feng@sc ~]$ sudo ip route add 192.168.102.0/24 via 192.168.102.2 dev ens33
对不起,用户 feng 无权以 root 的身份在 sc 上执行 /sbin/ip route add 192.168.102.0/24 via 192.168.102.2 dev ens33。
/etc/login.defs是一个配置文件,用于定义用户登录时的默认行为。
定义用户密码最短长度和最长长度
控制用户密码失效时限
定义用户不能使用的密码列表
定义用户密码复杂性要求
定义用户默认Shell等
[root@sc ~]# cat /etc/login.defs
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 1000
UID_MAX 60000
# System accounts
SYS_UID_MIN 201
SYS_UID_MAX 999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 1000
GID_MAX 60000
# System accounts
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK 077
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512
0 root
1~201 -->系统安装好就有的用户 --》系统用户(程序用户):作用就是用来启动或者登录某个程序
201~999 自己新建的系统用户
1000~60000 自己新建的用户
>>> import os
>>> os.getpid()
29159
>>> os.getuid()
0
[root@mysql ~]# cat /etc/passwd
feng:x:1000:1000::/home/feng:/bin/bash
# 切换用户
[root@mysql ~]# su - feng
[feng@mysql ~]$ python3
Python 3.6.8 (default, Nov 16 2020, 16:55:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.getpid()
7728
>>> os.getuid()
1000
格式:userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
[root@sc usergroup]# userdel sanchuang01
[root@sc usergroup]# id sanchuang01
id: “sanchuang01”:无此用户
[root@sc usergroup]# ls /home/sanchuang01
aa
[root@sc usergroup]# userdel -r sanchuang02
[root@sc usergroup]# ls /home/sanchuang02
ls: 无法访问'/home/sanchuang02': 没有那个文件或目录
格式:usermod [选项]... 用户名
常用命令选项
-l:更改用户帐号的登录名称
-L:锁定用户账户
-U:解锁用户账户
以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s
[root@sc usergroup]# tail -1 /etc/passwd
sc12:x:2004:2003::/home/sc12:/bin/bash
[root@sc usergroup]# usermod -l sanchuang12 sc12
[root@sc usergroup]# tail -1 /etc/passwd
sanchuang12:x:2004:2003::/home/sc12:/bin/bash
[root@sc usergroup]# less /etc/shadow
[root@sc usergroup]# usermod -L sc11
[root@sc usergroup]# less /etc/shadow
sc11:!$6$PnkGaFTzDiEvX5U3$Kx5ZAh2cITesMOs3ZbeMeUPQ9LbhBop2btsk1Q8.K6QUcNRokwGBRfqCsMG7BEcpW6Tspp.C0azi9WcUjsyrI/:18843:0:99999:7::18809:
账户锁定其实就是在密码字段前加一个!
这样的话在用户登录的时候就会出现密码不匹配,从而达到锁定效果
重新设定密码的话,会将之前的密码字段覆盖,从而达到解锁效果
[root@sc usergroup]# ssh [email protected] -p2233
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
[email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
格式:passwd [选项]... 用户名
常用命令选项
-d:清空用户的密码,使之无需密码就可以切换用户
-l:锁定用户帐号
-S:查看用户帐号的状态(是否被锁定)
-u:解锁用户帐号
--stdin:接收别的命令stdout做为stdin标准输入设置密码
root用户可以修改所有用户密码,不要求复杂性
普通用户只能改自己的密码,要求复杂性
[root@sc usergroup]# passwd -l sc11
锁定用户 sc11 的密码 。
passwd: 操作成功
[root@sc usergroup]# diff /etc/shadow /etc/shadow-
100c100
< sc11:!!$6$PnkGaFTzDiEvX5U3$Kx5ZAh2cITesMOs3ZbeMeUPQ9LbhBop2btsk1Q8.K6QUcNRokwGBRfqCsMG7BEcpW6Tspp.C0azi9WcUjsyrI/:18843:0:99999:7::18809:
---
> sc11:$6$PnkGaFTzDiEvX5U3$Kx5ZAh2cITesMOs3ZbeMeUPQ9LbhBop2btsk1Q8.K6QUcNRokwGBRfqCsMG7BEcpW6Tspp.C0azi9WcUjsyrI/:18843:0:99999:7::18809:
root用户可以修改所有用户密码,不要求复杂性
普通用户只能改自己的密码,要求复杂性
[root@sc usergroup]# passwd sc11
更改用户 sc11 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@sc usergroup]# su - sc1
[sc1@sc ~]$ passwd
更改用户 sc1 的密码 。
Current password:
新的 密码:
无效的密码: 密码少于 8 个字符
新的 密码:
无效的密码: 密码少于 8 个字符
新的 密码:
主要组(私有组)
与用户相关的默认组,在/etc/passwd文件的第四个字段定义
次要组(附属组)
用户可以同时属于其他的组,在/etc/group文件的第四个字段定义
GID: (Group Identify,组标识号)
格式:groupadd [-g GID] 组帐号名
格式:groupdel 组帐号名
用途:设置组名和组id
格式:groupmod [选项]... 组帐号名
常用命令选项
-n:修改组名
-g:修改组id
[root@sc usergroup]# groupadd -g 20001 g1
[root@sc usergroup]# less /etc/group
[root@sc usergroup]# tail -1 /etc/group
g1:x:20001:
[root@sc usergroup]# groupdel g1
[root@sc usergroup]# tail -1 /etc/group
sc11:x:2003:
[root@sc usergroup]# groupmod -n sanchuang11 sc11
[root@sc usergroup]# tail -1 /etc/group
sanchuang11:x:2003:
新建文件或者文件夹的时候,使用的gid
gid是哪个,哪个就是有效组
如下报错
用户必须是组的成员才能切换有效组
[sc1@sc ~]$ newgrp sc2
密码:
newgrp: failed to crypt password with previous salt: 无效的参数
[sanchuang12@sc ~]$ touch bb
[sanchuang12@sc ~]$ ls -a
. .. aa .bash_logout .bash_profile .bashrc bb
[sanchuang12@sc ~]$ ls -al
总用量 16
drwx------ 2 sanchuang12 sanchuang11 82 8月 4 17:23 .
drwxr-xr-x. 74 root root 4096 8月 4 16:18 ..
-rw-r--r-- 1 sanchuang12 sanchuang11 0 8月 3 15:38 aa
-rw-r--r-- 1 sanchuang12 sanchuang11 18 11月 9 2019 .bash_logout
-rw-r--r-- 1 sanchuang12 sanchuang11 141 11月 9 2019 .bash_profile
-rw-r--r-- 1 sanchuang12 sanchuang11 312 11月 9 2019 .bashrc
-rw-r--r-- 1 sanchuang12 sanchuang11 0 8月 4 17:23 bb
[sanchuang12@sc ~]$ newgrp sc1
[sanchuang12@sc ~]$ touch cc
[sanchuang12@sc ~]$ ls -al
总用量 16
drwx------ 2 sanchuang12 sanchuang11 92 8月 4 17:24 .
drwxr-xr-x. 74 root root 4096 8月 4 16:18 ..
-rw-r--r-- 1 sanchuang12 sanchuang11 0 8月 3 15:38 aa
-rw-r--r-- 1 sanchuang12 sanchuang11 18 11月 9 2019 .bash_logout
-rw-r--r-- 1 sanchuang12 sanchuang11 141 11月 9 2019 .bash_profile
-rw-r--r-- 1 sanchuang12 sanchuang11 312 11月 9 2019 .bashrc
-rw-r--r-- 1 sanchuang12 sanchuang11 0 8月 4 17:23 bb
-rw-r--r-- 1 sanchuang12 sc1 0 8月 4 17:24 cc
su 用户名 :切换用户,但是不切换用户环境
su - 用户名 :切换用户并且切换用户环境
[root@sc ~]# su sc1
[sc1@sc root]$ pwd
/root
[sc1@sc root]$ exit
[root@sc ~]# su - sc1
上一次登录:三 8月 4 21:55:01 EDT 2021pts/0 上
[sc1@sc ~]$ pwd
/home/sc1
新建用户,复制到用户的家目录
主要控制用户初始环境配置
-rw------- 1 sc1 sc1 65 8月 4 21:55 .bash_history
-rw-r--r--. 1 sc1 sc1 18 7月 21 2020 .bash_logout
-rw-r--r--. 1 sc1 sc1 141 7月 21 2020 .bash_profile
-rw-r--r--. 1 sc1 sc1 376 7月 21 2020 .bashrc
-rw-rw-r-- 1 sc1 sc1 0 8月 4 05:19 bb
这三个文件其实就是三个脚本,这三个脚本都是在特定的时间执行的。
.bash_logout 用户每次退出登录时执行
.bash_profile 用户每次登录时执行
.bashrc 用户每次进入新的bash环境时执行
.bash_history 记录上次注销前使用的历史命令
[sc13@sc ~]$ users
root root root sc13
[sc13@sc ~]$ who
root tty1 2021-08-04 02:41
root pts/0 2021-08-04 23:21 (192.168.1.20)
root pts/1 2021-08-04 22:17 (192.168.1.20)
sc13 pts/2 2021-08-04 23:24 (192.168.1.2)
[sc13@sc ~]$ w
23:24:26 up 5:34, 4 users, load average: 0.01, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 02:41 20:43m 0.01s 0.01s -bash
root pts/0 192.168.1.20 23:21 1.00s 0.01s 0.00s ssh sc13@
root pts/1 192.168.1.20 22:17 1:04m 0.00s 0.00s -bash
sc13 pts/2 192.168.1.2 23:24 1.00s 0.01s 0.00s w
文章浏览阅读936次,点赞22次,收藏26次。React核心基础
文章浏览阅读2k次。linux系统查看磁盘空间的命令是【df -hl】,该命令可以查看磁盘剩余空间大小。如果要查看每个根路径的分区大小,可以使用【df -h】命令。df命令以磁盘分区为单位查看文件系统。本文操作环境:red hat enterprise linux 6.1系统、thinkpad t480电脑。(学习视频分享:linux视频教程)Linux 查看磁盘空间可以使用 df 和 du 命令。df命令df 以磁..._df -hl
文章浏览阅读923次。uses ComObj;var ExcelApp: OleVariant;implementationprocedure TForm1.Button1Click(Sender: TObject);const // SheetType xlChart = -4109; xlWorksheet = -4167; // WBATemplate xlWBATWorksheet = -4167_range[char(96 + acolumn) + inttostr(65536)].end[xlup]
文章浏览阅读2.3k次。上图为任务代码,在任务具体执行的方法中使用,一定要写在方法内使用SpringContextUtil.getBean()方法实例化Spring service类下边是ruoyi-quartz模块中util/SpringContextUtil.java(已改写)import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.s..._ruoyi-quartz无法引入ruoyi-admin的service
文章浏览阅读2w次,点赞10次,收藏77次。yum,全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。可以这么说,yum 是改进型的 RPM 软件管理器,它很好的解决了 RPM 所面临的软件包依赖问题。yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,当管理员使用 yum 安装 RPM 包时,yum 会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的 RPM 包并进行安装。_centos7配置yum源
文章浏览阅读828次,点赞21次,收藏8次。今天学长向大家分享一个毕业设计项目毕业设计 基于深度学习的抽烟行为检测算法实现(源码分享)毕业设计 深度学习的抽烟行为检测算法实现通过目前应用比较广泛的 Web 开发平台,将模型训练完成的算法模型部署,部署于 Web 平台。并且利用目前流行的前后端技术在该平台进行整合实现运营车辆驾驶员吸烟行为检测系统,方便用户使用。本系统是一种运营车辆驾驶员吸烟行为检测系统,为了降低误检率,对驾驶员视频中的吸烟烟雾和香烟目标分别进行检测,若同时检测到则判定该驾驶员存在吸烟行为。进行流程化处理,以满足用户的需要。
文章浏览阅读3.7k次,点赞3次,收藏14次。多个定时器同步触发启动是一种比较实用的功能,这里将对此做个示例说明。_stm32 定时器同步
文章浏览阅读348次。出处 : http://www.cnblogs.com/mythou/p/3187881.html本来想分析AppsCustomizePagedView类,不过今天突然接到一个临时任务。客户反馈说机器界面的图标很难点击启动程序,经常点击了没有反应,Boss说要优先解决这问题。没办法,只能看看是怎么回事。今天分析一下Launcher启动APP的过程。从用户点击到程序启动的流程,下面针对WorkSpa..._回调bubbletextview
文章浏览阅读6.2k次。Ubuntu 12 最快的两个源 个人感觉 163与cn99最快 ubuntu下包过慢 1、首先备份Ubuntu 12.04源列表 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (备份下当前的源列表,有备无患嘛) 2、修改更新源 sudo gedit /etc/apt/sources.list (打开Ubuntu 12_un.12.cc
文章浏览阅读5.8k次,点赞6次,收藏86次。1.思路(1)动态添加路由肯定用的是addRouter,在哪用?(2)vuex当中获取到菜单,怎样展示到界面2.不管其他先试一下addRouter找到router/index.js文件,内容如下,这是我自己先配置的登录路由现在先不管请求到的菜单是什么样,先写一个固定的菜单通过addRouter添加添加以前注意:addRoutes()添加的是数组在export defult router的上一行图中17行写下以下代码var addRoute=[ { path:"/", name:"_vue动态路由权限
文章浏览阅读8.9k次。 关键词: JSTL 之变量赋值标签 /* * Author Yachun Miao * Created 11-Dec-06 */关于JSP核心库的set标签赋值变量,有两种方式: 1.日期" />2. 有种需求要把ApplicationResources_zh_CN.prope
文章浏览阅读3.1k次,点赞3次,收藏2次。1.1ZY5621概述ZY5621是VGA音频到HDMI转换器芯片,它符合HDMI1.4 DV1.0规范。ZY5621也是一款先进的高速转换器,集成了MCU和VGA EDID芯片。它还包含VGA输入指示和仅音频到HDMI功能。进一步降低系统制造成本,简化系统板上的布线。ZY5621方案设计简单,且可以完美还原输入端口的信号,此方案设计广泛应用于投影仪、教育多媒体、视频会议、视频展台、工业级主板显示、手持便携设备、转换盒、转换线材等产品设计上面。1.2 ZY5621 特性内置MCU嵌入式VGA_vga转hdmi带音频转换器,转接头拆解