Linux -- 用户组和管理权限

用户user

  • Linux用户:Username/UID
  • 管理员: root ,用0来显示
  • 普通用户:1-65535,此范围可突破
  • 系统用户的uid号范围: 1-999 (CentOS7),主要留给系统中的软件程序使用,而不是给我们用户使用。
  • 登陆用户的uid号范围: 1000+(CentOS7)
    -u 可直接查看uid号
[root@CentOS7 ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@CentOS7 ~]# id -u
0
[root@CentOS7 ~]# id lqx
uid=1000(lqx) gid=1000(lqx) groups=1000(lqx)
[root@CentOS7 ~]# id -u lqx
1000
  • 利用ps aux查看系统中应用程序,进而查询应用程序的uid号
[root@CentOS7 ~]# id -u avahi
70

组group

可以把用户分类。批量指定权限,将不同的组设置不同的权限。

  • 进程所能够访问资源的权限取决于进程的运行者的身份
  • Linux组:Groupname/GID
  • 管理员组:root, 0
  • 普通组:
  • 系统组:1-999(CENTOS7)
  • 普通组:1000+(CENTOS7)
    注:允许用户和组同名,且系统中默认存在。
    主组必须有,辅助组可有可无。
[root@CentOS7 ~]# id lqx
uid=1000(lqx) gid=1000(lqx) groups=1000(lqx)
注: gid为组名,groups为辅助组
  • getent group可查看到所有的组列表
  • getent passwd可查看到所有用户列表
[root@CentOS7 ~]# getent passwd lqx
lqx:x:1000:1000:lqx:/home/lqx:/bin/bash
注:命令后跟用户,可只查看某个用户信息。
  1. lqx:第一段指用户名
  2. x:第二段口令。因安全问题,已被屏蔽,早期版本直接显示口令。
  3. 1000:第三段用户uid
  4. 1000:第四段用户主组的id
  5. lqx: 第五段为主组id的描述
  6. home: 为家目录
  7. bash: shell类型,默认为bash

用户和组的配置文件

  • Linux用户和组的主要配置文件:
  1. /etc/passwd:用户及其属性信息(名称、UID、主组ID等)
  2. /etc/group:组及其属性信息
  3. /etc/shadow:用户密码及其相关属性
  4. /etc/gshadow:组密码及其相关属性

用户创建:useradd

  • useradd [options] LOGIN
  1. -u UID
  2. -o 配合-u 选项,不检查UID的唯一性
  3. -g GID:指明用户所属基本组,可为组名,也可以GID
  4. -c “COMMENT”:用户的注释信息
  5. -d HOME_DIR: 以指定的路径(不存在)为家目录
  6. -s SHELL: 指明用户的默认shell程序
    可用列表在/etc/shells文件中
  7. -G GROUP1[,GROUP2,…]:为用户指明附加组,组须事先存在
  8. -N 不创建私用组做主组,使用users组做主组
  9. -r: 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000
  10. -m 创建家目录,用于系统用户
  11. -M 不创建家目录,用于非系统用户
[root@CentOS7 ~]# useradd -r -s /sbin/nologin -u 77 -d /data/mylq -m -G lqx mylq
[root@CentOS7 ~]# getent passwd lq
[root@CentOS7 ~]# getent passwd mylq
mylq:x:77:77::/data/mylq:/sbin/nologin
[root@CentOS7 ~]# ls /data
f1  f1.ink  f2  f22  log  mylq
[root@CentOS7 ~]# ll /data
total 4
-rw-r--r--. 2 root  root   0 Mar 23 11:48 f1
-rw-r--r--. 2 root  root   0 Mar 23 11:48 f1.ink
-rw-r--r--. 1 root  root   0 Mar 23 11:48 f2
lrwxrwxrwx. 1 root  root   2 Mar 23 12:02 f22 -> f2
-rw-r--r--. 1 root  root  20 Mar 23 13:57 log
drwx------. 3 mylq  mylq  78 Mar 23 16:05 mylq
[root@CentOS7 ~]# id mylq
uid=77(mylq) gid=77(mylq) groups=77(mylq),1000(lqx)

解析: 创建用户给数据库使用,所以为系统账号 -r
-s /sbin/nologin的shell类型为 nologin(开机不启动)
-u 77指定uid为77(可使用getent passwd | gerp 77来查看此id是否未被使用)
-d /data/mylq 指定家目录类型
-m 创建家目录
-G lq 指明辅助组
mylq 指定用户名

用户属性修改

usermod [OPTION] login
-s SHELL:新的默认SHELL
-c ‘COMMENT’:新的注释信息
-L 锁定用户
-U 取消锁定
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限

[root@CentOS7 ~]# getent shadow tom lqx
lqx:$6$vcOfjxm4KqHN9Q4V$TirZ/4KvVedWR3oAmBAoKYzUt2JtLbxLtiY68K7QjIcADZILDPtlbPNW0Z0TfA4FFtSmsHPEiO4ZHKDyPHxA2/::0:99999:7:::
[root@CentOS7 ~]# usermod -L lqx
[root@CentOS7 ~]# getent shadow tom lqx
lqx:!$6$vcOfjxm4KqHN9Q4V$TirZ/4KvVedWR3oAmBAoKYzUt2JtLbxLtiY68K7QjIcADZILDPtlbPNW0Z0TfA4FFtSmsHPEiO4ZHKDyPHxA2/::0:99999:7:::
[root@CentOS7 ~]# usermod -U lqx
[root@CentOS7 ~]# getent shadow tom lqx
lqx:$6$vcOfjxm4KqHN9Q4V$TirZ/4KvVedWR3oAmBAoKYzUt2JtLbxLtiY68K7QjIcADZILDPtlbPNW0Z0TfA4FFtSmsHPEiO4ZHKDyPHxA2/::0:99999:7:::

解析:如果用户后面增加了感叹号即为锁定。(lqx:! 6 6 6vcof···),反之则解除锁定(lqx: 6 6 6vcof···)

删除用户

userdel [OPTION]… login

  • -r: 删除用户家目录即所有数据;如果不加-r只是单纯删用户,家目录还存在。
[root@CentOS7 ~]# ll /data
total 4
-rw-r--r--. 2 root  root   0 Mar 23 11:48 f1
-rw-r--r--. 2 root  root   0 Mar 23 11:48 f1.ink
-rw-r--r--. 1 root  root   0 Mar 23 11:48 f2
lrwxrwxrwx. 1 root  root   2 Mar 23 12:02 f22 -> f2
-rw-r--r--. 1 root  root  20 Mar 23 13:57 log
drwx------. 3 mylqx mylqx 78 Mar 23 16:02 mylqx
[root@CentOS7 ~]# userdel -r mylqx
userdel: mylqx mail spool (/var/spool/mail/mylqx) not found
[root@CentOS7 ~]# ll /data
total 4
-rw-r--r--. 2 root root  0 Mar 23 11:48 f1
-rw-r--r--. 2 root root  0 Mar 23 11:48 f1.ink
-rw-r--r--. 1 root root  0 Mar 23 11:48 f2
lrwxrwxrwx. 1 root root  2 Mar 23 12:02 f22 -> f2
-rw-r--r--. 1 root root 20 Mar 23 13:57 log

SU 切换用户

  • su即swich user
  • 用法:su [options…] [-] [user [args…]]
  • 切换用户的方式:
    su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
    su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
  • root su至其他用户无须密码;非root用户切换时需要密码
  • 换个身份执行命令:
    su [-] UserName -c ‘COMMAND’
[root@CentOS7 ~]# su lqx
[lqx@CentOS7 root]$ pwd
/root
[lqx@CentOS7 root]$ exit
exit
[root@CentOS7 ~]# su - lqx
Last login: Sat Mar 23 16:27:00 CST 2019 on pts/2
[lqx@CentOS7 ~]$ pwd
/home/lqx
[lqx@CentOS7 ~]$ su root
Password: 
[root@CentOS7 lqx]# 

注:以root降级切换至用户,不需要口令;如果以用户切换至root则需要口令。

利用管道修改口令

  • –stdin:从标准输入接收用户密码
    echo “PASSWORD” | passwd --stdin USERNAME**
[root@CentOS7 ~]# echo 123456 | passwd --stdin lqx
Changing password for user lqx.
passwd: all authentication tokens updated successfully.

groupadd 建组

  • gtoupadd name建组
  • groupdel name删组
[root@CentOS7 ~]# groupadd lq
[root@CentOS7 ~]# id lqx
uid=1000(lqx) gid=1000(lqx) groups=1000(lqx)
[root@CentOS7 ~]# usermod -G lq lqx
[root@CentOS7 ~]# id lqx
uid=1000(lqx) gid=1000(lqx) groups=1000(lqx),1001(lq)
[root@CentOS7 ~]# groupdel lq

解析:创建组lq;加入到lqx的附加组。如果是主组加就是-g。-G是附加组,不修改原来的主组,只是新增加一个组。

文件权限

  • 文件属性

11

[root@CentOS7 data]# ll f1
-rw-r--r--. 1 root root 0 Mar 23 11:48 f1
[root@CentOS7 data]# chown lqx f1
[root@CentOS7 data]# ll f1
-rw-r--r--. 1 lqx root 0 Mar 23 11:48 f1
[root@CentOS7 data]# chgrp bin f1
[root@CentOS7 data]# ll f1
-rw-r--r--. 1 lqx bin 0 Mar 23 11:48 f1
[root@CentOS7 data]# chown root.root f1
[root@CentOS7 data]# ll f1
-rw-r--r--. 1 root root 0 Mar 23 11:48 f1

解析:

  • 使用chown name将f1的所有者root修改为lqx
  • 使用chgrp name将f1的所属组root修改为bin
  • 使用chown name.name将f1的所属组和所有者都改为root

文件的权限

  • 主要针对三类对象进行定义
    owner: 属主, u
    group: 属组, g
    other: 其他, o
  • 每个文件针对每类访问者都定义了三种权限
    r: Readable
    w: Writable
    x: eXcutable
  • 文件:
    r: 可使用文件查看类工具获取其内容
    w: 可修改其内容
    x: 可以把此文件提请内核启动为一个进程
  • 目录:
    r: 可以使用ls查看此目录中文件列表
    w: 可在此目录中创建文件,也可删除此目录中的文件
    x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录

文件属性

  • chown 设置文件的所有者
  • chgrp 设置文件的属组信息
[root@CentOS7 data]# ll f1
-rw-r--r--. 2 root root 0 Mar 23 11:48 f1
[root@CentOS7 data]# chmod u-rw,g=rw,o=rw f1
[root@CentOS7 data]# ll f1
----rw-rw-. 2 root root 0 Mar 23 11:48 f1
[root@CentOS7 data]# chmod u+rwx f1
[root@CentOS7 data]# ll f1
-rwxrw-rw-. 2 root root 0 Mar 23 11:48 f1

文件权限操作

  • 文件权限(r w x)
  • chmod 文件权限操作命令
[root@CentOS7 data]# ll f1
-rwxrw-rw-. 2 root root 0 Mar 23 11:48 f1
[root@CentOS7 data]# chmod 444 f1
[root@CentOS7 data]# ll f1
-r--r--r--. 2 root root 0 Mar 23 11:48 f1

解析:rw为1,-为0,利用二进制转换10进制,即r–=4
也可直接使用数字法修改权限,如上图所示,r=4、w=2、x=1,-=0。输入444即可将f1文件从rwxrw-rw-改为r–r--r–

  • ACL:Access Control List,实现灵活的权限管理
    除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
    ACL生效顺序:所有者,自定义用户,自定义组,其他人
  • getfacl 可查看文件里对应用户的权限
  • setfacl -b 清楚文件上acl权限
  • setfacl -R -m u:name:rwx /data 给name对data文件夹设置读写执行权限
  • setfacl -Rb /data 清楚data文件夹acl权限,不影响原权限
[root@CentOS7 data]# su lqx
[lqx@CentOS7 data]$ cat f1
[lqx@CentOS7 data]$ exit
exit
[root@CentOS7 data]# setfacl -m u:lqx:0 f1
[root@CentOS7 data]# su lqx
[lqx@CentOS7 data]$ cat f1
cat: f1: Permission denied
[lqx@CentOS7 data]$ exit
exit
[root@CentOS7 data]# ll
total 1
-r--r--r--+ 2 root root  0 Mar 23 11:48 f1

解析: 利用setfacl -m,将用户lqx对于f1的读权限取消,即为u:lqx:0(如果需要增加读r;写w;执行x,将0替换为对应的字母即可)

以上内容,仅供参考;如有不足之处,欢迎批评指正!谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值