[CentOS入门](六)用户、组、权限

2023-05-16

用户:

用户ID为0的用户为超级用户,0-500之间为系统级用户,为服务保留,通常情况新建的用户UID>500。
用户文件保存在/etc/passwd文件中。

组:

每个用户有一个私有组(默认组),一个用户可以属于多个组,在一个组中的所有用户可以共享文件。
组文件并保存在/etc/group中。

权限:

Linux权限分配基于三种角色:文件归属者、文件归属者的组、第三人。
一个文件权限由文件开头的10个字符表示,通过“ll”命令可以查看。
第1个字符:文件类型。第2-4个字符:属主权限。第5-7个字符:属组权限。第8-10个字符:第三人权限。

如上图所示该文件的属主权限:rw-,属组权限:r–,第三人权限:r–,文件属主:root,文件属组:root。
进程访问一个文件时系统会判断进程的发起者是不是属主,如果是则分配属主权限,如果不是则检查发起者的GID是不是属组,如果是分配属组权限,如果都不是则分配第三人权限。

文件权限:

r:读取、w:写入、x:执行。

目录权限:

r:列出目录(ls)、w:增加删除修改目录中的文件,x:可以查看目录中文件的详细信息(ls -l)

权限管理常用命令:

更改属主/属组:chown、chgrp
chown  用户  文件/目录         //修改文件或目录的属主
chgrp  组  文件/目录              //修改文件或目录的属组
chown  用户:组  文件/目录     //同时修改文件或目录的属主和属组
-R选项:修改目录时,将权限应用于目录中所有文件和目录。
更改权限:chmod
  • 文字法:
    文字法适合用来调整特定角色的权限。
chmod u/g/o[+/-]r/w/x 文件/目录
增加或删除某种权限
u:属主、g:属组、o:第三人、a:包含ugo。
+:添加权限、-:删除权限。
r:读取、w:写入、x:执行
-R 修改目录时,用于递归目录中所有文件
例如:chmod u+x test       //为test文件的属主增加执行权限
  • 数字法:
    数字法简单快捷,一条命令可以调节所有角色的权限。
    r=4,w=2,x=1
权限二进制数字
0000
–x0011
-w-0102
-wx0113
r–1004
r-x1015
rw-1106
rwx1117
例如:
需要将test文件的权限调整为:属主:rwx、属组:r-x、第三人:---,只需执行一条命令。
chmod 750 test

系统中有关用户的关键配置文件:

/etc/passwd:存放用户信息:


第一列:用户名
第二列:占位符(之前用于存放用户密码)
第三列:用户ID
第四列:属组ID
第五列:自定义信息
第六列:用户家目录
第七列:shell程序(默认:/bin/bash,不允许登陆:/sbin/nologin)

/etc/shadow:存放用户密码:


第一列:用户名
第二列:加密密码
第三列:最后一次密码修改时间(修改密码时间减去1970.1.1过了多少天)
第四列:密码两次修改的最短时间
第五列:用户密码过期时间
第六列:密码过期的前多少天通知用户
第七列:密码过期后的几天账号锁定
第八列:账号什么时候失效(从1970.1.1算起)
第九列:保留

/etc/group:存放用户组信息:


第一列:组名称
第二列:保留
第三列:组ID
第四列:组用户列表

用户默认配置:

/etc/skel/
默认情况下新建一个用户的同时,系统会将/skel/文件夹内的所有文件拷贝到该用户的家目录下。

每个用户的家目录都会有三个隐藏文件:

~/bash_profile:用户登录时会执行
~/bashrc:用户登录时会执行
~/bash_logout:用户登出时会执行

  • 通常会把定义命令别名命令写入文件,登陆时执行:
alias 别名="命令"
source 文件名:使文件中定义的命令直接生效(source可用.代替)

新建用户时的默认参数:

/etc/login.defs
也可以使用chage命令修改参数

UMASK值:

用户默认新建文件时权限的反掩码。

普通用户:002

目录(减去反掩码):775
文件(再减去可执行权限):664

root:022

目录(减去反掩码):755
文件(再减去可执行权限):644

特殊权限:

文件:

  • 属主:suid:任何用户执行此命令时身份都能变成该命令文件的属主。
    如:su,执行su后能切换到root,但是需要认证。
  • 属组:sgid:任何用户执行此命令时属组都能变成该命令文件的属组。

    cdmod u/g+s 文件

目录:

  • 其他人:sticky bit:每个人都可以使用该目录,但是只能使用自己创建的文件。
    777的缺点:每个人都可以修改删除其他人的文件。
    chmod o+t 目录
  • 属组:sgid:组内多用户协同工作
    frodo、pippin、sam三个用户都属于IT组。
    770的缺点:每个用户创建文件的权限默认都为664,不能实现协同工作

    chmod g+s 目录:用户创建的文件属组都为IT,可共同读写文件

ACLs:

首先使用chmod分配大权限,然后使用acl微调。不要使用acl分配所有权限。

chmod后acl会失效,需要先设置chmod,再设置acl。

setfacl -m u:用户:rw- 123      //修改用户对123的权限为rw-
setfacl -m u:用户:--- 123        //修改用户对123的权限为---

当一个文件权限后有+的时候说明该文件有acl附加权限:

getfacl 文件                               //查看文件的acl附加权限
setfacl -x u:用户 123                //删除针对用户的特殊权限
  • 判断权限过程:
  1. 判断属主权限
  2. 判断属主ACL
  3. 判断属组权限
  4. 判断属组ACL
  5. 应用other权限

其他命令:

alias 别名="命令"
source 文件名:是文件中定义的命令直接生效(source可用.代替)
useradd 用户名 新建用户
passwd 用户名 修改密码
userdel 用户名 删除账户
-r 删除家目录和电子邮件
usermod 用户名 修改用户
-d 修改家目录
-g 修改默认组
-G 修改第三方组
-s 修改shell位置
getent passwd 用户名 查看用户的家目录位置
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[CentOS入门](六)用户、组、权限 的相关文章

  • 脚本通过 CentOS 安装 mysql-server,无需密码提示

    我的操作系统是 CentOS 6 6 我想知道如何通过 shell 脚本自动安装 mysql server 我发现有一个主题讨论了同样的问题 但在 CentOS 6 上失败了 ubuntu安装mysql无密码提示 https stackov
  • nfsnobody 用户权限

    我已经在两台 CentOS 6 64 机器之间设置了 NFS 文件共享 在服务器上 共享的文件夹最初由 root 用户拥有 在客户端上 它显示为 nfsnobody 所有 当我尝试从客户端写入该文件夹时 出现权限错误 因此 我将服务器上的文
  • 如何在 CentOS 中向 PHP 5 添加curl 支持

    如何在 CentOS 中向 PHP 5 添加curl 支持 安装curl和curl devel后 我需要做哪些事情才能在PHP 5中设置curl 有同样的问题 安装 php common 对我有用 yum install php commo
  • Centos 7 Postgres 服务的环境变量

    最近我遇到了使用自定义 PGDATA 路径启动 postgresql 服务的问题 它尝试查找未初始化的默认数据目录 var lib pgsql 9 3 data 因此触发了这些错误 问题似乎是 Centos 7 上的服务启动器删除了所有环境
  • 在Linux中使用自定义规则在多个端口上运行的SSH服务[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在努力设置一台在多个端口上运行 SSH 服务的服务器 例如端口 22 和 5522 这些端口应该具有一组不同的规则 即 我们为端口 2
  • 如何从 Mac OS X 交叉编译到 Linux x86?

    我正在运行 Mac OS X 10 5 8 并希望使用 GCC 4 1 2 为目标 CentOS 5 3 进行编译 我怎么能 编译GCC 4 1 2工具链及相关工具 使用该工具交叉编译目标 CentOS 5 3 任何帮助是极大的赞赏 最简单
  • 在哪里可以找到 PHP 的错误日志文件?

    在哪里可以找到错误日志文件 我需要检查它们以解决安装后显示的内部服务器错误suPHP https wiki archlinux org title SuPHP 您可以使用lsof https en wikipedia org wiki Ls
  • 导入错误:没有名为 psycopg2 的模块

    在 OpenERP 6 的安装过程中 我想使用以下命令生成一个配置文件 cd home openerp openerp server bin openerp server py s stop after init c home opener
  • 如何将php cURL升级到7.36.0版本?

    我的 CentOS 服务器上有 php curl 7 19 7 但我需要升级到 7 36 0 I tried yum update php curl 但我得到了 Loaded plugins downloadonly fastestmirr
  • 在 CentOS 6.4 中意外删除了符号链接 libc.so.6。如何获得 sudo 权限来重新创建它?

    我不小心删除了符号链接 lib64 libc so 6 gt lib64 libc 2 12 so sudo rm libc so 6 然后我不能使用任何东西 包括ls命令 我输入的任何命令都会出现错误 ls error while loa
  • 在 systemd 服务文件内/内联添加 shell 命令

    我正在运行gunicorn通过 systemd 将服务器作为服务 这是示例service file Unit Description Gunicorn NGINX After network target Service User root
  • PCRE 库版本太旧

    Bug Genie 3 需要 PCRE 库 8 0 或更高版本 你有 版本 7 8 2008 09 05 将您的系统更新到最新版本 你常用的来源 在我查看问题并尝试通过以下步骤更新我的 PCRE 库后 wget the latest sou
  • git-http-backend 与 AuthzUnixGroup 无法正常工作

    我正在尝试在 CentOS 6 机器上的 Apache 2 2 上设置一个 git 存储库 并安装了 git 我尝试过许多不同的方向 但我却不知所措 我目前的情况包括能够clone正常 但完全无法推动 似乎我无法使身份验证位正常工作 因为我
  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • 当安装的 RPM 取代了另一个 RPM 时如何检测升级

    RPM scriptlet 被传入 1 https fedoraproject org wiki Packaging Scriptlets rd Packaging ScriptletSnippets Syntax 操作完成后 系统中将保留
  • 如何在CentOS 5.3上安装php-mongodb?

    我已经在我的 VPS 上安装了 mongoDB 效果很好 现在我想安装 php 驱动程序以使 php 与 mongoDB 一起工作 我跟着蒙戈安装 http www php net manual en mongo installation
  • 套接字错误 10054

    我有一个C S程序 客户端使用socket向服务器发送文件 发送后大约超过700k数据 客户端 在win7上 将收到套接字10054错误 这意味着连接被对等方重置 服务器运行在CentOS 5 4上 客户端是在virtual box中运行的
  • 如何配置 nginx 重写规则以使 CakePHP 在 CentOS 上运行?

    大家好 请帮帮我 我正在尝试在运行 Nginx 和 Fact CGI 的 Centos 服务器上设置 cakephp 环境 我已经在服务器上运行了一个 WordPress 站点和一个 phpmyadmin 站点 因此我已经正确配置了 PHP
  • Python pip 安装错误 [SSL: CERTIFICATE_VERIFY_FAILED]

    我已经尝试解决这个问题有一段时间了 由于某种原因 我陷入了 ssl 问题 并且不知道发生了什么 问题 我已经安装了 python2 7 和 easy install2 7 但是当尝试使用 easy install2 7 安装 pip 时 出
  • bdist_rpm 从 Ubuntu 到 CentOs

    我们在 Ubuntu Mac 上进行开发 并将 RPM 部署到 CentOS 这是设置 不能更改太多 问题是 当从 rpm 安装时 软件包会转到 usr local lib python2 7 dist packages 这是 Ubuntu

随机推荐

  • 平衡字符串 c++ || 尺取法

    题目 一个长度为 n 的字符串 s xff0c 其中仅包含 Q W E R 四种字符 如果四种字符在字符串中出现次数均为 n 4 xff0c 则其为一个平衡字符串 现可以将 s 中连续的一段子串替换成相同长度的只包含那四个字符的任意字符串
  • 掌握魔法の东东 II Gym-270437

    题目 从瑞神家打牌回来后 xff0c 东东痛定思痛 xff0c 决定苦练牌技 xff0c 终成赌神 xff01 东东有 A B 张扑克牌 每张扑克牌有一个大小 整数 xff0c 记为a xff0c 范围区间是 0 到 A 1 xff09 和
  • week 13 程序设计 必做题

    A TT 的神秘任务1 xff08 必做 xff09 Example Input span class token number 8 span span class token number 10 span span class token
  • VS2019配置wxWidgets v3.1.5开发环境

    编译wxWidgets库 如果只是使用wxWidgets DLL库可以省略编译这一步 xff0c 直接下载编译好的库 http wxwidgets org downloads 点击 34 Download Windows Binarires
  • 「LOJ#10015」「一本通 1.2 练习 2」扩散(并查集

    题目描述 一个点每过一个单位时间就会向 444 个方向扩散一个距离 xff0c 如图所示 xff1a 两个点 a b 连通 xff0c 记作 e a b xff0c 当且仅当 a b的扩散区域有公共部分 连通块的定义是块内的任意两个点 u
  • haproxy使用技术及配置详解

    以下内容来源于网络 xff0c 感谢原作者 性能 HAProxy借助于OS上几种常见的技术来实现性能的最大化 单进程 事件驱动模型显著降低了上下文切换的开销及内存占用 O 1 事件检查器 event checker 允许其在高并发连接中对任
  • Edge浏览器,找不到本地书签或收藏夹更新时丢失了,我该怎样找回?

    1 不要着急 xff0c 可以通过以下目录找回 Edge浏览器的书签 xff0c 保存地址 xff0c 在最新版本必然保存在以下位置 xff1a C Users 用户名 AppData Local Packages Microsoft Mi
  • ubuntu系统实现远程控制

    今天在做实验的时候发现用视觉模拟激光竟然用之前的远程启动不了节点 xff08 之前是用工作站连接turtlebot上面的TK1的 xff09 xff0c 然后最后还是用了俩台电脑进行远程控制 xff0c 用到了一点小配置 xff0c 在这里
  • C++11多线程并发中的std::thread、std::mutex和std::future

    C 43 43 11 新标准中引入了五个头文件来支持多线程编程 xff1a lt atomic gt lt thread gt lt mutex gt lt condition variable gt 和 lt future gt lt a
  • 银河麒麟操作系统以root用户登录的方法

    默认情况下 xff0c 银河麒麟V10操作系统不允许root用户登录 xff0c 也不告诉你密码是什么 xff0c 但是如果需要root用户登录的时候 xff0c 可以使用命令 xff1a su 输入密码后 xff0c 就能进入root用户
  • 安装卸载EMBY,jellyfin

    这是个回忆记录 xff0c 怕时间久了忘记了 xff0c 记录可能不太全 环境是 xff1a UNAS xff0c debian xff0c 1 安装emby xff0c 去官网下载emby deb 用命名安装 安装后访问正常 卸载就麻烦了
  • centos8 OPEN LDAP部署

    英文安装文档 比较清晰 xff0c 不过为了以防万一还是记录一下 1 安装 openldap openldap servers root 64 yl08 tools yum install openldap openldap servers
  • [CentOS入门](一)Linux基础

    登陆系统方式 xff1a 文本登陆图形登陆远程登陆 终端的使用方式 xff1a centos有5个虚拟文本终端 xff0c 1个图形终端 tty 命令查看当前虚拟终端 系统支持多用户 xff08 包括使用相同用户 xff09 同时登录系统
  • [Linux]LVM (Linux 逻辑卷管理)

    概念 xff1a LVM是 Logical Volume Manager xff08 逻辑卷管理 xff09 的简写 xff0c 它是Linux环境下对磁盘分区进行管理的一种机制 PV xff1a 硬盘和分区都可以标记为PV xff0c P
  • [CentOS入门](二)Linux Bash

    Bash命令 xff1a Shell是用户与操作系统交互的入口 xff0c Bash是最常用的Linux Shell Bash命令格式 xff1a 命令 选项 参数 中间用空格分隔 命令选项参数ls lh var 如果参数中包含空格则需要在
  • 逻辑回归(LogisticRegression)算法及简单案例

    逻辑回归 LogisticRegression 算法及简单案例 大家好 xff0c 我是W 逻辑回归虽然名字有回归 xff0c 但是实际上是分类模型 xff0c 常用于二分类 回归的意思是 xff1a 在二维空间中找到一条最佳拟合直线去拟合
  • [CentOS入门](三)文件系统

    Linux文件系统结构树 xff1a 目录中颜色的含义 xff1a 青色 xff1a 指向另外一个位置 xff0c 软连接 ls显示文件夹中的文件链接指向位置 xff1a ls folder l蓝色 xff1a 一个文件夹绿色 xff1a
  • [CentOS入门](四)编辑器

    vim xff1a vi vim是一种Linux自带的文本编辑器 xff0c 也是常用的文本编辑器之一 xff0c vim相对于vi增加了代码颜色等功能 部分Linux最小化安装时会预装vi xff0c 但不包含vim xff0c 手动安装
  • [CentOS入门](五)系统软件管理

    RPM RPM是由红帽开发 xff0c 用于管理软件包的组件 xff0c 但是其原始设计理念是开放式的 xff0c 包括OpenLinux S u S E 以及Turbo Linux等Linux的分发版本都有采用 rpm是软件的最小单位 r
  • [CentOS入门](六)用户、组、权限

    用户 xff1a 用户ID为0的用户为超级用户 xff0c 0 500之间为系统级用户 xff0c 为服务保留 xff0c 通常情况新建的用户UID gt 500 用户文件保存在 etc passwd文件中 组 xff1a 每个用户有一个私