@用户与组创建-权限管理

1. 用户管理命令

1. useradd   ==   adduser       #创建用户 

选项:

	-u		#指定uid
	
	-g		#指定组 gid  前提需存在 
	
	-G		#指定附加组  多个用逗号分割 
	
	-d		#指定家目录  
	
	-c		#注释信息
	
	-s		#指定命令解释器 
	
	-r		#创建系统用户,默认不创建家目录  命令解释器是允许登录的
	
	-M		#不创建家目录  


[root@qls ~]# useradd   user01
[root@qls ~]# tail -1  /etc/passwd  
user01:x:1000:1000::/home/user01:/bin/bash
[root@qls ~]# tail -1 /etc/shadow
user01:!!:18464:0:99999:7:::


[root@qls ~]# useradd  -u666  -d /opt/user02  -c  "test"  user02
[root@qls ~]# tail  -1  /etc/passwd
user02:x:666:1001:test:/opt/user02:/bin/bash
[root@qls ~]# ll /opt/
drwx------  2 user02 user02      62 Jul 21 16:47 user02

[root@qls ~]# useradd   -r   user03
[root@qls ~]# tail -1  /etc/passwd
user03:x:665:665::/home/user03:/bin/bash
[root@qls ~]# ll /home/
total 0
drwx------ 2 user01 user01 62 Jul 21 16:40 user01

[root@qls ~]# useradd  -r  -s /sbin/nologin  user04
[root@qls ~]# tail  -1  /etc/passwd
user04:x:664:664::/home/user04:/sbin/nologin
[root@qls ~]# ll /home/
total 0
drwx------ 2 user01 user01 62 Jul 21 16:40 user01

[root@qls ~]# useradd   -M  -s  /sbin/nologin  user05
[root@qls ~]# tail -1  /etc/passwd
user05:x:1001:1002::/home/user05:/sbin/nologin
[root@qls ~]# ll /home/
total 0
drwx------ 2 user01 user01 62 Jul 21 16:40 user01


2. usermod			#修改用户信息的


选项:

	-u		#修改用户的uid
	
	-g		#修改用户的gid
	
	-a		#追加 添加附加组  需跟-G配合使用
	
	-G		#修改附加组,默认会覆盖原来的所有附加组    -aG		追加 
	
	-m		#迁移家目录 
	
	-d		#修改家目录 
	
	-c		#修改注释信息
	
	-s		#修改命令解释器 
	
	-l		#修改用户的名称 
	
	-L		#锁定用户
	
	-U		#解锁用户
	
	
[root@qls ~]# usermod  -u6666  -g 1001  -aG 665,664   -md  /opt/user01  -c "123"   -l user123  user01
[root@qls ~]# grep  'user01'  /etc/passwd
user123:x:6666:1001:123:/opt/user01:/bin/bash
[root@qls ~]# id  user123
uid=6666(user123) gid=1001(user02) groups=1001(user02),665(user03),664(user04)


[root@qls ~]# usermod   -s  /bin/bash  user05
[root@qls ~]# grep  'user05'  /etc/passwd
user05:x:1001:1002::/home/user05:/bin/bash


[root@qls ~]# usermod   -L   user02
[root@qls ~]# usermod   -U   user02

#修改密码

[root@qls ~]# passwd   user02
Changing password for user user02.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.

#远程登录

[C:\~]$ ssh  user02@10.0.0.100


Connecting to 10.0.0.100:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last failed login: Tue Jul 21 17:22:10 CST 2020 from 10.0.0.1 on ssh:notty
There were 4 failed login attempts since the last successful login.
Last login: Tue Jul 21 17:20:45 2020 from 10.0.0.1
[user02@qls ~]$ 


3. userdel		#删除用户  默认不删除家目录及邮件信息  

选项:
	
	-r		#删除用户的时候,删除家目录及邮件相关信息  
	
	
[root@qls ~]# ll /opt/
total 1016
drwx------  2 user123 user02      62 Jul 21 16:40 user01
drwx------  2 user02  user02      62 Jul 21 16:47 user02
[root@qls ~]# userdel   user123
[root@qls ~]# ll /opt/
total 1016
drwx------  2   6666 user02      62 Jul 21 16:40 user01
drwx------  2 user02 user02      62 Jul 21 16:47 user02



[root@qls ~]# useradd   user06
[root@qls ~]# ll /home/
total 0
drwx------ 2 user06 user06 62 Jul 21 17:45 user06
[root@qls ~]# ll /var/mail/
total 0
-rw-rw---- 1 user02 mail 0 Jul 21 16:47 user02
-rw-rw---- 1 user05 mail 0 Jul 21 16:55 user05
-rw-rw---- 1 user06 mail 0 Jul 21 17:45 user06
-rw-rw---- 1   6666 mail 0 Jul 21 16:40 user123
[root@qls ~]# userdel   -r  user06
[root@qls ~]# ll /home/
total 0
[root@qls ~]# ll /var/mail/
total 0
-rw-rw---- 1 user02 mail 0 Jul 21 16:47 user02
-rw-rw---- 1 user05 mail 0 Jul 21 16:55 user05
-rw-rw---- 1   6666 mail 0 Jul 21 16:40 user123

[root@qls ~]# userdel  user02
userdel: user user02 is currently used by process 8333		#用户正在使用  
[root@qls ~]# ps  aux |grep  8333
user02     8333  0.0  0.1 161364  2348 ?        S    17:42   0:00 sshd: user02@pts/1
root       8389  0.0  0.0 112708   976 pts/0    R+   17:46   0:00 grep --color=auto 8333
[root@qls ~]# userdel  user02


4. 查看用户的命令  

#查看用忽的id及组的相关信息

[root@qls ~]# id  root
uid=0(root) gid=0(root) groups=0(root)


[root@qls ~]# yum install  -y  finger

[root@qls ~]# finger   root
Login: root           			Name: root
Directory: /root                    	Shell: /bin/bash
On since Tue Jul 21 17:49 (CST) on pts/0 from 10.0.0.1
   7 seconds idle
No mail.
No Plan.


[root@qls ~]# who
root     pts/0        2020-07-21 17:49 (10.0.0.1)

[root@qls ~]# whoami
root

[root@qls ~]# w
 09:59:15 up 22:14,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         17:49     ?     0.02s  0.00s w


[root@qls ~]# uptime
 09:59:49 up 22:14,  1 user,  load average: 0.00, 0.01, 0.05


2. 用户创建相关的文件

创建用户的时候,没有指定相关信息,系统创建用户是根据两个文件进行创建的    

[root@qls ~]# ll  /etc/login.defs 
-rw-r--r--. 1 root root 2028 Oct 30  2018 /etc/login.defs
[root@qls ~]# ll /etc/default/useradd 
-rw-r--r--. 1 root root 119 Oct 30  2018 /etc/default/useradd




[root@qls ~]# grep  -Ev  '^$|^#'  /etc/login.defs
MAIL_DIR	/var/spool/mail			#接收邮件的目录 
PASS_MAX_DAYS	99999				#密码最大的有效期天数  
PASS_MIN_DAYS	0					#密码最小的有效期 
PASS_MIN_LEN	5					#密码最小的长度  不起作用  root用户限制不了  普通用户最少8位
PASS_WARN_AGE	7					#密码到期前的告警时间 
UID_MIN                  1000		#普通用户最小的UID
UID_MAX                 60000		#普通用户最大的UID
SYS_UID_MIN               201		#系统用户的最小UID
SYS_UID_MAX               999		#系统用户的最大UID 
GID_MIN                  1000		#普通用户的组的最小GID
GID_MAX                 60000		#普通用户的组的最大GID
SYS_GID_MIN               201		#系统用户的组的最小GID
SYS_GID_MAX               999		#系统用户的组的最大GID
CREATE_HOME	yes						#创建用户的时候默认创建家目录
UMASK           077					#默认创建用户的家目录的权限 umask为077   777-077=700
USERGROUPS_ENAB yes					#创建或删除用户的时候,没有指定组,默认创建或删除跟用户相同名称的组
ENCRYPT_METHOD SHA512				#密码的加密规则 


[root@qls ~]# cat /etc/default/useradd
GROUP=100			#当创建用户没有指定组,并且USERGROUPS_ENAB为no的时候,这个选项生效  
HOME=/home			#创建用户的家目录的位置  
INACTIVE=-1			#跟shadow文件的第七列 密码到期后的宽恕时间  -1 密码永不失效   不启用
EXPIRE=				#跟shadow文件第八列  账号密码的失效时间  时间戳   空则表示没有失效时间
SHELL=/bin/bash		#默认的命令解释器  
SKEL=/etc/skel		#默认创建家目录的模板  
CREATE_MAIL_SPOOL=yes	#创建邮件相关信息  

3. 用户命令行故障


[root@qls ~]# passwd   test
Changing password for user test.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@qls ~]# rm  -f  /home/test/.bash*



#家目录里面的环境变量配置文件不存在

-bash-4.2$ 
-bash-4.2$

#解决

-bash-4.2$ pwd
/home/test
-bash-4.2$ cp -a  /etc/skel/.bash*  ./


Permission denied		#权限不足 

[root@qls ~]# mkdir  -m  700  /home/test
[root@qls ~]# ll -d /home/test
drwx------ 2 root root 6 Jul 21 10:53 /home/test
[root@qls ~]# chown  -R  test.test /home/test



-bash-4.2$ cd /home/test
-bash-4.2$ pwd
/home/test
-bash-4.2$ cp -a /etc/skel/.bash* ./
-bash-4.2$ logout


4. 用户的密码信息


#如何设置密码 

管理员可以给任何用户设置密码  密码的长度没有限制  

普通用户只能给自己设置密码  且是无规律的8位以上的密码  



[root@qls ~]# useradd    qls01

[root@qls ~]# passwd   	#默认给当前用户设置密码 
Changing password for user root.
New password: 
[root@qls ~]# passwd    qls01	#给指定的用户设置密码 
Changing password for user qls01.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@qls ~]# 



非交互式设置密码

--stdin

[root@qls ~]# echo  '2'  | passwd  --stdin  qls01
Changing password for user qls01.
passwd: all authentication tokens updated successfully.


#如何设置随机密码  

#如何获得随机数 

[root@qls ~]# echo $RANDOM
28241
[root@qls ~]# echo $RANDOM | md5sum
6c8a1df9e12e9c553d0f9a397b860f4e  -
[root@qls ~]# echo $RANDOM | md5sum | cut -c 1-10
64091f6823
[root@qls ~]# echo $RANDOM | md5sum | cut -c 1-10
df0676f775

#密码设置成功,但是不知道密码 

[root@qls ~]# echo $RANDOM | md5sum | cut -c 1-10  | passwd  --stdin  qls01
Changing password for user qls01.
passwd: all authentication tokens updated successfully.



[root@qls ~]# echo $RANDOM | md5sum | cut -c 1-10 |tee  pass.txt
b676039b3f


[root@qls ~]# echo $RANDOM | md5sum | cut -c 1-10 |tee  pass.txt  | passwd  --stdin  qls01
Changing password for user qls01.
passwd: all authentication tokens updated successfully.
[root@qls ~]# cat pass.txt 
7d53328b61


tee 	#重定向的命令 将数据重定向到指定的文件中,并输出在屏幕上面一份  

	-a		#追加  
	

#设置更复杂的密码 

[root@qls ~]# yum install  -y  expect

选项:

	-l		#指定的密码位数
	
	-d		#指定数字位数
	
	-c		#小写字母位数
	
	-C		#大小字母位数
	
	-s		#特殊字符位数
	
	
[root@qls ~]# mkpasswd  
gC}2atTf9
[root@qls ~]# mkpasswd  -l 24  -d 6 -c 6 -C 6 -s 6
sv_^WF85J@DF5Ng5|3{f3/ng
[root@qls ~]# mkpasswd  -l 24 
9px3Sesrx[ybtbvElubxxltj
[root@qls ~]# mkpasswd  -l 24 
uimYw\Z4amzffhti0eljucgg
[root@qls ~]# mkpasswd  -l 24 -s 24
impossible to generate 24-character password with 2 numbers, 2 lowercase letters, 2 uppercase letters and 24 special characters.
[root@qls ~]# mkpasswd  -l 24 -s 24 -d 0 -c 0 -C 0 
$.$}+?;-~]|)>(#_),[)!#@$

[root@qls ~]# mkpasswd  -l 24 -s 24 -d 0 -c 0 -C 0   | tee  pass.txt  | passwd  --stdin  qls01
Changing password for user qls01.
passwd: all authentication tokens updated successfully.
[root@qls ~]# cat pass.txt 
:{]~"/'%[,+"^*%??%,'?}~$


5. 用户组的管理


什么是用户组  

组分为两类


基本组 		#一个用户只能拥有一个基本组  

附加组			#当基本组的权限不够用户使用的,就出现了附加组   一个用户允许拥有多个附加组  


跟组相关的文件 


[root@qls ~]# ll  /etc/group
-rw-r--r-- 1 root root 573 Jul 21 11:04 /etc/group
[root@qls ~]# ll  /etc/gshadow
---------- 1 root root 449 Jul 21 11:04 /etc/gshadow
[root@qls ~]# 

#以冒号为分隔符  分为4列

[root@qls ~]# cat /etc/group		#用户组的基本信息文件 
root:x:0:
bin:x:1:
daemon:x:2:
mail:x:12:postfix


第一列:	root		#组的名称 

第二列:	x			#组的密码占位符

第三列:	0			#组的GID  

第四列:				#用户名  哪些用户使用此组作为附加组  多个用逗号分割 

#用户组的组密码文件

#以冒号为分隔符  分为四列

[root@qls ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
mail:::postfix

第一列:	root		#组的名称  

第二列:	!或者空		#用户组的密码信息  空或者!是没有密码  

第三列:	空			#用户组的管理者  

第四列:	空			#用户名  哪些用户使用此组作为附加组  多个用逗号分割


[root@qls ~]# usermod  -aG user05,user03,user01  qls01
[root@qls ~]# grep  'qls01'  /etc/group
user01:x:1000:qls01
user03:x:665:qls01
user05:x:1002:qls01
qls01:x:1006:
[root@qls ~]# grep  'qls01'  /etc/gshadow
user01:!::qls01
user03:!::qls01
user05:!::qls01
qls01:!::

6. 用户组的相关命令

1. 创建用户组的命令    groupadd

选项:

	-g		#指定组的ID  GID
	
	-r		#创建系统组  
	  

[root@qls ~]# groupadd   user_group01
[root@qls ~]# tail  -1  /etc/group
user_group01:x:1007:


[root@qls ~]# groupadd  -g 666  user_group02
[root@qls ~]# tail  -1  /etc/group
user_group02:x:666:


[root@qls ~]# groupadd   -r  user_group03
[root@qls ~]# tail  -1  /etc/group
user_group03:x:664:



2. 修改用户组的命令	   groupmod

选项:

	-g		#修改用户组的ID  GID
	
	-n		#修改组的名称  



[root@qls ~]# groupmod   -g 6666  user_group01
[root@qls ~]# grep  'user_group01'  /etc/group
user_group01:x:6666:

[root@qls ~]# groupmod   -n  new_group  user_group01
[root@qls ~]# grep  'new_group'  /etc/group
new_group:x:6666:



3. 删除用户组的命令	   groupdel


[root@qls ~]# groupdel   new_group
[root@qls ~]# grep  'new_group'  /etc/group

#删除作为某个用户的附加组的用户组  删除没有影响 

[root@qls ~]# groupdel  user01




[root@qls ~]# grep  '1002'  /etc/group
user05:x:1002:qls01
[root@qls ~]# grep  '1002'  /etc/passwd
user05:x:1001:1002::/home/user05:/bin/bash
test:x:1002:1003::/home/test:/bin/bash
[root@qls ~]# id user05 
uid=1001(user05) gid=1002(user05) groups=1002(user05)


#删除一个组作为某个用户的基本组   是不能删除的

解决:

	给这里面的用户重新找个基本组 
	
	把用户也一并删除掉 

[root@qls ~]# groupdel   user05
groupdel: cannot remove the primary group of user 'user05'
[root@qls ~]# usermod  -g  1003  user05
[root@qls ~]# id user05 
uid=1001(user05) gid=1003(test) groups=1003(test)
[root@qls ~]# groupdel   user05

posted @ 2021-03-13 10:54  ଲ一笑奈&何  阅读(47)  评论(0编辑  收藏  举报