Linux|常用系统权限管理

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

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

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

vim /etc/motd # 进入编辑

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

用户管理

切换用户

su - <用户名>

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

添加用户

# 添加
useradd <username>

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

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

删除用户

把之前打印的信息删除,可以看到最后通过 cat&grep 搜索用户时已经不输出信息了。 在这里插入图片描述

查看系统当前用户

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

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

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

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

查看虚拟用户

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

切换用户

命令:su - <用户名>

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

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

权限管理

文件权限

在这里插入图片描述 总结

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

目录权限

在这里插入图片描述 总结

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

使用 chmod 修改权限

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

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

# 创建文件
[root@lqc ~/test]# touch a.txt
[root@lqc ~/test]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 28 09:39 a.txt # 文件创建默认 644   r=4 w=2 x=1

# 更改权限,属组可读写执行,属组和其他用户读和执行, 权限值755
[root@lqc ~/test]# chmod 755 a.txt
[root@lqc ~/test]# ll
total 0
-rwxr-xr-x 1 root root 0 Aug 28 09:39 a.txt

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

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

特殊的文件属性

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

# 方法1
chmod u+s  <命令文件>

# 方法2
chmod 4755  <命令文件>

#取消
chmod u-s <命令文件>
chmod 755 <命名文件>   # 755 为一般文件的默认权限值

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

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

# 设置
chmod g+s <命令文件>
chmod 2755 <命令文件>

# 取消
chmod g-s <命令文件>
chmod 755 <命令文件>

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

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

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

合理配置用户权限

在这里插入图片描述

修改文件属主属组

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

创建组

groupadd <组名> # 添加属组

修改组

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

系统中和用户相关的文件

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

禁止普通用户登录

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

给文件加锁

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

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

本文完。