当前位置 : 主页 > 网络编程 > PHP >

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

来源:互联网 收集:自由互联 发布时间:2023-10-08
文章目录 ​​1. 用户管理命令​​ ​​2. 用户创建相关的文件​​ ​​3. 用户命令行故障​​ ​​4. 用户的密码信息​​ ​​5. 用户组的管理​​ ​​6. 用户组的相关命令​​ 1.


文章目录


  • ​​1. 用户管理命令​​
  • ​​2. 用户创建相关的文件​​
  • ​​3. 用户命令行故障​​
  • ​​4. 用户的密码信息​​
  • ​​5. 用户组的管理​​
  • ​​6. 用户组的相关命令​​

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

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


上一篇:@vim编辑器的简单介绍
下一篇:没有了
网友评论