用户/组基本概念

用户和组:
系统上的每个进程(运行的程序)都是作为特定用户运行
每个文件是由一个特定的用户拥有
访问文件和目录受到用户的限制
与正在运行的进程相关联的用户确定该进程可访问的文件和目录
查看当前登陆的用户信息

  1. [root@xwz ~]# id
  2. uid=0(root) gid=0(root) 组=0(root) 环境
  3. =unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
  4. [root@xwz ~]# id centos
  5. uid=1000(centos) gid=1000(centos) 组=1000(centos),10(wheel)

查看文件owner

  1. [root@xwz ~]# ll /home
  2. 总用量 4
  3. drwx------. 15 centos centos 4096 8 25 11:05 centos

查看运行进程的username

  1. [root@xwz ~]# ps aux |less
  2. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  3. root 2 0.0 0.0 0 0 ? S 15:01 0:00 [kthreadd]
  4. root 3 0.0 0.0 0 0 ? S 15:01 0:00
  5. [ksoftirqd/0]
  6. root 5 0.0 0.0 0 0 ? S< 15:01 0:00
  7. [kworker/0:0H]
  8. root 7 0.0 0.0 0 0 ? S 15:01 0:00
  9. [migration/0]
  10. root 8 0.0 0.0 0 0 ? S 15:01 0:00 [rcu_bh]

和用户组相关的一些文件

  1. /etc/passwd root:x:0:0:root:/root:/bin/bash # 用户信息
  2. 用户名:x:uid:gid:描述:HOME:shell # x密码占位符
  3. /etc/shadow
  4. root:$6$j3YZCHCXpIiDho7x$v4/j6b0zGgyTcfP6jOa1ZY.q.sHvqQp/nsmEowjrtmo/iFKdo4X
  5. piWZm5OpDKqhZEw8OSXTpdAM2JyIgBI.Mz0::0:99999:7:::
  6. $id$salt$encrypted # 密码信息
  7. /etc/group root:x:0: # 组的信息
  8. [root@xwz ~]# man 5 passwd
  9. [root@xwz ~]# man 5 shadow
  10. [root@xwz ~]# man 5 group
  11. [root@xwz ~]# man 3 crypt

加密算法$id

  1. $1 MD5
  2. $5 SHA-256
  3. $6 SHA-512

系统约定

  1. uid:0 特权用户
  2. uid:1~999 系统用户
  3. uid:1000+ 普通用户

root用户
uid是0
所有权力
该用户有权力覆盖文件系统上的普通权限
安装或删除软件并管理系统文件和目录
大多数设备只能由root控制

用户管理

用户组

  1. [root@xwz ~]# groupadd hr
  2. [root@xwz ~]# groupadd sale
  3. [root@xwz ~]# groupadd it
  4. [root@xwz ~]# groupadd fd
  5. [root@xwz ~]# groupadd market
  6. [root@xwz ~]# groupadd net01 -g 2000
  7. [root@xwz ~]# grep 'net01' /etc/group
  8. net01:x:2000:
  9. [root@xwz ~]# groupdel net01

用户

添加用户
useradd常用参数

  1. 常用选项:
  2. -u:指定uid
  3. -g:指定gid
  4. -c:用户注释信息
  5. -d:家目录
  6. -s:指定shell(/etc/shells
  7. -G:附加组
  8. -r:创建系统用户

如果创建一个用户时,未指定任何选项,系统会创建一个和用户名相同的组作为用户的 Primary Group

  1. [root@xwz ~]# useradd user02 -u 503 # 创建用户user02,指定
  2. uid
  3. [root@xwz ~]# useradd user03 -d /user033 # 创建用户user03,指定家
  4. 目录
  5. [root@xwz ~]# useradd user04 -s /sbin/nologin # 创建用户并指定shell
  6. [root@xwz ~]# useradd user05 -G hr,it,fd # 创建用户,指定附加组
  7. [root@xwz ~]# useradd user06 -u 4000 -s /sbin/nologin

![ADUPZHUWA(E9MPLW4@4E.png
注意:
-g-G 仅使用useradd创建用户时使用
-g-G指定的组必须事先存在

删除用户

  1. [root@xwz ~]# userdel user06 # 删除用户user06,但是不删除用户的home和mail
  2. [root@xwz ~]# ll -d /home/user06
  3. drwx------. 3 4000 4000 78 9 1 10:34 /home/user06
  4. [root@xwz ~]# ll /var/spool/mail/user06
  5. -rw-rw----. 1 4000 mail 0 9 1 10:34 /var/spool/mail/user06
  6. [root@xwz ~]# userdel -r user02 # 删除用户user02,并且同时删除用户的home和mail

给用户修改密码

  1. [root@xwz ~]# passwd user05
  2. # root用户可以直接设置普通用户密码
  3. # 普通用户必须要提供原密码,才可以修改自己密码
  4. 常用选项:
  5. -n mindays:指定最短使用期限
  6. -x maxdays:最大使用期限
  7. -w warndays:提前多少天开始警告
  8. -i inactivedays:非活动期限
  9. --stdin:从标准输入接收用户密码
  10. echo "PASSWD" | passwd --stdin username

修改用户组

  1. [root@xwz ~]# usermod -G hr user05 # 覆盖原有的附加组
  2. [root@xwz ~]# usermod -G fd,it user05
  3. [root@xwz ~]# usermod -aG sale user05 # 增加新的附加组
  1. [root@xwz ~]# gpasswd -M user03,user04 fd
  2. [root@xwz ~]# id user03
  3. uid=1002(user03) gid=1008(user03) 组=1008(user03),1001(hr),1004(fd)
  4. [root@xwz ~]# id user04
  5. uid=1003(user04) gid=1009(user04) 组=1009(user04),1004(fd)

将用户从组中删除

  1. [root@xwz ~]# gpasswd -d user03 hr
  2. 正在将用户“user03”从“hr”组中删除
  3. [root@xwz ~]# id user03
  4. uid=1002(user03) gid=1008(user03) 组=1008(user03),1004(fd)

修改用户的shell

  1. [root@xwz ~]# usermod -s /sbin/nologin user03
  2. # 修改用户的shell

no shell

shell 是用户登录后运行的第一个程序
/sbin/nologin 用户无法登录系统,实现管理。仅作为运行进程的用户,访问FTP的用户。安全的用户
/bin/bash 登录系统,实现管理
图形化登录
命令行登录
切换用户
如果设置为/usr/sbin/poweroff,那么一登录就会关机(setenforce 0)
grep ‘bash$’ /etc/passwd 查看允许登录的所有用户

sudo提权

以root身份授权普通用户

  1. [centos@xwz ~]$ useradd u1
  2. -bash: /usr/sbin/useradd: 权限不够
  3. [centos@xwz ~]$ su - root
  4. 密码:
  5. [root@xwz ~]# useradd u1

再/etc/sudoers里wheel组是拥有所有权限的,给用户添加wheel组以提权

  1. [root@xwz ~]# vim /etc/sudoers
  2. %wheel ALL=(ALL) NOPASSWD: ALL
  3. [root@xwz ~]# gpasswd -a centos wheel
  4. [root@xwz ~]# su - centos
  5. [centos@xwz ~]$ useradd u2
  6. -bash: /usr/sbin/useradd: 权限不够
  7. [centos@xwz ~]$ sudo useradd u2
  8. [sudo] centos 的密码:
  9. [centos@xwz ~]$ id u2
  10. uid=1006(u2) gid=1012(u2) 组=1012(u2)

文件权限

基本权限UGO

文件权限设置:可以赋予UGO某个用户或组,能够以何种方式,访问某个文件RQP3I`N~XF3}{R@(4UFTF8A.png

UGO设置基本权限(r,w,x)

权限对象:
属主:u
属组:g
其他人:o
权限类型:
读:r 4
写:w 2
执行:x 1
rwx 7
rw- 6
r— 4
764
rwxrw-r—

特殊权限


suid:借出程序所有者的权限(如果该文件的属主拥有该权限而使用的用户没有该权限的话,用户可以借助属主的权限来操作文件)(示例:passwd)
sgid:接触程序所属组的权限
SBIT:用来做共享目录(示例:根目录下tmp文件夹)
umask:创建文件时,文件权限是666-umask的值
创建文件夹时,文件夹权限时777-umask的值

查看UUID blkid 查看分区和磁盘 lsblk
查看控件使用情况 df -Th
对磁盘进行分区 dfisk /dev/磁盘

权限管理

更改文件的属主,属组:

  1. [root@xwz ~]# chown centos:hr file1 # 改属主、属组
  2. [root@xwz ~]# chown centos file1 # 只改属主
  3. [root@xwz ~]# chown :hr file1 # 只改属组

![IYZC8UDJZ7{}{JWO9B}TD4.png

  1. [root@xwz ~]# chmod u+x file1 # 属主增加执行
  2. [root@xwz ~]# chmod a=rwx file1 # 所有人等于读写执行
  3. [root@xwz ~]# chmod a=- file1 # 所有人没有权限
  4. [root@xwz ~]# chmod ug=rw,o=r file1 # 属主属组等于读写,其他人只读
  5. [root@xwz ~]# ll file1 # 显示结果

使用数字增加权限

  1. [root@xwz ~]# chmod 644 file1
  2. [root@xwz ~]# ll file1

r,w,x权限对文件和目录的意义
03GKK77SQOAZAPU1SOL5$@K.png

文件的软硬连接

硬链接文件不能跨文件系统,因为硬连接文件是通过同一个inode增加inode值实现的,而不同的文件分区都有自己的inode管理 软连接文件可以跨文件系统,因为软连接是通过文件路径来连接到源文件