Linux批量创建用户、passwd、shadow、组管理、group、gshadow、默认配置文件login.defs、切换用户su、提升权限(一)

Linux批量创建用户、passwd、shadow、组管理、group、gshadow、默认配置文件login.defs、切换用户su、提升权限

在Linux中用户运行某个程序时,该程序的权限属于当前用户,进程所能够访问资源的权限取决于进程的运行者的身份。如果用户的id号为0,即使不叫root,他也是管理员;就算名字叫root它也可能是普通用户。当有多个不同名字的管理员时他们的id号都是0,不同名字管理员的操作也会分开记录,便于查阅。设置id号的另一便捷之处在于用户文件的交接,即管理员删除原用户名并且创建一个id号相同的新用户,原用户的文件就属于新用户了。在工作中时常要管理用户信息与部门信息,如批量创建用户,批量修改密码等,如果直接修改配置文件则有可能出错,因为配置文件都有相应的格式,许多配置文件必须Tab键打头才能被识别,因此最好使用专属命令修改配置文件。

用户组合权限管理

  1. 资源分配的安全3A 

    • Authentication:认证

    • Authorization:授权

    • Accouting|Audition:审计

  2. 用户(user) 

    • 令牌token

    • 管理员:root id=0

    • 普通用户:系统用户:1-499(cent6),1-999(守护进程获取资源进行权限分配,是为某些系统服务准备的),nologin的类型

    • 登录用户:(centos6)500+,(centos7)1000+,交互式登录

    • 创建新建用户时,自动建立一个同名的私有组(private group),但必须要加入到一个主组(primary group)中

  3. 组(Group) 

    • 管理员组:root,0

    • id user #查看用户uid与名字、gid与名字与groups与所属组名

    • groups user #查看用户所属组名,无id号

    • 普通组:-499,1-999;普通组:500+,1000+

    • Linux组名可与用户名相同,windows不可以#

    • 主组(primary group):一个用户只有一个,并且必须有一个

    • 辅助组(secondary group):一个用户可加入多个

    • 私有组(private group):新建用户自动创建的组

    • 若创建文件的用户被删除了,该文件的拥有者和所属组不显示创建者。如果新建一个同id的用户,则该文件将属于新建用户,所以方便在工作中给新用户交接文件。

    • Linux中识别文件的归属不是看用户名与组名,识别是否管理员不是依据名字,而是依据id号#

  4. 用户信息的配置文件 

    • whatis passwd | man 5 passwd #一般配置文件的帮助信息都在man 5

    • /etc/passwd#:是一个有特定格式的用户及其属性信息文件(名字、UID、GID(primary group号)、描述信息、HOME目录、Shell类型)

    • pwconv:用户密码被转换到了/etc/shadow下,只有superuser才能read

    • pwunconv:不转换用户密码,直接显示在/etc/passwd的:x:位,此时没有shadow文件

    • /etc/shadow#:用户密码及其相关属性(名字、(加密算法.salt.密码)、改口令时间(从1970到今的日数,如果设置为0,下次登入时必须改密码)、最短允许用户更改密码时间、最长允许不更改时间(小于最短时间表示永不允许更改密码),宽限期,账户有效期。

    • 不设密码时为!!,此时不允许登录

      6.jpeg

    • passwd -e fz #马上失效密码,强制用户登录时修改

    • chage -d0 fz #马上失效密码,强制用户登录时修改

    • pwck #检查passwd的错误

    • usermod -U fz #解除:!!:“空密码”,解除两次之后可直接login,无需密码

    • usermod -L fz #锁定账号,不能登录,root能切换

    • getent passwd fz #只显示fz用户的信息

    • getent shadow fz #只显示fz的密码信息

    • $6:sha-512 最新的sha512加密算法 $1:md5-128 #已经不安全了 $5sha-256 #哈希算法是单向加密的

    • authconfig --passalgo=md5 --update #更换加密算法,新用户生效

    • chfn fz #增加第五列的描述信息

    • finger fz #查看fz用户的信息,包括shell类型和登录信息

    • echo jasonmc |passwd --stdin fz #设置密码,明文的,在history中有记录

    • chsh -s /bin/bash fz #更改fz的shell类型

    • /sbin/nologin #是一个可执行文件,shell类型指定为nologin将不可登录

    • touch /etc/nologin  #系统维护,普通用户不能登录。在centos7上可 touch /run/nologin

    • vipw = vi /etc/passwd

  5. 组的配置文件 
    */etc/group#:组及其属性信息 
    */etc/gshadow#:组密码及其相关属性 

    • gpasswd fz #设置组密码,如果组外用户知道密码则可自己加入该组,不安全,一般由root操作

    • 新建文件默认属于当前用户的主组

    • groups user #查看用户所属的组

    • newgrp tom #临时切换当前用户的主组,此时新建文件的组属于tom

    • grpck #检查group文件的错误

    • vigr = vi /etc/group

  6. 创建用户 

    • useradd fz

    • useradd -u 503 fz #创建一个指定uid的用户

    • useradd -u 0 -o fz #忽略检查uid唯一性

    • useradd -g newgroup fz #指定主组

    • useradd -G bin,root,ftp #多个辅助组 fz #指定新的辅助组,覆盖

    • useradd -aG bin,root,ftp fz #追加辅助组,不覆盖

    • useradd -d /home/newhome fz #指定新的家目录,父目录必须有,子目录必须没有

    • useradd -c “haha” #添加注释信息

    • useradd -N fz #不创建同名的主组,加入到id=100的user组

    • useradd -D 来自于 /etc/default/useradd文件 #创建普通用户时的默认选项,如shell类型,密码期限等,家目录及其一堆的文件,这些文件从/etc/skel拷贝,还会创建邮箱。创建系统用户时默认不会创建家目录与邮箱#

    • useradd -r  #创建系统用户

    • /etc/login.defs# #定义了所有的组与用户默认信息,包括邮箱、家目录、密码有效期、UID、加密算法。实质上通过authconfig –passalgo=sha6 –update修改的密码就是改了这个文件的信息。

    • cat <<EOF |newusers #用cat命令逐行输入,非常好用,EOF是多行重定向,或者这样:

    • newusers abc.txt #文件格式fz1:x:3001:3001::/home/fz1:/bin/bash #批量创建用户,注意不要用空行

    • cat <<EOF |chpasswd #cat多行重定向,逐行输入,非常方便,或者这样:

    • cat abc_pass.txt |chpasswd #fz1:lanfazong #批量密码,注意不要又空行

    • cp /etc/skel/.[^.]* /home/fz #复制skel下的文件到手动创建用户的家目录下,否则无法正常登录

    • usermod -u 20000 -g root -G bin,tom -s /bin/csh -d /home/new1 -m -c “hehe test” -l

    • newhehe -f 10 hehe #改了id,组,复制新家,新名字,最后期限(失效通牒)

    • userdel -r fz #删除用户,家目录,邮箱

  7. 组管理 

    • groupmems -l -g root #查看root组的成员

    • groupmems -a fz -g root #增加fz到root组

    • groupmems -d fz -g root #删除

    • groupmod -G “ ” fz #删除所有辅助组

    • id -u fz #uid

    • id -g fz #gid

    • id -G fz #辅助组groups id

    • groups fz #用户所属的组

  8. su切换用户 

    • su user #不完全切换,非登录式切换,造成无法访问原来用户目录的情况,who am i显示登录用户,而不是切换用户

    • su - user #完全切换,登录式切换

    • su - root -c ‘cat /etc/passwd’ #方便普通用户完成root的命令,不必切换

    • 如果普通用户编程管理员(usermod -og 0 fz)再 改回普通用户就会出错#

  9. 安全上下文 

    • 用户运行某个程序时,该程序的权限属于当前用户,进程所能够访问资源的权限取决于进程的运行者的身份。

练习

5.jpg

原创文章,作者:helloc,如若转载,请注明出处:http://www.178linux.com/27382

(0)
hellochelloc
上一篇 2016-08-03 09:19
下一篇 2016-08-03 10:08

相关推荐

  • 每日一练–8.8 sed,vim

     1 、删除/etc/grub2.conf 文件中所有以空白开头的行行首的空白字符     sed  's/^[[:space:]]//g' /etc grub2.conf  2 、删除/etc/fstab 文件中所有以# 开头,后面至少跟一个空白字符的行的行首的# 和空白字符   &n…

    Linux干货 2016-08-12
  • 逻辑卷管理器LVM使用简介

    逻辑卷管理器(LVM) 原理图如下: 先准备一个分区/dev/sdb1,注意也存在ID问题,选择8e。 1.先把磁盘变成物理卷 在做这步前可以先看下系统中存在的物理卷,没有就什么都不会显示。 把我们准备好的两个磁盘变成物理卷,注意我那使用旧的格式化的分区磁盘,可能会出现上面有文件系统或者卷标类型的问题,所以尽量使用新磁盘做实验。如果出现这种情况,可以使用dd…

    2017-05-02
  • rsync+inotify实现数据的实时同步更新

      rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样就可以解决同步数据的实时性问题。 一、rsync的优点与不足 rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的…

    2018-01-06
  • Linux下/proc目录详解

    Linux下/proc目录详解 proc目录总的概述 proc下有关进程的目录概述 proc下针对Linux系统相关的参数目录概述 /proc目录总的概述 1.首先,我们可以使用ll命令查看下/proc目录,如下 [root@centos6 ~]# ls -l /proc total 0 dr-xr-xr-x. 8 root root 0 May 19 04…

    Linux干货 2017-05-20
  • nginx安装配置

    nginx安装配置 Nginx介绍 Engine X是一个高性能、高并发的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。 Nginx优点 高并发:Nginx 是一个很强大的高性能Web和反向代理…

    Linux干货 2016-11-08
  • lvs集群学习笔记之原理

    lvs集群学习笔记之原理 lvs集群学习笔记之原理 集群 负载均衡 lvs 原理 lvs集群学习笔记之原理 什么是集群 什么是负载均衡 负载均衡解决方案 lvs简介 lvs内核空间模型 lvs特点 lvs实现方式 lvs实现方式之nat模型 lvs实现方式之dr lvs实现方式之tun lvs实现方式之FULLNAT lvs之算法 静态算法   &…

    Linux干货 2017-01-03