Linux|常用系统权限管理

#Linux [字体 ··]

这篇文章总结了一些 linux 常用的权限管理操作,希望开卷有益。

一个友好的操作——登录提示

配置/etc/motd文件,实现用户登录后显示提示信息。

1vim /etc/motd # 进入编辑

进入编辑:

在这里插入图片描述
登录提示效果:
在这里插入图片描述

用户管理

切换用户

1su - <用户名>

==注意使用 su 时一定要带“-”否则用户的某些环境变量不会及时刷新==

添加用户

1# 添加
2useradd <username>

创建普通用户

在这里插入图片描述
为普通用户设置密码
在这里插入图片描述

创建虚拟用户 虚拟用户不能登录 shell 也没有家(home 下的以用户名命名的文件夹),当然也不用设置密码,他的作用是操作管理系统服务。例如,sshd、postfix 等 创建一个 www 用户,用来管理 web 服务,例如用来作为启动 nginx、apache 的用户。

在这里插入图片描述

删除用户

把之前打印的信息删除,可以看到最后通过 cat&grep 搜索用户时已经不输出信息了。

在这里插入图片描述

查看系统当前用户

查看所有用户 每行第一个英文串为用户名

 1[root@lqc ~]# cat /etc/passwd
 2root:x:0:0:root:/root:/bin/bash
 3bin:x:1:1:bin:/bin:/sbin/nologin
 4daemon:x:2:2:daemon:/sbin:/sbin/nologin
 5adm:x:3:4:adm:/var/adm:/sbin/nologin
 6lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
 7sync:x:5:0:sync:/sbin:/bin/sync
 8shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
 9halt:x:7:0:halt:/sbin:/sbin/halt
10mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
11operator:x:11:0:operator:/root:/sbin/nologin
12games:x:12:100:games:/usr/games:/sbin/nologin
13ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
14nobody:x:99:99:Nobody:/:/sbin/nologin
15systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
16dbus:x:81:81:System message bus:/:/sbin/nologin
17polkitd:x:999:998:User for polkitd:/:/sbin/nologin
18tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
19abrt:x:173:173::/etc/abrt:/sbin/nologin
20sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
21postfix:x:89:89::/var/spool/postfix:/sbin/nologin
22ntp:x:38:38::/etc/ntp:/sbin/nologin

查看可登陆用户 过滤一下,普通用户的 shell 是/bin/bash 的

1[root@lqc ~]# cat /etc/passwd | grep "/bin/bash"
2root:x:0:0:root:/root:/bin/bash
3elltor:x:1000:1000::/home/elltor:/bin/bash

查看虚拟用户

 1[root@lqc ~]# cat /etc/passwd | grep "/sbin/nologin"
 2bin:x:1:1:bin:/bin:/sbin/nologin
 3daemon:x:2:2:daemon:/sbin:/sbin/nologin
 4adm:x:3:4:adm:/var/adm:/sbin/nologin
 5lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
 6mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
 7operator:x:11:0:operator:/root:/sbin/nologin
 8games:x:12:100:games:/usr/games:/sbin/nologin
 9ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
10nobody:x:99:99:Nobody:/:/sbin/nologin
11systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
12dbus:x:81:81:System message bus:/:/sbin/nologin
13polkitd:x:999:998:User for polkitd:/:/sbin/nologin
14tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
15abrt:x:173:173::/etc/abrt:/sbin/nologin
16sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
17postfix:x:89:89::/var/spool/postfix:/sbin/nologin
18ntp:x:38:38::/etc/ntp:/sbin/nologin
19www:x:1001:1001::/home/www:/sbin/nologin

切换用户

命令:su - <用户名>

超级管理员、普通用户和虚拟用户

超级管理员是 root,对系统有绝对的权限,只要拿到这个账户你就可以在服务器上为所欲为了;普通用户是超级管理员创建出来的用户,并且可以登录 shell,普通用户在服务上拥有最多的是读的权限,创建文件也只有在 home 和 temp 目录下,如果想拥有更多的权限需要超级管理员授权;虚拟用户是应用程序的管理进行,拥有的权限比普通用户多,但不能登录,通常我们说的守护进程就是以虚拟用户运行的进程。

权限管理

文件权限

在这里插入图片描述
总结

  • root 用户对所有文件有绝对的权限,只要有了执行权限,root 用户就可以做任何事情
  • 对于文件来说,写的权限和执行的权限都需要读的权限
  • 如果想要对文件进行操作,必须对文件赋予读权限

目录权限

在这里插入图片描述
总结

  • root 用户有绝对权力
  • 对于目录来说,写的权限和读的权限都需要有执行的权限配合
  • 如果相对目录进行操作必须对目录赋予执行的权限

使用 chmod 修改权限

chmod 用来修改用户、用户组的权限。

修改文件、文件的读、写、执行权限 格式: chmod nnn 文件/文件夹 ,其中 n 为数字, 第一个 n 为属主权限,第二个为属组权限,第三个为其他用户权限

 1# 创建文件
 2[root@lqc ~/test]# touch a.txt
 3[root@lqc ~/test]# ll
 4total 0
 5-rw-r--r-- 1 root root 0 Aug 28 09:39 a.txt # 文件创建默认 644   r=4 w=2 x=1
 6
 7# 更改权限,属组可读写执行,属组和其他用户读和执行, 权限值755
 8[root@lqc ~/test]# chmod 755 a.txt
 9[root@lqc ~/test]# ll
10total 0
11-rwxr-xr-x 1 root root 0 Aug 28 09:39 a.txt

如果是为文件夹及其子文件夹和文件设置权限时要加参数 -R 递归进行修改属性。

通过加减权限符修改文件属性

加粗样式

特殊的文件属性

所有用户执行命令的权限(前提可读写)

1# 方法1
2chmod u+s  <命令文件>
3
4# 方法2
5chmod 4755  <命令文件>
6
7#取消
8chmod u-s <命令文件>
9chmod 755 <命名文件>   # 755 为一般文件的默认权限值

普通用户使用一些命令时提示没有执行的权限(linux 文件管理一般是文件创建者用于对文件的第一管理权,root 除外),为了让其他用户(普通用户)能使用一些命令如下方的 cat、rm 等,可以给命令文件设置特殊的权限。

在这里插入图片描述
给命令设置权限后
在这里插入图片描述

所有用户组执行命令的权限 作用是让在同一用户组的用户拥有执行命令的权限。

1# 设置
2chmod g+s <命令文件>
3chmod 2755 <命令文件>
4
5# 取消
6chmod g-s <命令文件>
7chmod 755 <命令文件>

所有用户共享权限 将不同用户目录中的数据放在具有共享权限的目录里,其他用户只能查看,不能修改;如果此目录具有写入权限,则其他用户才可以创建,但仍不能修改其他用户的文件。

1chmod o+t <文件夹>	# 其他用户可以查看
2chmod 1755 <文件夹>	# 其他用户只能查看
3chmod 1777 <文件夹>	# 其他用户可以查看和创建

/var 下的 tmp 就是一个所有用户共享的目录(该目录权限值 1777),此目录其他用户(other)具有写 w 权限,普通用户可以创建和查看里面的文件。

在这里插入图片描述

合理配置用户权限

在这里插入图片描述

修改文件属主属组

格式:chmod 属主:属组 <文件/文件夹>chmod 属主.属组 <文件/文件夹> ,使用参数-R 进行递归修改。

创建组

1groupadd <组名> # 添加属组

修改组

1groupmod nnn <文件、文件夹>		# 设置属组权限
2groupmod +<rwx>  <文件、文件夹>	# 为属组添加读、写、执行权限
3groupmod -<rwx>  <文件、文件夹>	# 删除权限

系统中和用户相关的文件

  • /etc/passwd 记录用户信息文件
  • /etc/shadow 系统用户密码文件
  • /etc/group 组用户记录文件
  • /etc/gshadow 组用户密码信息

禁止普通用户登录

1)删除普通用户 2)修改/etc/passwd 的登录方式为/sbin/nologin

给文件加锁

给文件加锁的目的是防止错误删除,加锁后的文件 root 用户无法直接删除。如果在系统中隐藏了 chattr 命令,除非找到 chattr 命令文件或者重新下载该命令,否则无法删除文件。

1# 加锁
2chattr +i <file>
3# 去锁
4chattr -i <file>
5# 可以把/bin/chattr命令移动到其他位置,并修改名称,提升系统安全性

本文完。


博客没有评论系统,可以通过 邮件 评论和交流。 Top↑