Linux用户-用户组管理

文章目录

  • 14. Linux 用户 - 用户组管理
      • 14.1 用户-用户组概述
      • 14.2 查看用户登录
      • 14.3 用户和用户组配置文件概述
      • 14.4 用户账号配置文件信息
      • 14.5 用户账号管理
      • 14.6 用户密码管理
      • 14.7 用户密码配置文件
      • 14.8 用户删除
      • 14.9 用户组管理
      • 14.10 用户组文件信息
      • 14.11 用户深入管理

14. Linux 用户 - 用户组管理

14.1 用户-用户组概述

$#
在大部分系统中(windows/linux), 默认包含多个系统自带用户/用户组在系统中可以包含多个用户,多个用户组。 一个用户可以属于多个用户组,一个用户组也可以包含多个用户。在Windows中一个用户可以不隶属于任何组,在Linux中一个用户必须隶属于某一个组。在windows中每个用户都有自己的一个桌面。 |  C:\Users\zy\(zy的家目录)C:\Users\zy\Desktop(zy的桌面目录)在Linux中每个用户都有自己的一个桌面  |      
[zy@localhost ~]$ pwd
/home/zy
[zy@localhost Desktop]$ pwd
/home/zy/Desktop
[zy@localhost Desktop]$ 

14.2 查看用户登录

$#
在windows 桌面系统 - 同一时刻只允许单用户登录。 windows 服务器系统, 同一时刻可以允许多用户登录。
# 任务管理器在linux系统 同一时刻允许多个用户同时登录,并且允许一个用户使用多种方式查看。
# 查看
[zy@localhost Desktop]$ whozy                pts/0                2023-02-02 22:52 (192.168.8.1)zy                :0                   2023-02-02 23:09 (:0)zy                pts/1                2023-02-02 23:18 (:0) 
登录用户名称         使用终端               登录时间        (什么方式登录)
[zy@localhost Desktop]$ root@localhost Desktop]# w   #(详细查看用户登录)00:08:34 up 33 min,  2 users,  load average: 0.00, 0.01, 0.02
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
zy       pts/0    192.168.8.1      23:45    4:26   0.05s  0.05s -bash
zy       pts/1    192.168.8.1      00:03    2.00s  0.07s  0.12s sshd: zy [priv]     
[root@localhost Desktop]# 1 :0         鼠标、键盘、显示器-直接通过图形和界面方式打开主机 
2 pts/0      伪终端(psedo-terminal slave) -提供和linux主机进行交互命令界面右键 open terminal      |          telnet/ssh   xshell  3 tty   早期电传打字机(teletypewrites)    只能用于打字-命令交互/无法提供图形化界面-无鼠标、无窗口
# 进入
ctrl + alt +(F2~F6)ctrl + alt + F2
ctrl + alt + F6
[zy@localhost ~]$ who
zy     tty2    2023-02-02 23:40
zy     tty6  2  023-02-02 23:41
[zy@localhost ~]$
# ctrl + alt + F1(回到正常界面)

14.3 用户和用户组配置文件概述

$#
# /etc/passwd     存储linux中的用户信息
# /etc/shadow     存储linux中的用户密码信息# /etc/group      存储linux中的用户组信息
# /etc/gshadow    存储linux中的用户组密码信息# /etc/passwd
每一行都是一个用户信息
在linux中,不同服务可以通过不同linux账户来维护, 默认包含了多个系统自带账户。
[root@localhost Desktop]# tail /etc/passwd -n 3
tcpdump:x:72:72::/:/sbin/nologin
zy:x:1000:1000:zy:/home/zy:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[root@localhost Desktop]# # 添加用户
[root@localhost Desktop]# useradd zhangsan
[root@localhost Desktop]# ls ./../../home/
zhangsan  zy
[root@localhost Desktop]# [root@localhost Desktop]# mkdir /home/lisi
[root@localhost Desktop]# ls /home/
zhangsan  zy  lisi(并不是用户)
[root@localhost Desktop]# [root@localhost Desktop]# tail /etc/passwd -n 3   通过此命令查看
zy:x:1000:1000:zy:/home/zy:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash    
[root@localhost Desktop]# 

14.4 用户账号配置文件信息

$#
# /etc/passwd
zy:x:1000:1000:zy:/home/zy:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologinzhangsan:     x:       1001:   1001:       :       /home/zhangsan:       /bin/bash[1]:       [2]:      [3]:     [4]:      [5]:           [6]:               [7]:
[用户名]: [用户密码]: [用户ID]: [组ID]: [用户描述信息]: [用户的家目录]: [用户所使用的shell][1]:  用户名
[2]:  用户密码 | x(代号) 密码单独存储在/etc/shadow
[3]:  用户ID  user-id (UID)
[4]:  主组ID    group-id (GID)
[5]:  用户描述信息
[6]:  用户的家目录
[7]:  用户所使用的shell()# 查看linux当前系统中所支持的linux  shell类型
[root@localhost Desktop]# cat /etc/shells
/bin/sh           #  Bourne Shell(sh) 在交互不如其他shell
/bin/bash         #  Bourne Again Shell(bash)
/sbin/nologin     # 用户禁止登录(服务用户)
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost Desktop]# # 查看当前环境正在使用的shell是什么
[root@localhost Desktop]# echo $SHELL
/bin/bash    
[root@localhost Desktop]# [root@localhost Desktop]# head /etc/passwd -n 3
root:x:0:0:root:/root:/bin/bash
[root@localhost Desktop]# # 临时切换到sh shell
[root@localhost Desktop]# sh
sh-4.2# exit
exit
[root@localhost Desktop]# 
[root@localhost Desktop]# sh
sh-4.2# bash
[root@localhost Desktop]# # 永久切换shell
[root@localhost ~]# chsh -s /bin/sh
Changing shell for root.
Shell changed.
[root@localhost ~]# exit
logout
[zy@localhost ~]$ su - root
Password: 
Last login: Fri Feb  3 00:39:47 CST 2023 on pts/1
-sh-4.2# 
[root@localhost ~]# head /etc/passwd -n 3
root:x:0:0:root:/root:/bin/sh
[root@localhost ~]# 

14.5 用户账号管理

$# 1. 在centos linux环境
创建用户时,如果没有指定UID,GID,系统会自动创建(从ID = 1001开始)
如果没有指定家目录,系统会自动创建(/home/username)作为家目录
如果没有指定shell,系统会自动创建(/bin/bash)shell,与系统进行交互$# 2. 实战
# -u 创建时自定义uid
[root@localhost Desktop]# useradd -u 2001 username01
[root@localhost Desktop]# cat /etc/passwd | tail -n 1
username01:x:2001:2001::/home/username01:/bin/bash
[root@localhost Desktop]# 
[root@localhost Desktop]# cat /etc/group | tail -n 1
username01:x:2001:
[root@localhost Desktop]# # -c 添加注释信息
[root@localhost Desktop]# useradd -u 2002 -c "我的电话号码是:15678" username02
[root@localhost Desktop]# tail /etc/passwd -n 1
username02:x:2002:2002:我的电话号码是:15678:/home/username02:/bin/bash
[root@localhost Desktop]# # -s 自定义shell
[root@localhost Desktop]# useradd -u 2003 -s /bin/csh username03 
[root@localhost Desktop]# tac /etc/passwd | head -n 1
username03:x:2003:2003::/home/username03:/bin/csh
[root@localhost Desktop]# # -d 指定家目录名称
[root@localhost Desktop]# 
[root@localhost Desktop]# useradd -u 2004 -d /home/username04lbp username04
[root@localhost Desktop]# tac /etc/passwd | head -n 1
username04:x:2004:2004::/home/username04lbp:/bin/bash
[root@localhost Desktop]# ls /home/
zy username01  username02  username03  username04lbp   # 系统创建了username04lbp目录
[root@localhost Desktop]# 
#*******************************************************************************************$#
# -g 自定义gid (必须已经存在)添加主组
[root@localhost Desktop]# useradd -u 2005 -g 2004 username05
[root@localhost Desktop]# tail /etc/passwd -n 1
username05:x:2005:2004::/home/username05:/bin/bash
[root@localhost Desktop]# tail /etc/passwd -n 1
useraddname05:x:2005:2004::/home/useraddname05:/bin/bash[root@localhost Desktop]# id username05   # id(查看用户id信息)
uid=2005(username05) gid=2004(username04) groups=2004(username04)
[root@localhost Desktop]# [root@localhost Desktop]# useradd -u 2006 -g 2006 username06
useradd: group '2006' does not exist
[root@localhost Desktop]# 
#*******************************************************************************************# -G 指定添加附属组(必须已经存在)
[root@localhost Desktop]# useradd -u 2007 -g 2003 -G 2004 username07
[root@localhost Desktop]# cat /etc/passwd | tail -n 1
username07:x:2007:2003::/home/username07:/bin/bash
[root@localhost Desktop]# 
[root@localhost Desktop]# id username07
uid=2007(username07) gid=2003(username03) groups=2003(username03),2004(username04)
[root@localhost Desktop]# [root@localhost Desktop]# su username07
[username07@localhost Desktop]$ cd ~
[username07@localhost ~]$ pwd
/home/username07
[username07@localhost ~]$ touch 1.txt
[username07@localhost ~]$ ls -lh
-rw-r--r--. 1 username07 username03 0 Feb  3 01:27 1.txt
[username07@localhost ~]$ # 临时切换到username04这个组
[username07@localhost ~]$ newgrp username04
[username07@localhost ~]$ touch 2.txt
[username07@localhost ~]$ ls -lh
total 0
-rw-r--r--. 1 username07 username03 0 Feb  3 01:27 1.txt
-rw-r--r--. 1 username07 username04 0 Feb  3 01:29 2.txt
[username07@localhost ~]$ 
[username07@localhost ~]$ exit
exit
[username07@localhost ~]$ touch 3. txt
[username07@localhost ~]$ ls -lh-rw-r--r--. 1 username07 username03 0 Feb  3 01:27 1.txt
-rw-r--r--. 1 username07 username04 0 Feb  3 01:29 2.txt
-rw-r--r--. 1 username07 username03 0 Feb  3 01:32 3.txt
[username07@localhost ~]$ id username07
uid=2007(username07) gid=2003(username03) groups=2003(username03),2004(username04)
[username07@localhost ~]$ 

14.6 用户密码管理

$# 1. 
# root账户修改其他账号的密码
[root@localhost ~]# passwd username01
Changing password for user username01.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@localhost ~]# # 普通账户修改自己的密码
[username01@localhost Desktop]$ passwd
Changing password for user username01.
Changing password for username01.
(current) UNIX password: 
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[username01@localhost Desktop]$ 

14.7 用户密码配置文件

$# 1. 
# 
[root@localhost Desktop]# cat /etc/shadow | tail -n 6
username01:$6$6oue2ZrC$M0cgIBO8YKzGBGiZ/JNTd/Og8a33UeYX27Rb8T6e2178SY2bbR0GQ.cLWL6mxLcD.Cm3rSZSdWkW9Ks0M2Jo./:19390:0:99999:7:::
username02:!!:19390:0:99999:7:8::
[root@localhost Desktop]# username02:  !!:    19390:     0:     99999:      7:      8:     : [1]:       [2]:    [3]:     [4]:     [5]:      [6]:    [7]:   [8]:   [9]
[1]: 用户名
[2]: 密码  ----  "!!": 账号锁定        | $6$: 密码已经设置, 并且密码本地加密
[3]: 上次修改密码时间 (从1970-1-1 到 修改密码当天) 没有修改过的话,是创建账户的时间      
[4]: 密码的最短有效期 (3) 3天之内不可以修改密码                   0(随时可修改)系统默认
[5]: 密码的最长有效时间 (30) 30天之内必须修改密码              99999 
[6]: 密码到期前多久发送告警(提前 7天发送警告)
[7]: 密码过期后的宽限日期 (8) 再宽限8天
[8]: 账号的失效日期 ----优先级最高, 一旦当前参数到期,该账号直接立即无法使用
[9]: 保留# 密码的加密算法
[root@localhost Desktop]# cat /etc/login.defs 
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512 
[root@localhost Desktop]# 
#*******************************************************************************************# 下次登录必须修改密码 
[root@localhost Desktop]# chage -d 0 username01              # 将上次修改密码时间设置为0
[root@localhost Desktop]# cat /etc/shadow | grep username01
username01:$6$6oue2ZrC$M0cgIBO8YKzGBGiZ/JNTd/Og8a33UeYX27Rb8T6e2178SY2bbR0GQ.cLWL6mxLcD.Cm3rSZSdWkW9Ks0M2Jo./:0:0:99999:7:::
[root@localhost Desktop]# cat /etc/shadow | tail -n 6
username01:$6$6oue2ZrC$M0cgIBO8YKzGBGiZ/JNTd/Og8a33UeYX27Rb8T6e2178SY2bbR0GQ.cLWL6mxLcD.Cm3rSZSdWkW9Ks0M2Jo./:19390:0:99999:7:::# -S 查看username01 密码状态
[root@localhost Desktop]# passwd -S  username01
username01 PS 1970-01-01 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@localhost Desktop]# # -l 锁定用户禁止登录
[root@localhost Desktop]# passwd -l username01
Locking password for user username01.
passwd: Success
[root@localhost Desktop]# cat /etc/shadow | grep -i username01
username01:!!$6$6oue2ZrC$M0cgIBO8YKzGBGiZ/JNTd/Og8a33UeYX27Rb8T6e2178SY2bbR0GQ.cLWL6mxLcD.Cm3rSZSdWkW9Ks0M2Jo./:0:0:99999:7:::
[root@localhost Desktop]# passwd -S username01
username01 LK 1970-01-01 0 99999 7 -1 (Password locked.)
[root@localhost Desktop]# # -u 解除用户禁止登录
[root@localhost Desktop]# passwd -u username01
Unlocking password for user username01.
passwd: Success
[root@localhost Desktop]# cat /etc/shadow | grep -i username01
username01:$6$6oue2ZrC$M0cgIBO8YKzGBGiZ/JNTd/Og8a33UeYX27Rb8T6e2178SY2bbR0GQ.cLWL6mxLcD.Cm3rSZSdWkW9Ks0M2Jo./:0:0:99999:7:::
[root@localhost Desktop]# 
[root@localhost Desktop]# passwd -S username01
username01 PS 1970-01-01 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@localhost Desktop]# # -d 移除密码
[root@localhost Desktop]# passwd -d username01
Removing password for user username01.
passwd: Success
[root@localhost Desktop]# passwd -l username01
Locking password for user username01.
passwd: Success
[root@localhost Desktop]# cat /etc/shadow | grep -i username01
username01:!!:19390:0:99999:7:::
[root@localhost Desktop]# # -e 设置密码过期(下次登录必须修改密码)
[root@localhost Desktop]# passwd -e username01
Expiring password for user username01.
passwd: Success
[root@localhost Desktop]# cat /etc/shadow | grep -i username01
username01:$6$oqrKE9Bx$I65yShC1Q4WQZtit2HWTdnVoumoqjnZz74wQt1rlmew7mEe0bJjFACHelq3urIs2U.40lkzN8P3tAAaTzhOus1:0:0:99999:7:::
[root@localhost Desktop]# 
#*******************************************************************************************$# 2. 实战设置密码(通过管道-输入方式)
[root@localhost Desktop]# echo "Text@1234" | passwd --stdin username01
Changing password for user username01.
passwd: all authentication tokens updated successfully.
[root@localhost Desktop]# echo "Text@1234" | passwd --stdin username01 > /dev/null
[root@localhost Desktop]# # 最短有效期3天, 最长30天,提前5天发送告警, 宽限日期2天
[root@localhost Desktop]# cat /etc/shadow | grep -i username01
username01:$6$oqrKE9Bx$I65yShC1Q4WQZtit2HWTdnVoumoqjnZz74wQt1rlmew7mEe0bJjFACHelq3urIs2U.40lkzN8P3tAAaTzhOus1:0:0:99999:7:::
[root@localhost Desktop]# passwd -n 3 -x 30 -w 5 -i 2 username01
Adjusting aging data for user username01.
passwd: Success
[root@localhost Desktop]# cat /etc/shadow | grep -i username01
username01:$6$oqrKE9Bx$I65yShC1Q4WQZtit2HWTdnVoumoqjnZz74wQt1rlmew7mEe0bJjFACHelq3urIs2U.40lkzN8P3tAAaTzhOus1:0:3:30:5:2::
[root@localhost Desktop]# # 强制指定密码失效时间
[root@localhost ~]# chage -E 2024-6-12 username01
[root@localhost ~]# cat /etc/shadow | grep -i username01
username01:$6$TkEqrYWS$iQ4C85rquhlgFQYq7/04CXxdmAfTqkMb6HJFVFuq3eTtonBl1dI5qmv24QCOHSrMbwNXg2sQYp.6nXPiAU2k8/:19390:3:30:5:2:19886:
[root@localhost ~]# 

14.8 用户删除

$# 1. 
# 普通删除
[root@localhost Desktop]# userdel useraddname05
[root@localhost Desktop]# # -r 普通删除用户 并且 删除掉用户对应的用户目录
[root@localhost Desktop]# userdel -r username02
[root@localhost Desktop]# 
[root@localhost Desktop]# ls /home/
username01  username03  username04 username07  zhangsan  zy
[root@localhost Desktop]# # -f 强制删除 / 并且删除掉用户对应的其他信息
[root@localhost Desktop]# userdel -f username03
[root@localhost Desktop]# ls /home/
username01  username03  username04  username07  zhangsan  zy
[root@localhost Desktop]# # -rf 强制删除 / 并且删除掉用户对应的其他信息
[root@localhost ~]# userdel -rf zhangsan
[root@localhost ~]# ls /home
username01  username03 username04  username07 zy
[root@localhost ~]# 

14.9 用户组管理

$# 1.
# 查看组的信息
[root@localhost Desktop]# cat /etc/group | tail -n 5
zy:x:1000:zy
apache:x:48:
username01:x:2001:
username04:x:2004:
[root@localhost Desktop]# # 创建一个普通组(系统默认指定gid)
[root@localhost Desktop]# groupadd groupname01
[root@localhost Desktop]# cat /etc/group | tail -n 2
username04:x:2004:
groupname01:x:2005:
[root@localhost Desktop]# # -g 创建一个指定组ID的组(3001)
[root@localhost Desktop]# groupadd  -g 30001 groupname02
[root@localhost Desktop]# cat /etc/group | tail -n 3
username04:x:2004:
groupname01:x:2005:
groupname02:x:30001:
[root@localhost Desktop]# # 创建用户的同时,添加主组
[root@localhost Desktop]# useradd username01 -g groupname01
[root@localhost Desktop]# id username01
uid=1001(username01) gid=2005(groupname01) groups=2005(groupname01)
[root@localhost Desktop]# 
#*******************************************************************************************$# 2.
# 用户已经存在的情况下不能通过useradd修改属性
[root@localhost Desktop]# useradd username01 -G groupname01
useradd: user 'username01' already exists
[root@localhost Desktop]# # 用户已经存在的情况下,需要通过usermod
[root@localhost Desktop]# usermod username01 -G groupname02   # 添加附属组
[root@localhost Desktop]# id username01
uid=1001(username01) gid=2005(groupname01) groups=2005(groupname01),30001(groupname02)
[root@localhost Desktop]# # 一个组不能同时成为一个用户的主组和附加组
[root@localhost Desktop]# id username01
uid=1001(username01) gid=2005(groupname01) groups=2005(groupname01),30001(groupname02)
[root@localhost Desktop]# usermod username01 -G groupname01
[root@localhost Desktop]# id username01
uid=1001(username01) gid=2005(groupname01) groups=2005(groupname01)
[root@localhost Desktop]# 
#*******************************************************************************************$# 3.
# -G 覆盖方式添加附加组
[root@localhost Desktop]# groupadd -g 3003 groupname03
[root@localhost Desktop]# usermod username01 -G groupname03
[root@localhost Desktop]# id username01
uid=1001(username01) gid=2005(groupname01) groups=2005(groupname01),3003(groupname03)
[root@localhost Desktop]# # -aG Z追加方式添加附加组 (append)
[root@localhost Desktop]# usermod username01 -aG groupname03
[root@localhost Desktop]# id username01
uid=1001(username01) gid=2005(groupname01) groups=2005(groupname01),30001(groupname02),3003(groupname03)
[root@localhost Desktop]# 

14.10 用户组文件信息

$# 1. 用户组信息
[root@localhost Desktop]# cat /etc/group | tail -n 3
groupname01:x:2005:
groupname02:x:30001:username01
groupname03:x:3003:username01
[root@localhost Desktop]# groupname03:          x:              3003:             username01
[用户组名称]:   [用户组密码信息]:     [用户组ID]:         [附加组成员]:[1]:  用户组名称[2]:  用户组密码信息 [3]:  用户组ID      [4]:  附加组成员#创建用户的同时,默认会创建一个跟用户名相同的组如果先创建了组,再创建与组名称相同的用户,需要填加-g + 用户名称
[root@localhost Desktop]# groupadd username02
[root@localhost Desktop]# tail /etc/group -n 4
groupname01:x:2005:
groupname02:x:30001:username01
groupname03:x:3003:username01
username02:x:30002:
[root@localhost Desktop]# useradd username02 -G groupname01
useradd: group username02 exists - if you want to add this user to that group, use -g.
[root@localhost Desktop]# id username02
id: username02: no such user
[root@localhost Desktop]# useradd username02 -g username02 -G groupname01
[root@localhost Desktop]# 
#*******************************************************************************************$# 2. 组密码文件信息
# 设置组密码
[root@localhost Desktop]# gpasswd groupname02
Changing the password for group groupname02
New Password: 
Re-enter new password: 
[root@localhost Desktop]# su username01
[username01@localhost Desktop]$ cd ~
[username01@localhost ~]$ ls
[username01@localhost ~]$ touch 2.txt
[username01@localhost ~]$ id username01
uid=1001(username01) gid=2005(groupname01) groups=2005(groupname01),30001(groupname02),3003(groupname03)
[username01@localhost ~]$ newgrp groupname02
[username01@localhost ~]$ touch 3.txt
[username01@localhost ~]$ ls -lh
-rw-r--r--. 1 username01 groupname01 0 Feb  3 00:27 2.txt
-rw-r--r--. 1 username01 groupname02 0 Feb  3 00:28 3.txt   #  创建文件的组不一样
[username01@localhost ~]$ # -r 将组的密码移除
[root@localhost Desktop]# gpasswd -r groupname03# -d groupname03组里面移除username01
[root@localhost Desktop]# id username01
uid=1001(username01) gid=2005(groupname01) groups=2005(groupname01),30001(groupname02),3003(groupname03)
[root@localhost Desktop]# gpasswd -d username01 groupname03
Removing user username01 from group groupname03
[root@localhost Desktop]# id username01
uid=1001(username01) gid=2005(groupname01) groups=2005(groupname01),30001(groupname02)
[root@localhost Desktop]# # -a 将username01用户添加到groupname03组
[root@localhost Desktop]# gpasswd -a username01 groupname03
Adding user username01 to group groupname03
[root@localhost Desktop]# id username01
uid=1001(username01) gid=2005(groupname01) groups=2005(groupname01),30001(groupname02),3003(groupname03)
[root@localhost Desktop]# 

14.11 用户深入管理

$# 1. 关于用户删除
# -r参数指的是删除用户的相关信息(家目录和邮件等), 没有-r需要手动删除
[root@localhost ~]# userdel username03
[root@localhost ~]# ls /home/
username01  username02  username03   
[root@localhost ~]# rm -rf /home/username03
[root@localhost ~]# ls /home/
username01  username02 
[root@localhost ~]# ls /var/spool/mail
root  rpc  username01  username02 username03 
[root@localhost ~]# rm -rf /var/spool/mail/username03# 创建用户时,如果提前创建好家目录,家目录里面的文件不全(建议不提前)
[root@localhost ~]# mkdir /home/username03
[root@localhost ~]# useradd username03 -d /home/username03
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
[root@localhost ~]# 
[root@localhost ~]# ls -a /home/username03/
.  ..
[root@localhost ~]# 
[root@localhost ~]# useradd username02
[root@localhost ~]# ls -a /home/username02/
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla   # 正常创建用户有这么些文件
[root@localhost ~]# [root@localhost ~]# ls -a /etc/skel/
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
[root@localhost ~]# 
[root@localhost ~]# su username03
bash-4.2$ 
[root@localhost ~]# # 不能这样复制,会把上一层目录的文件也复制过来
[root@localhost ~]# cp /etc//skel/* /home/username03
cp: cannot stat ‘/etc//skel/*’: No such file or directory
[root@localhost ~]# ls -lha /etc/skel/
drwxr-xr-x.   3 root root   78 Dec 12 23:11 .
drwxr-xr-x. 135 root root 8.0K Feb  3 01:05 ..
-rw-r--r--.   1 root root   18 Aug  3  2017 .bash_logout
-rw-r--r--.   1 root root  193 Aug  3  2017 .bash_profile
-rw-r--r--.   1 root root  231 Aug  3  2017 .bashrc
drwxr-xr-x.   4 root root   39 Dec 12 23:11 .mozilla
[root@localhost ~]# cp -a /etc/skel/* /home/username03
cp: cannot stat ‘/etc/skel/*’: No such file or directory
[root@localhost ~]# cp -a /etc/skel/.* /home/username03
cp: will not create hard link ‘/home/username03/skel’ to directory ‘/home/username03/.’
cp: overwrite ‘/home/username03/.bash_logout’? yes
cp: overwrite ‘/home/username03/.bash_profile’? yes    
cp: overwrite ‘/home/username03/.bashrc’? yes  
cp: will not create hard link ‘/home/username03/.mozilla’ to directory ‘/home/username03/./.mozilla’
[root@localhost ~]# ls -a /home/username03/
.                           fonts                     maven              rpc
..                          fprintd.conf              mcelog             rpm
abrt                        fstab                     mke2fs.conf        rsyncd.conf
flatpak                     man_db.conf               resolv.conf
[root@localhost ~]# # 固定解决方法, 但是会产生权限问题
[root@localhost ~]# cp -a /etc/skel/.[!.]* /home/username03
[root@localhost ~]# ls -lha /home/username03
total 12K
drwxr-xr-x. 3 root root  78 Feb  3 01:22 .
drwxr-xr-x. 7 root root  81 Feb  3 01:21 ..
-rw-r--r--. 1 root root  18 Aug  3  2017 .bash_logout
-rw-r--r--. 1 root root 193 Aug  3  2017 .bash_profile
-rw-r--r--. 1 root root 231 Aug  3  2017 .bashrc
drwxr-xr-x. 4 root root  39 Dec 12 23:11 .mozilla
[root@localhost ~]# su username03
[username03@localhost root]$ [root@localhost ~]# useradd username04
[root@localhost ~]# ls -lha /home/username04
drwx------. 3 username04 username04  78 Feb  3 01:28 .
drwxr-xr-x. 8 root       root        99 Feb  3 01:28 ..
-rw-r--r--. 1 username04 username04  18 Aug  3  2017 .bash_logout
-rw-r--r--. 1 username04 username04 193 Aug  3  2017 .bash_profile
-rw-r--r--. 1 username04 username04 231 Aug  3  2017 .bashrc
drwxr-xr-x. 4 username04 username04  39 Dec 12 23:11 .mozilla
[root@localhost ~]# # 可以在/etc/skel 中添加文件,会在之后的用户创建中自动添加到家目录中
[root@localhost ~]# cd /etc/skel
[root@localhost skel]# ls -lha
[root@localhost skel]# touch README.md
[root@localhost skel]# echo "Wecome to my Cloud" >> README.md
[root@localhost skel]# 
[root@localhost ~]# useradd username05
[root@localhost ~]# ls -lha /home/username05
drwx------. 3 username05 username05  95 Feb  3 01:37 .
drwxr-xr-x. 9 root       root       117 Feb  3 01:37 ..
-rw-r--r--. 1 username05 username05  18 Aug  3  2017 .bash_logout
-rw-r--r--. 1 username05 username05 193 Aug  3  2017 .bash_profile
-rw-r--r--. 1 username05 username05 231 Aug  3  2017 .bashrc
drwxr-xr-x. 4 username05 username05  39 Dec 12 23:11 .mozilla
-rw-r--r--. 1 username05 username05  19 Feb  3 01:35 README.md
[root@localhost ~]# cat /home/username05/README.md 
Wecome to my Cloud
[root@localhost ~]# 
#*******************************************************************************************# 添加注释信息
[root@localhost ~]# tail /etc/passwd -n 5
username05:x:1006:1006::/home/username05:/bin/bash
[root@localhost ~]# su username05
[username05@localhost root]$ chfn
Changing finger information for username05.
Name []: 求伯君  
Office []: wps 
Office Phone []: 123456789
Home Phone []: 987654321
Password: 
Finger information changed.
[username05@localhost root]$ tail /etc/passwd -n 1
username05:x:1006:1006:求伯君,wps,123456789,987654321:/home/username05:/bin/bash
[username05@localhost root]$ # 修改shell环境
[username05@localhost root]$ chsh -s /bin/sh
Changing shell for username05.
Password: 
Shell changed.
[username05@localhost root]$ exit
exit
[root@localhost ~]# su username05
sh-4.2$ 
sh-4.2$# 解决删不了的权限问题
[root@localhost ~]# ls /home/ -lha
total 4.0K
drwxr-xr-x.  9 root       root         117 Feb  3 01:37 .
dr-xr-xr-x. 18 root       root         239 Jan  5 04:39 ..
drwxr-xr-x.  3 root       root          78 Feb  3 01:22 username03
drwx------.  5 username05 username05   145 Feb  3 02:04 username05
drwxr-xr-x.  2 root       root           6 Feb  3 00:52 username3
drwx------. 13 zy         zy          4.0K Feb  3 01:43 zy
[root@localhost ~]# userdel -r username03
userdel: /home/username03 not owned by username03, not removing
[root@localhost ~]# 
[root@localhost ~]# rm -rf /home/username03/  
#*******************************************************************************************# 通过配置文件创建
[root@localhost ~]# vim /etc/passwd
zy:x:1000:1000:zy:/home/zy:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
username01:x:1001:1001:周伯通,阿里巴巴,1234,4321:/home/username01:/bin/bash
[root@localhost ~]#
[root@localhost ~]# vim /etc/shadow
zy:$6$NUIlmI90$pP2QceY5LncMxboRdG0bTRxRaHvH8HkInMESBaXXt5Gd/T4tvYj0qV6RpctxXyL5n0a1CTZcpBWf8Q/NOX.27/:19388:0:99999:7:::
apache:!!:19361::::::
username01:!!:19362:0:99999:7:::
[root@localhost ~]#                
a[root@localhost ~]# vim /etc/group
groupname01:x:2005:
groupname02:x:30001:
groupname03:x:3003:username01
[root@localhost ~]#  
[root@localhost ~]# mkdir /home/username01
[root@localhost ~]# cp -a /etc/skel/.[!.]* /home/username01
[root@localhost ~]# 
[root@localhost ~]# touch /var/spool/mail/username01
[root@localhost ~]# echo "123" | passwd --stdin username01
[root@localhost ~]# 
[username01@localhost root]$ ls
ls: cannot open directory .: Permission denied   # 因为没有权限
[username01@localhost root]$ [root@localhost ~]# ls -lha /home/username01
total 12K
drwxr-xr-x. 3 root root  78 Feb  3 02:30 .
drwxr-xr-x. 4 root root  34 Feb  3 02:29 ..
-rw-r--r--. 1 root root  18 Aug  3  2017 .bash_logout
-rw-r--r--. 1 root root 193 Aug  3  2017 .bash_profile
-rw-r--r--. 1 root root 231 Aug  3  2017 .bashrc
drwxr-xr-x. 4 root root  39 Dec 12 23:11 .mozilla
[root@localhost ~]# 
[root@localhost ~]# userdel -r username01
userdel: /var/spool/mail/username01 not owned by username01, not removing
userdel: /home/username01 not owned by username01, not removing
[root@localhost ~]# rm -rf /var/spool/mail/username01
[root@localhost ~]# rm -rf /var/spool/mail/username01
[root@localhost ~]# #*******************************************************************************************# nologin
[root@localhost ~]# useradd username02
[root@localhost ~]# echo "123" | passwd  --stdin username02
Changing password for user username02.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# 
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost ~]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost ~]# # 使用户无法登录(一般服务用户都这样做)
sbin/nologn
[root@localhost ~]# chsh -s /sbin/nologin username02
Changing shell for username02.
Shell changed.
[root@localhost ~]# 
#*******************************************************************************************# server 停机维护(发送本机广播到所有用户)
[root@localhost ~]# wall "This server will be shutdown, please exit"Broadcast message from root@localhost.localdomain (pts/1) (Fri Feb  3 02:43:49 2023):This server will be shutdown, please exit
[root@localhost ~]# 
[root@localhost ~]# touch /etc/nologin  # 拒绝所有普通用户登录
[root@localhost ~]# rm -rf /etc/nologin  # 允许所有普通用户登录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows搭建我的世界MC服务器 【Minecraft外网联机教程】

目录 ⛳️推荐 1. 搭建我的世界服务器 1.1 服务器安装java环境 1.2 配置服务端 1.3 创建我的世界服务器 2. 局域网联机测试 3. 安装cpolar内网穿透 4. 公网联机Minecraft 5. 配置固定远程联机端口地址 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站,通…

新手转行AI运营岗位,轻松实现月入15K+

近年来人工智能大爆发,各种AI产品层出不穷,市场也出现了一批高薪AI运营类岗位 不需要技术背景、门槛低,即便是新手,也有机会拿下offer。如果你计划今年跳槽或转行运营,这5个岗位不妨试试(结尾附国内AI公司清…

科普文:万字梳理高性能 Kafka快的8个原因

概叙 科普文:万字详解Kafka基本原理和应用-CSDN博客 科普文:万字梳理31个Kafka问题-CSDN博客 我们都知道 Kafka 是基于磁盘进行存储的,但 Kafka 官方又称其具有高性能、高吞吐、低延时的特点,其吞吐量动辄几十上百万。 在座的…

【深度学习】kaggle使用

https://blog.csdn.net/2301_78630677/article/details/133834096 https://blog.csdn.net/xiaojia1001/article/details/139467176 https://www.kaggle.com/ 使用要挂代理,要不然可能无法注册 绑定手机号之后才能使用GPU 每周30h免费GPU使用时长 上传数据集 Ad…

安科瑞ACTB系列电流互感器过电压保护器

产品概述: 安科瑞ACTB系列电流互感器过电压保护器是一种重要的电力保护设备,‌主要用于防止电流互感器在运行中因二次绕组开路或一次绕组流过异常电流而在二次侧产生的高压过电压。‌这种保护器能有效防止因电流互感器二次侧异常高压引起的事故&#xf…

手撕数据结构---栈和队列的概念以及实现

栈的概念: 栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈…

Kafka、RabbitMQ、RocketMQ:消息队列技术深度对比

文章目录 摘要1. 消息队列概述1.1 消息队列的作用 2. Kafka2.1 简介2.2 核心特性2.3 使用场景 3. RabbitMQ3.1 简介3.2 核心特性3.3 使用场景 4. RocketMQ4.1 简介4.2 核心特性4.3 使用场景 5. 技术对比5.1 吞吐量5.2 可靠性5.3 消息延迟5.4 消息顺序 6. 结语 摘要 消息队列是…

《框架》

《框架》 引言 在当今快速发展的技术世界中,框架(Framework)已成为软件开发中不可或缺的一部分。框架为开发者提供了一种结构化的方法来构建应用程序,从而提高开发效率、确保代码质量和维护性。本文将深入探讨框架的概念、类型、优势以及在现代软件开发中的应用。 什么是…

opencascade AIS_RubberBand AIS_RotationMode源码学习

//!相机旋转类型 Camera rotation mode. enum AIS_RotationMode { AIS_RotationMode_BndBoxActive, //!< default OCCT rotation AIS_RotationMode_PickLast, //!< rotate around last picked point AIS_RotationMode_PickCenter, //!< rotate around point at the ce…

广东省道路工程检测练习试题(单选406题)真题

1.一般项目的合格点率应达到( ),且不合格点的最大偏差值不得大于规定允许偏差值的1.5倍。 A.不低于75% B.不低于80% C.不低于85% D.不低于90% 答案:B 2.进行土路基平整度检测时,当路宽小于9m,检测点数应为( ) A.1 B.2 C.3 D.4 答案:A 3.根据《城镇道路工程施工…

python之代码简化式(列表、字典生成式,递归函数,迭代器(iter)和生成器(yield)、匿名函数(lambda)的使用)(12)

文章目录 前言1、列表、字典生成式2、递归函数2.1 python中代码的递归深度&#xff08;扩展&#xff09; 3、拓展&#xff1a;迭代器和生成器3.1 迭代器&#xff08;iter&#xff09;3.2 生成器&#xff08;yield&#xff09; 4、匿名函数&#xff08;lambda&#xff09;4.1 ma…

宠物猫用空气净化器真的有用吗?值得买的猫用空气净化器牌子排名

作为一名6年资深铲屎官&#xff0c;每天铲猫砂盆的工作无疑是一项挑战。家中不仅弥漫着难以忍受的气味&#xff0c;而且家里的小孩和老人偶尔会因为过敏性鼻炎或结膜炎等问题感到不适。换毛季节尤其头疼&#xff0c;浮毛无处不在&#xff1a;沙发、外套、坐垫&#xff0c;甚至连…

C++中绝对值的用法

在C中&#xff0c;std::fabs函数可以用于四则运算中&#xff0c;特别是当你需要确保参与运算的浮点数是正值时。std::fabs函数返回其参数的绝对值&#xff0c;这对于处理可能包含负数的表达式很有用。 下面是一些示例&#xff0c;展示了如何在四则运算中使用std::fabs函数&…

Spring Boot 3 + Resilience4j 简单入门 + Redis Cache 整合

1. 项目结构 2. Maven依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.2</version><relativePath/> <!-- lookup parent from repository --&…

Kubernetes CRI工具集:crictl深度实践与应用

Kubernetes CRI工具集&#xff1a;crictl深度实践与应用 一、引言 在Kubernetes&#xff08;k8s&#xff09;环境中&#xff0c;crictl是一个重要的命令行工具&#xff0c;用于与容器运行时接口&#xff08;Container Runtime Interface, CRI&#xff09;兼容的容器运行时&am…

如何学习ClickHouse:糙快猛的大数据之路(技术要点概览)

这个系列文章用"粗快猛大模型问答讲故事"的创新学习方法&#xff0c;让你轻松理解复杂知识&#xff01;涵盖Hadoop、Spark、MySQL、Flink、Clickhouse、Hive、Presto等大数据所有热门技术栈&#xff0c;每篇万字长文。时间紧&#xff1f;只看开头20%就能有收获&#…

英文润色工具 Quillbot

QuillBot 是一种基于人工智能&#xff08;AI&#xff09;的写作辅助工具&#xff0c;旨在帮助用户改进他们的写作质量和效率。它提供了多种功能&#xff0c;包括但不限于改写、总结、语法检查和词汇增强。以下是对 QuillBot 软件的一些详细介绍&#xff1a; ### 主要功能 1. …

如何智能便捷、自动化地进行文件数据采集?

文件数据采集是指从各种源头和渠道收集、整理、清洗、分析和挖掘数据的过程。它是大数据应用的基础&#xff0c;为企业提供全面的决策支持和业务价值。文件数据采集对于不同行业都至关重要&#xff0c;通过有效的文件数据采集&#xff0c;企业可以更好地了解市场动态、优化服务…

Elasticsearch(ES)版本升级

ES版本升级&#xff0c;索引不兼容&#xff0c;必须删除或重新索引它们才能升级到更高版本 1ES6升级到ES7&#xff0c;必须先升级到6.8 Elasticsearch 6.8.x ✔ 2ES7升级到ES8&#xff0c;必须先升级到7.17 Elasticsearch 7.17.x ✔ 3ES8升级到ES8无差异化升级 Elasticsearc…

数据驱动未来:构建下一代湖仓一体电商数据分析平台,引领实时商业智能革命

1.1 项目背景 本项目是一个创新的湖仓一体实时电商数据分析平台&#xff0c;旨在为电商平台提供深度的数据洞察和业务分析。技术层面&#xff0c;项目涵盖了从基础架构搭建到大数据技术组件的集成&#xff0c;采用了湖仓一体的设计理念&#xff0c;实现了数据仓库与数据湖的有…