Linux用户限权

297 阅读7分钟
1. 账户的种类:
2. 如何超级管理员:
3. 如何按要求添加用户(组)
4. 如何改密码
5. 如何对已有用户(组)修改基本信息
6. 用户权限

用户的种类:

1.超级管理员: 拥有最高权限的账户(默认叫做root)可以正常登录 人可以使用

2.普通用户: 权限受限的用户 可以正常登录 人可以使用

3.程序用户: 不可以正常登录,只给程序使用,人不能用系统启动的时候, 没有登录用户, 程序用户,专门给程序使用的用户,无需登录,直接启动程序 程序用户是给程序使用 , 普通用户超级管理员用户是给人使用 不登录人使用的用户,只运行一些程序用户 只给运行的程序分配 程序用户

w命令看到当前登录的用户

[root@localhost data]#w 09:31:34 up 启动时间 9:23, 3 users, 当前有三个用户登录 load average: 0.00, 0.01, 0.05 cpu使用情况 5s 10s 15s USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT 用户 登录方式 从哪里登录 登录时间 进程 进程 进程 当前运行的进程 root pts/0 192.168.91.1 08:53 6.00s 0.17s 0.00s w root :0 :0 六11 ?xdm? 2:39 0.17s /usr/libexec/gnome-session-binary --sessio root pts/2 :0 六11 22:27m 0.02s 0.02s bash 并没有rpc 这个用户 rpcuser 1064 0.0 0.0 44512 160 ? Ss 00:08 0:00 /usr/sbin/rpc.statd

组的种类 一个用户一定要有一个基本组
1.基本组: 一个用户一定要有一个基本组 ,且只有一个

2.附加组: 一个用户可以没有附加组,一个用户可以有多个附加组 分别基本组和 附加组?

[root@localhost data]#id zhangsan uid=1000(zhangsan) gid=1000(zhangsan) 组=1000(zhangsan),0(root) 用户排在第一个的组是基本组,后面的都是附加组

uid gid uid :系统用来识别用户的唯一身份标识

gid: 系统用来识别组的唯一身份标识

uid 只能是整数 0-60000 不能重复

超级管理员 uid 一定是0

识别是否为超级管理员只看uid 是否为0

id + 用户名

[root@localhost data]#id root

    uid=0(root) gid=0(root) 组=0(root)

uid 的范围centos7

超级管理员: uid为0

程序用户uid 范围 : 1-999

普通用户uid 范围 :1000 - 60000

修改uid 的范围(补充)

[root@localhost data]#vim /etc/login.defs

/etc/passwd 存放用户信息

每个字段用冒号隔开 ky22:x:1003:1003:nginx:/home/ky22:/sbin/nologin

第一字段:用户名

第二字段:密码占位符

第三字段:uid

第四字段:组id

第五字段:备注信息

第六字段:家目录位置

第七字段:默认shell程序

/etc/shadow 存放密码信息

每个字段用冒号隔开

zhangsan:663/O6NuAjdnApLp2F.V1n.::0:99999:7:::

第一字段:用户名

第二字段:加密后的密码 如果为 * !! 无法登录

第三字段:上一次修改密码时间,数字的含义为 从1970-1-1 到改密码的时间 一共经历多少天

第四字段:最小修改密码间隔时间 如果是0 可以随意修改, 7代表7 天后才可以修改

第五字段: 密码有效期 默认99999天 273年,设置为 7 代表7天要求你重新设置密码

第六字段:密码到期提醒时间 设置为7 代表密码到期前7天会提示你

第七字段:密码过期后的宽限天数 设置为10 表示密码到期后还可以使用10天

第八字段:用户失效时间 同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时 间 到期后无法登录

第九字段:保留字段

useradd 添加用户

通式: useradd [选项].... 用户名

-u 指定uid

-g 指定基本组(组名和gid都可以)

-G 指定附加组(组名和gid都可以)

-d 指定家目录

-M 不建立家目录

-s 指定默认登录shel

-e 指定用户失效时间 可使用 YYYY-MM-DD 的日期格式。

-r 建立系统用户

当建立用户时不加选项

1.会按顺序使用uid号

2.会建立一个 和用户名同名的基本组

3.按顺序使用gid

4.会在/home 建立一个和用户名同名的家目录

5.会将用户信息保存在 /etc/passwd 文件中

[root@localhost zhangsan]#useradd -M -s /sbin/nologin lijiu

[root@localhost zhangsan]#tail -n1 /etc/passwd

    lijiu:x:1009:1009::/home/lijiu:/sbin/nologin

修改密码 passwd

passwd 用户名

改密码 交互

[root@localhost zhangsan]#passwd lisi

更改用户 lisi 的密码 。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

passwd [选项] 用户名

-l 锁定用户 不让登录

-u 解锁

-d 清空密码 无需使用密码直接登录

-S(大写) 查看锁定状态

[root@localhost ~]#passwd -u lisi

解锁用户 lisi 的密码。

passwd: 操作成功

[root@localhost ~]#passwd -d lisi

清除用户的密码 lisi。

passwd: 操作成功

usermod 修改已有用户的属性

-l(小写L) 修改用户登录名

-L (大写) 锁定用户

-U (大写) 解锁用户

-u(小写) 指定uid

-g 指定基本组(组名和gid都可以)

-G 指定附加组(组名和gid都可以)

-d 指定家目录

-M 不建立家目录

-s 指定默认登录shel

-e 指定用户失效时间 可使用 YYYY-MM-DD 的日期格式。

[root@localhost ~]#usermod -s /sbin/nologin lisi

[root@localhost ~]#tail -n1 /etc/passwd

    lisi:x:1002:1002::/home/lisi:/sbin/nologin

[root@localhost ~]#usermod -u 10000 lisi

    usermod: user lisi is currently used by process 16622

[root@localhost ~]#usermod -u 10000 lisi

[root@localhost ~]#tail -n1 /etc/passwd

    lisi:x:10000:1002::/home/lisi:/sbin/nologin

删除用户 userdel

-r 连家目录一起删除

[root@localhost home]#userdel zhangsan

[root@localhost home]#ll

总用量 0

    drwx------.  3  1002 lisi   78 8  26 2021 hehe

    drwx------. 14 lisi  lisi  271 7  31 11:10 lisi

    drwx------.  3 mysql mysql  78 8  25 2021 mysql

    drwx------.  5  1000  1000 128 8  27 2021 zhangsan

[root@localhost home]#userdel -r lisi

[root@localhost home]#ll 总用量 0

    drwx------. 3  1002  1002  78 8  26 2021 hehe

    drwx------. 3 mysql mysql  78 8  25 2021 mysql

    drwx------. 5  1000  1000 128 8  27 2021 zhangsan

rw- 文件的主人 属主 r-- 文件所属的组 属组
r-- 其他人

注意:

1. 文件夹的最小权限 是 x 一定要带上否则无法 进行任何操作,超级管理员不受影响

2. 删除一个文件和所在文件夹权限有关和自身没关系。注意超级管理员

8进制

r w x

1 0 0 4

0 1 0 2

0 0 1 1

       7

#suid

[root@localhost aa]#which passwd /usr/bin/passwd

[root@localhost aa]#ll /usr/bin/passwd

#此处s表示当使用这个命令程序时,把当前用户当成文件的所属主

-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd

[root@localhost aa]#which vim

/usr/bin/vim

[root@localhost aa]#chmod u+s /usr/bin/vim

#给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件

[root@localhost aa]#ll /usr/bin/vim

-rwsr-xr-x. 1 root root 2289640 8月   2 2017 /usr/bin/vim

#SGID

[root@localhost aa]#chmod g+s /usr/bin/vim

[root@localhost aa]#ll /usr/bin/vim -rwxr-sr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim

Sticky 位

#具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

#在目录设置Sticky 位,只有文件的所有者或root可以删除该文件

#sticky 设置在文件上无意义

#Sticky权限设定:

chmod o+t DIR...

chmod o-t DIR..

[root@localhost aa]#chmod o+t /opt/aa

添加Sticky 位

[root@localhost opt]#chmod o-t /opt/aa

#减少Sticky 位