Linux 用户和组-程序员宅基地

技术标签: 运维  linux  服务器  Linux笔记  

用户和组

目的是为了对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

passwd文件字段解析

使用: 进行分割
字段1: 用户名
字段2: 用户密码字段或者密码占位符"x"
字段3: 用户id    --》唯一,创建的普通用户uid都是在上一个用户的基础上+1  -u 可以指定
字段4: 所属基本组的id  --》 用户在创建的时候默认都会创建一个同名的组,这个组会成为用户的基本组  -g 可以指定
字段5: 用户的描述信息  --》 默认是空    -c 可以指定
字段6: 家目录   --》 默认是在/home目录下创建一个跟用户同名的目录   -d 可以指定
字段7: 登录shell --》 默认是/bin/bash  -s 可以指定

查找出/etc/passwd里记录了几种登录shell

sort先排序,让相同文本的挨在一起,然后再做uniq去重
uniq去重 只能去重挨在一起的相同项

[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 #关机

指定登录shell  -s

[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:所有的身份验证令牌已经成功更新。

使用sc3用户远程登录到主机

ssh是linux中远程登录命令

[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.

-c 指定描述信息

[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

-d 指定家目录

[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

-g 指定组

创建组

[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 指定用户创建id

-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

shadow文件字段解析

[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

用户环境默认设置

创建用户时,会拷贝/etc/skel/下的文件到用户的家目

[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

用户的家目录

默认情况下会在/home 目录下创建一个同名文件夹

[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用户

Ubuntu里默认是禁用root用户的
默认情况下root用户不能远程登录Ubuntu系统的

启用root用户

1.给root用户设置密码

sudo passwd root

2.切换到root用户

su - root

sudo是一个授权的命令,得到了root用户的授权

sudo授权

有一个日志文件会记录被授权者执行的所有命令
/var/log/secure

/var 存放可变化的文件 variable 可变的
    log 日志文件 是不停的记录程序发生的事情
    secure 是与Linux安全相关的日志
           登录进入Linux,新建用户,设密密码
    messages 可以记录的日志,默认都记录 --》rsyslogd进程会记录能记录的各种消息都会记录一份到messages文件里
    boot.log 启动过程中的日志

修改配置文件给tangseng授予sudo权限

[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

切换到普通用户使用sudo命令

[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

切换到feng用户进行测试

[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文件介绍

/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 自己新建的用户

python3里查看当前用户pid和uid

>>> import os
>>> os.getpid()
29159
>>> os.getuid()
0

查看/etc/passwd的用户

切换到一个普通用户,查看uid和pid

[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命令

格式: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命令

格式: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命令

格式: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 个字符
新的 密码:

Linux组帐号

主要组(私有组)
与用户相关的默认组,在/etc/passwd文件的第四个字段定义
次要组(附属组)
用户可以同时属于其他的组,在/etc/group文件的第四个字段定义
GID: (Group Identify,组标识号)

groupadd命令

格式:groupadd  [-g GID]  组帐号名

groupdel命令

格式:groupdel  组帐号名

groupmod命令

用途:设置组名和组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 用户名 :切换用户,但是不切换用户环境
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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_60271706/article/details/131994803

智能推荐

React学习记录-程序员宅基地

文章浏览阅读936次,点赞22次,收藏26次。React核心基础

Linux查磁盘大小命令,linux系统查看磁盘空间的命令是什么-程序员宅基地

文章浏览阅读2k次。linux系统查看磁盘空间的命令是【df -hl】,该命令可以查看磁盘剩余空间大小。如果要查看每个根路径的分区大小,可以使用【df -h】命令。df命令以磁盘分区为单位查看文件系统。本文操作环境:red hat enterprise linux 6.1系统、thinkpad t480电脑。(学习视频分享:linux视频教程)Linux 查看磁盘空间可以使用 df 和 du 命令。df命令df 以磁..._df -hl

Office & delphi_range[char(96 + acolumn) + inttostr(65536)].end[xl-程序员宅基地

文章浏览阅读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]

若依 quartz 定时任务中 service mapper无法注入解决办法_ruoyi-quartz无法引入ruoyi-admin的service-程序员宅基地

文章浏览阅读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

CentOS7配置yum源-程序员宅基地

文章浏览阅读2w次,点赞10次,收藏77次。yum,全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。可以这么说,yum 是改进型的 RPM 软件管理器,它很好的解决了 RPM 所面临的软件包依赖问题。yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,当管理员使用 yum 安装 RPM 包时,yum 会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的 RPM 包并进行安装。_centos7配置yum源

智能科学毕设分享(算法) 基于深度学习的抽烟行为检测算法实现(源码分享)-程序员宅基地

文章浏览阅读828次,点赞21次,收藏8次。今天学长向大家分享一个毕业设计项目毕业设计 基于深度学习的抽烟行为检测算法实现(源码分享)毕业设计 深度学习的抽烟行为检测算法实现通过目前应用比较广泛的 Web 开发平台,将模型训练完成的算法模型部署,部署于 Web 平台。并且利用目前流行的前后端技术在该平台进行整合实现运营车辆驾驶员吸烟行为检测系统,方便用户使用。本系统是一种运营车辆驾驶员吸烟行为检测系统,为了降低误检率,对驾驶员视频中的吸烟烟雾和香烟目标分别进行检测,若同时检测到则判定该驾驶员存在吸烟行为。进行流程化处理,以满足用户的需要。

随便推点

STM32单片机示例:多个定时器同步触发启动_stm32 定时器同步-程序员宅基地

文章浏览阅读3.7k次,点赞3次,收藏14次。多个定时器同步触发启动是一种比较实用的功能,这里将对此做个示例说明。_stm32 定时器同步

android launcher分析和修改10,Android Launcher分析和修改9——Launcher启动APP流程(转载)...-程序员宅基地

文章浏览阅读348次。出处 : http://www.cnblogs.com/mythou/p/3187881.html本来想分析AppsCustomizePagedView类,不过今天突然接到一个临时任务。客户反馈说机器界面的图标很难点击启动程序,经常点击了没有反应,Boss说要优先解决这问题。没办法,只能看看是怎么回事。今天分析一下Launcher启动APP的过程。从用户点击到程序启动的流程,下面针对WorkSpa..._回调bubbletextview

Ubuntu 12 最快的两个源 个人感觉 163与cn99最快 ubuntu安装源下包过慢_un.12.cc-程序员宅基地

文章浏览阅读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

vue动态路由(权限设置)_vue动态路由权限-程序员宅基地

文章浏览阅读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动态路由权限

JSTL 之变量赋值标签-程序员宅基地

文章浏览阅读8.9k次。 关键词: JSTL 之变量赋值标签 /* * Author Yachun Miao * Created 11-Dec-06 */关于JSP核心库的set标签赋值变量,有两种方式: 1.日期" />2. 有种需求要把ApplicationResources_zh_CN.prope

VGA带音频转HDMI转换芯片|VGA转HDMI 转换器方案|VGA转HDMI1.4转换器芯片介绍_vga转hdmi带音频转换器,转接头拆解-程序员宅基地

文章浏览阅读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带音频转换器,转接头拆解

推荐文章

热门文章

相关标签