百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

一文掌握linux系统用户、组和文件权限管理

sinye56 2024-11-05 11:45 10 浏览 0 评论

在linux系统日常操作中,包括shell和python自动运维脚本的编写中,经常涉及的操作就是对用户、组和文件等的权限管理,因为这些基础的工作涉及文件的安全,甚至涉及到系统的安全;因此熟练掌握这部分的内容是作为一名it运维人员的必修课。

一、配置文件

1、/etc/passwd存储用户关键信息;

用户名:密码:uid:gid:用户注释:家目录:默认登录的shell

2、/etc/shadow存储用户密码信息;

用户名:加密存储的密码(!没有设置密码):最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段。

关于时间的说明:Linux计算日期的时间是以1970年1月1日作为1不断累加得到的时间。这里显示19300天,也就是说此账号在1970年1月1日之后的第19300天修改的用户密码。

3、/etc/group存储用户组关键信息;

组名:组密码(很少用):gid:组内用户

一个用户只有一个主组(默认组),但可以属于0个或多个附加组;

二、命令使用

1、语法:useradd [选项] username,创建新用户;选项:-d指定某个目录成为家目录,-g指定用户所属的用户组,-u指定一个特定的UID,-M强制不创建用户家目录,-c添加用户注释,-s指定用户登录时使用的shell;

2、语法:passwd username,为用户设置密码;su username切换用户时需输入正确的密码;

3、语法:usermod [选项] username,修改用户信息;选项:-G设置一个附加组,-g修改用户组,-u修改用户的UID,-l修改用户名,-d修改用户家目录,-s修改用户登录使用的shell;usermod -g 1000 username修改用户的GID是1000(主组);id username确认用户相关信息;

《例》:

usermod -l newusername oldusername #修改用户名;

usermod -G addgroupname username #为用户指定附加组;

4、语法:gpasswd [选项],添加删除附加组信息;选项:-a username给用户添加附加组,-d username给用户删除附加组;

《例》:gpasswd -d username groupname;

5、语法:userdel [选项] username,删除用户;选项:-r删除用户的同时删除用户的主目录;

6、语法:groupadd [选项] groupname,创建用户组;选项:-g设置GID;

7、语法:groupmod [选项] groupname,修改组信息;选项:-g设置自定义一个GID,-n设置新的组名;

《例》:groupmod -n newgroupname oldgroupname修改组名;

8、语法:groupdel groupname,删除用户组;

三、文件权限管理

linux中将文档存/取访问身份分为3个级别,owner拥有者、group所属组(拥有者所属的主)、other其他用户(拥有者和所属组内用户以外的用户)、root用户,指超级管理员拥有最高权限的用户,设置文档权限不必考虑root用户;三种身份各有read(dir:ls;file:cat,less),write(dir:touch,mkdir,move;file:edit),execute(dir:cd;file:run)的权限;文件的读写可执行权限(r,w,x)分别对应的数字是,r:4,w:2,x:1;若要有w权限就必须得有r的权限;实际工作中不要设置单独2,3的权限;

-/---/---/---:文件类型(-普通文件,d目录,l软连接,b块设备,c字符设备)/拥有者的权限/所属组的权限/其他人的权限;

1、语法:chmod [选项] 权限模式(ugoa+-=rwx) filename(文件或文件夹),修改文档的权限;选项:-R文档类型为文件夹的时候递归设置权限;给文档设置权限的操作者必须是root或文档的拥有者;设置权限时没有指定身份,默认给所有身份设置;同时设置多个身份权限时,每个身份之间通过,号分开;chmod [选项] nnn filename,数字权限形式;r-4/w-2/x-1/无权限-0;-R文档类型为文件夹的时候递归设置权限;

《例》:把文件夹picture的所属组添加w权限;

chmod -R g+w picture

ls -d 目录名 -l,查看指定目录的权限信息;

四、所有者和所属组管理

1、语法:chown [选项] 所有者[:所属组] filename(文件或目录名),修改文件或目录的所有者和所属组;选项:-R递归设置权限,为目录中的子目录及所有文件设置权限;普通用户不能修改文件的所有者,即使自己是这个文件的所有者也不行;

2、语法:chgrp [选项] 所属组 filename(文件或目录名),修改文件的所属组;选项:-R递归设置权限;

3、umask遮罩码

语法:umask默认权限;表示文档权限的反向掩码,遮罩码;

umask显示umask权限0022,即可获取新建文件和目录的默认权限;新建文件的默认权限644;新建目录的默认权限755;

4、说明

对文件来讲,新建文件的默认最大权限是666,没有执行权限。因为执行权限(x)对文件来讲比较危险,不能在新建文件的时候默认赋予,而必须通过用户手工赋予。

对目录来讲,新建目录的默认最大权限是777,因为对目录而言,执行权限(x)仅仅代表进入目录,所以即使建立目录时直接就默认赋予也没有危险。

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: