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

1|0

1|01. 用户管理命令

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

1|02. 用户创建相关的文件

创建用户的时候,没有指定相关信息,系统创建用户是根据两个文件进行创建的 [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 #创建邮件相关信息

1|03. 用户命令行故障

[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

1|04. 用户的密码信息

#如何设置密码 管理员可以给任何用户设置密码 密码的长度没有限制 普通用户只能给自己设置密码 且是无规律的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 :{]~"/'%[,+"^*%??%,'?}~$

1|05. 用户组的管理

什么是用户组 组分为两类 基本组 #一个用户只能拥有一个基本组 附加组 #当基本组的权限不够用户使用的,就出现了附加组 一个用户允许拥有多个附加组 跟组相关的文件 [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:!::

1|06. 用户组的相关命令

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

__EOF__

本文作者ଲ小何才露煎煎饺
本文链接https://www.cnblogs.com/zeny/p/15121637.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ଲ小何才露煎煎饺  阅读(56)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示