Linux中的账号权限管理
一、用户账号和组账号概述
Linux基于用户身份对资源访问进行控制
1.1、用户账号
超级用户:root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。
普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
程序用户∶在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail 等。
1.2、组账号
基本组 (私有组)∶基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4字段记录的即为该用户的基本组 GID 号。
附加组 (公共组)∶ 用户除了基本组以外,额外添加指定的组。
可以理解为基本组在创建系统时用户自带的组,附加组为用户自己加入的组。
UID∶ 用户标识号
GID∶ 组标识号
root 用户账号的 UID和GID 号为固定值 0
程序用户账号的 UID和GID 号默认为 Centos5,6∶ 1~499,Centos7∶1~999
普通用户的 UID和GID 号默认为 Centos5,6∶ 500~60000,Centos7∶ 1000~60000
二、用户账号设置操作
2.1、用户账号文件/etc/passwd
保存用户名称、宿主目录、登录Shell等基本信息
文件位置在/etc/passwd中,每一行对应一个用户的账号记录,多项操作命令都可进行查看,我们以vim /etc/passwd为例
字段分析:
字段一(root):用户账号的名称
字段二(x):用户密码占位符“x”
字段三(0):用户账号的UID号
字段四(0):所属基本组账号的GID号
字段五(root):用户全名
字段六(/root):宿主目录(家目录)
字段七(/bin/bash):登录shell信息(/bin/bash为可登录系统,/sbin/nologin和/bin/false为禁止用户登录系统)
2.2、用户账号文件/etc/shadow
保存用户的密码、账号有效期等信息
文件位置在/etc/shadow,每一行对应一个用户的密码记录,多项操作命令都可进行查看,我们以vim /etc/shadow为例
字段分析:
字段一(root):用户帐号的名称
字段二(密码):使用MD5加密的密码字串信息,当为"*"或"!!"时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统
字段三:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
字段四(0):密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制
字段五(99999):密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制
字段六(7):提前多少天警告用户密码将过期,默认值为7
字段七:在密码过期之后多少天禁用此用户
字段八:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用
字段九:保留字段(未使用)
2.3、添加用户账号
添加用户账号 useradd 或者 adduser,在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录。
若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/qroup 和/etc/qshadow文件中。
例如我想创建一个名称为abc,UID号为3000,基本组GID号为1000,失效时间在今年年底,且可以登录系统的账户
操作命令应该为:useradd -d /home/abc -u 3000 -g 1000 -e 2021-12-31 -s /bin/bash abc
注:此时还不能登入操作系统,还需配置密码才可
2.4、设置/更改用户口令passwd
root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码。普通用户却只能执行单独的"passwd"命令修改自己的密码。
例如上面创建的abc用户,如果进行passwd—l操作就会锁定账户,登录界面就不会显现
2.5、修改用户账号的属性usermod
-u -d -e -g -G -s选项意义和useradd选项意义相同
-U与passwd-u意义相同
-L与passwd-l意义相同
例如将abc用户登录名改为123,操作命令应该是:usermod -l 123 abc
2.6、删除用户账号userdel
userdel +用户名 只删除用户名
userdel -r +用户名 表示连用户的宿主目录一起删除
2.7、用户账号的初始配置文件
useradd命令添加一个新的用户账号后会在该用户的宿主目录中建立一些初始配置文件,一般为隐藏文件
这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件
主要的用户初始配置文件有:~/.bash-profile ~/.bashrc ~/.bash-plogout
用户宿主目录下的初始配置文件 只对当前用户有效
~/.bash profile:此文件中的命令将在该用户每次登录时被执行,它会设置一些环境变量,并且会调用该用户的~/.bashrc文件
~/.bashrc:此文件中的命令会在每次打开新的bash shell时(也包括登录系统)被执行,并且会调用/etc/bashrc(全局系统配置)文件
~/.bash logout:此文件中的命令将在用户每次退出登录或退出bash shell时执行
全局配置文件对所有用户有效
/etc/profile:这个文件是为系统全局变量配置文件,可通过重启系统或者执行source /etc/profile 命令使profile文件被读取
/etc/profile.d/:这个文件实际上.是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本
/etc/bashrc:每一个运行bash shell的用户都会执行此文件,可通过执行bash 命令打开一个新的bash shell时,使 bashrc文件被读取
当有些配置想在每个bash环境中都执行,可以写进/etc/bashrc中,或者写进 ~/.bash profile中,不过需要加上export来使它每次启动都生效
三、组账号文件
与用户账号文件相类似
/etc/group:保存组账号基本信息
/etc/gshdow:保存组账号的密码信息
字段分析:
字段一(root):组账号的名称
字段二(x):占位符“x”
字段三(0):组账号的GID号
字段四:组账号包含的用户成员(一般不包括基本组对应的用户账号,包含的是附加组成员),多个成员之间用逗号分割
3.1、添加组账号groupadd
goupadd [-g GID] 组账号名
例如添加一个GID号为1234,名字为111的组账号:groupadd -g 1234 111
3.2、添加删除组成员
gpasswd命令:设置组账号密码(极少用)、添加/删除组成员
例如将abc用户添加到111组内:gpasswd -a abc 111
3.3、删除组账号groupdel
操作命令:groupdel 组账号名
四、文件/目录的权限和归属
4.1、查询账号信息
查询用户所属组:groups 【用户名】
查询用户身份标识:id 【用户名】
查询用户账号的登录信息:finger 【用户名】(注:需要先安装finger软件包)
查询已登录到主机用户信息:w、who、users命令
此命令还可以查询到cpu的负载情况等
4.2、文件/目录的权限和归属
访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
归属(所有权)
属主:拥有改文件或目录的用户账号
属组:拥有改文件或目录的组账号
注:文件默认权限是没有x的,即文件的最大默认权限为666(-rw-rw-rw)
目录默认有x权限,故目录的最大默认权限为777(drwxrwxrwx)
这里的数值都是8进制数值
4.3、设置文件和目录的默认权限umask
umask作用
控制新建的文件或目录的权限
默认权限去除umask的权限为新建的文件或目录的权限(默认权限666或777-umask值=新建文件或目录的权限)
可以通过umask操作命令来查看或修改umask值,默认值为022
小实验:设置umask值为111,创建名称000的txt文件,查看其权限
根据默认权限666相减可得新建的文件权限为555,因文件默认没有x权限,所以遇到单数111,333,555需向前进一位变成222,444,666
4.4、设置文件和目录的权限chmod
chmod命令:chmod 【ugoa】 【+-=】 【rwx】 文件或目录
u代表属主、g代表属组、o代表其他用户、a代表所有用户
+代表增加、-代表去除、=代表设置权限
r代表读、w代表写、x代表运行权限
或者是 chmod nnn 文件或目录
nnn代表三个权限的八进制
常用选项-R:递归修改指定目录下所有子项的权限
4.5、设置文件和目录的归属chown
chown命令
修改属主:chown 属主 文件或目录
修改属组:chown :属组 文件或目录
修改属主和属组:chown 属主:属组 文件或目录
常用选项-R:递归修改指定目录下所有文件、子目录的归属
例如将123.txt文件的属主和属组改为abc和111
chown abc:111 123.txt
Linux中的账号权限管理的更多相关文章
- Linux(3)用户和权限管理
用户, 权限管理 Linux中root账号通常用于系统的维护和管理, 它对操作系统的所有部分具有不受限制的访问权限 在Unix/Linux安装过程中, 系统会自动创建许多用户账号, 而这些默认的用户就 ...
- Linux课程---10、权限管理(权限有哪几种)
Linux课程---10.权限管理(权限有哪几种) 一.总结 一句话总结: r 读 w 写 x 执行 1.drwxr-x--- 2 root root 4096 Jan 20 19:39 mnt ...
- Linux学习系列--如何在Linux中进行文件的管理
文件 在常见的Linux的文件系统中,经常使用能了解到的文件管理系统是分为多个文件夹进行管理的. 如何查看文件路径 pwd ,在文件目录中,会有一个点(.)代表的是当前目录,两个点(..)代表的是当前 ...
- linux 中更改用户权限和用户组的命令chmod,chgrp实例
linux 中更改用户权限和用户组的命令实例; 增加权限给当前用户 chmod +wx filename chmod -R 777 /upload 用户组 chgrp -R foldname zdz ...
- linux中执行命令权限不够怎样处理
在linux中执行命令权限不够就要增加权限,先看遇到的情况 查看权限情况 那就赋予权限 执行命令
- Linux用户及文件权限管理
Linux用户及文件权限管理
- linux中的文件权限chmod
linux中的文件权限chmod 还是GPU集群那点事儿,集群之间磁盘互相挂载,普通用户也可以操作/cu02_nfs./cu04_nfs文件夹,这就牵扯到权限的问题,去google发现所谓的777 ...
- Linux的VMWare中Centos7文件权限管理chown 和 chmod
文件管理 chown chmod 1./根目录下目录功能划分 /boot/ 存放系统启动程序菜单及核心 --可以单独使用文件系统 /etc/ 存放系统中所有配置文件 /bin/ ...
- Linux中用户与用户组管理
1.基础知识 Linux作为一种多用户的操作系统(服务器系统),允许多个用户同时登陆到系统上,并响应每个用户的请求. 任何需要使用操作系统的用户,都需要一个系统账号,账号分为:管理员账号与普通用户账号 ...
随机推荐
- Centos7搭建k8s集群
一.部署环境 操作系统:CentOS Linux release 7.6.1810 (Core) 安装软件: docker:18.06.3-ce kubernetes:v1.15.4 二.部署架构: ...
- 《汇编语言程序设计》(Professional Assembly Language)学习笔记(二)
挖坑:学习笔记(一)讲述如何在 Windows Vmware 上安装 Ubuntu 20.04 实践环境 本文是基于Ubuntu 20.04平台进行实验,下文中的解决方法都基于此前提 问题记录 问题一 ...
- 使用curl断点续传下载文件
办公网络网速不是很好,使用Chrome下载一些软件时不时会中断,恶心的是Chrome居然不支持断点续传下载(为什么chrome的下载不支持断点续传呢?),迅雷自然是不能装的,那怎么办?还好我有大名鼎鼎 ...
- Centos-Springboot项目jar包自启动
CentOS环境下部署Springboot项目的jar包开机自启动. 部署环境 Centos 7.5 Springboot 2.1.x 操作步骤 修改pom 在pom.xml文件中<plugin ...
- CentOS-配置YUM源加速(阿里云、Nexus3)
备份本地源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 配置CentOS6(aliyun ...
- CentOS-Docker安装RabbitMQ(单点)
这里注意获取镜像的时候要获取management版本的,不要获取last版本的,management版本的才带有管理界面. 获取镜像 $ docker pull rabbitmq:management ...
- 其他:Windows10安装自带的Linux
1.首先我们要打开Windows功能 2.在这里把勾打上 3.然后打开 设置 --- 更新和安全 --- 针对开发人员 --- (选择)开发人员模式 --- 确定启动 就行了 4.打开PowerShe ...
- macos 安装telnet命令
在10.12及以下版本,都内置了telnet命令,但是在10.13中,已经取消了 接下来给大家介绍下如何安装telnet命令 打开"终端",输入: /usr/bin/ruby -e ...
- buu 新年快乐
一.查壳 发现是upx的壳. 二.拖入ida,发现要先脱壳. 题外话.总结一下手动脱壳,esp定律: 1.先单步到只有esp红色时,右键数据窗口跟随. 2.到数据窗口后,左键硬件访问,byte和wor ...
- gitlab配置邮箱服务
目录 1. SMTP服务 2. 服务端配置 3. 更新配置 4. 邮件测试 当需要进行 账号注册,创建项目,或合并分支等操作时,可通过邮件通知.邮件验证的方式实现. 1. SMTP服务 用于配置在服务 ...