用户信息文件详解

/etc/passwd

是记录系统用户信息文件

  1. #查看用户信息
  2. cat /etc/passwd
用户名 用户密码信息 用户uid信息 用户gid信息 用户的注释信息 用户家目录信息 用户登录系统方式
root x 0 0 root /root /bin/bash
bin x 1 1 bin /bin /sbin/nologin
sync x 5 0 sync /sbin /bin/sync
shutdown x 6 0 shutdown /sbin /sbin/shutdown
bubu02 x 1052 1052 /home/bubu02 /bin/bash

PS:
/bin/bash —通用的解释器
/sbin/nologin —无法登录系统

/etc/shadow

—系统用户密码文件

/etc/group

—组用户记录文件

/etc/gshadow

—组用户密码信息

用户命令

创建用户命令

useradd

  1. #虚拟用户创建 虚拟用户是没有家目录的
  2. useradd odlboy -M -s /sbin/nologin
  3. -M 不创建家目录
  4. -s 指定使用的shell方式 登录方式,来指定他是不是虚拟用户
  5. -u 指定uid
  6. -g 指定用户组,数值和名称都可以
  7. -G 加入其它用户组
  8. -c 注释

修改用户信息

usermod

  1. #将test用户修改为虚拟用户
  2. usermod test -s /sbin/nologin
  3. -s 修改用户的登录方式
  4. -g 修改用户的主要的组信息
  5. -G 修改用户的附属组信息
  6. -c 修改用户的注释信息

删除用户

userdel

  1. userdel bubu01
  2. -r 彻底删除,
  3. 不加-r可能只删用户,用户组可能还没删,因为其他用户可能隶属这个用户组.所以可能不能完全删除
  4. 用户组命令
  5. groupadd 创建用户组
  6. groupmod 修改用户组
  7. groupdel 删除用户组

chown 修改属主和属组信息
chown -R 对目录所有子的子目录和文件进行修改属主信息

w命令

  1. w
  2. USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
  3. root tty1 19 14:59m 0.07s 0.07s -bash
  4. root pts/0 192.168.14.183 07:53 4:19m 1.30s 1.30s -bash
  5. root pts/1 192.168.14.183 11:54 0.00s 0.76s 0.01s w
  6. pts/x远程登录系统
  7. tty1 本地登录
什么用户登录到系统中 登录的方式 从哪连接的服务器 登录时间 空闲时间 用户操作系统消耗的cpu资源 用户在干什么
USER    TTY    FROM    LOGIN@ IDLE    JCPU    PCPU    WHAT
root tty1         23Sep20    32days   0.04s    0.04s   -bash
root pts/0 183.234.123.117 14:42 4.00s 0.00s 0.00s w
test pts/1 183.234.123.117 15:05 12.00s 0.00s 0.00s -bash

可能出现的问题是,如果遇到两边同时在修改一个文件,双方不知道情况的时候。 可以输入w,查看上面的信息,可以通过/dev/pts/0 进行发送信息给对方。

  1. echo "please quit current account"> /dev/pts/1

test用户端收到信息
用户权限章节 - 图1

last命令

  • 显示的是/etc/passwd 文件信息里,显示谁曾经登录过这个系统

image.png

  • lastlog 显示之前登录信息点

image.png

visudo命令

  1. visudo
  2. 100gg
  3. #visudo命令相当于------>vi /etc/sudoers
  4. #大概在93行到100行之间
  5. sudo
  6. -l 查看已授权的命令
  7. visudo
  8. -c 文件语法检查

image.png

  • 授权单个命令或多个命令

test ALL=(ALL) /usr/sbin/useradd

  • 授权单个命令目录或多个命令目录

test ALL=(ALL) /usr/sbin/*,!/usr/sbin/visudo

  • 添加后得加sudo才可以使用root命令,否则无法执行(test用户下使用)

sudo useradd texx_test

  • 输入sudo useradd texx_test 会出现输入密码,其实是验证授权用户,可以进行屏蔽

test ALL=(ALL) NOPASSWD:/usr/sbin/*,!/usr/sbin/visudo

补充知识点

rwx -w- —x 系统文件数据的9个权限位 系统中实际应该有12权限位
setuid:

权限设置方法:

chmod u+s 文件信息
chmod 4755 文件信息
image.png
将文件属主拥有的能力,分配给所有人

setgid:
setgid权限位设置,将文件属组拥有的能力,分配给所有人

sticky bit:粘滞位 (创建一个共享目录)
作用:可以将不同用户信息放置到共享目录中,实现不同用户数据可以互相查看,但是不可以互相随意修改
设置方法:
chmod o+t 目录信息
chmod 1777目录信息
系统中已经准备好了一个共享目录 1777
/tmp/就是一个共享目录

给文件加锁

请问:当一个文件权限是644,用root编辑文件无法保存,请问是什么原因?
第一种原因:上级目录可能没有权限访问
第二种原因:文件被加锁了

  1. #查看是否上锁了
  2. lsattr /etc/passwd
  3. #设置上锁
  4. chattr +i /etc/passwd
  5. #解锁
  6. chattr -i /etc/passwd