热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux的用户文件,linux用户及文件管理

帮助命令whatis命令#显示命令的简短功能man命令#查看手册页和命令描述命令--help#适用于外部命令help命令#适用于内部命令type命令#查看命令内嵌还是外部文件管理位

帮助命令

whatis 命令  #显示命令的简短功能

man    命令  #查看手册页和命令描述

命令--help    #适用于外部命令

help    命令  #适用于内部命令

type 命令    #查看命令内嵌还是外部

文件管理

位置判断

绝对路径 :从/开始

相对路径:以 . 或 ..开始的

文件管理

touch/mkdir/mv/rm/cp    #创建/修改/移动/删除/复制

#创建文件

touch    #创建空文件,文件存在修改时间

touch file{1..n}        #批量创建文件

vi  file                      #vi创建文件

cat EOF<<>file    #重定向创建文件

XXXXXX

EOF

echo"xxx">file      #重定向创建文件

#创建目录

mkdir -p/a/b/c            #父目录子目录一起创建

mkdir  -v/a                  #创建显示信息

mkdir -p/a/{1..101}    #批量创建目录

#移动文件

mv file1 file2              #重命名文件

mv /a/file1 /b              #移动文件

#删除文件

rm -r/a/*                      #删除目录下所有文件

rm -rf/a/*                    #强制删除不提示

#复制文件

语法 cp-r 源文件 目标文件

cp -r /a /b                    #递归&#xff0c;包含目录下的子目录一并处理

#查看文件

ls -a 文件                    #显示所有文件及文件夹

ls -l 文件                      #格式化显示目录下的内容列表

cat -n 文件                  #对输出的所有行进行编号

cat -b 文件                #对非空的输出行进行编号

cat -s 文件                #多行的空行合并为一个空行

more 文件                #分布显示文件内容&#xff0c;不支持向前翻页

less 文件                #可前后翻页

head -n 文件            #显示从文件头开始到n的行数&#xff0c;默认显示前10行

tail 文件                  #显示文件尾部内容&#xff0c;默认显示末尾10行

tail -nf 文件              #动态显示文件末尾n行的内容

xfs文件系统备份与恢复

xfs备份介绍

XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。

与传统的UNIX文件系统不同&#xff0c;XFS不需要在dump前被卸载&#xff1b;对使用中的XFS文件系统做dump就可以保证镜像的一致性。这与XFS对快照的实现不同&#xff0c;XFS的dump和restore的过程是可以被中断然后继续的&#xff0c;无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作,把一次dump拆分成多个数据流&#xff0c;每个数据流可以被发往不同的目的地。

首先了解一下xfsdump的备份级别有以下两种&#xff0c;默认为0(即完全备份)

完全备份 0

增量备份 1-9

备份

语法&#xff1a; xfsdump –f 备份存放位置 要备份路径

#交互式备份

xfsdump -f /opt/dump_sdb1 /sdb1

# -L 指定备份会话标签 -M 指定设备备份标签

#非交互式备份

xfsdump -f /opt/dump_sdb1 /sdb1-Ldump_sdb1-Mmedia0

# 指定文件备份

xfsdump -f /opt/dump_sda1_passwd-spasswd /sda1-Ldump_sda1_passwd-Mmedia1

#克隆目录到另一个目录

xfsdump -/sda1 | xfsrestore -/data/

#克隆指定目录到另一个目录

xfsdump--stest /sda1  | xfsrestore-/data/

恢复

语法&#xff1a; xfsrestore –f 指定恢复文件的位置 要恢复的目录

xfsrestore-f /opt/dump_sdb1 /sdb1

#指定恢复单个文件

xfsrestore -f/opt/dump_sdb1-spasswd /sdb1

用户管理

用户分类

超级用户&#xff1a; root  拥有对系统的最高的管理权

普通用户&#xff1a;系统用户 UID:1-999(RHEL7)      1-499(RHEL6)

​                  本地用户 UID:1000&#43;                    500&#43;

虚拟用户&#xff1a;伪用户  一般不会用来登录系统的&#xff0c;它主要是用于维持某个服务的正常运行

#创建用户

useradd -m -u -d- g"初始组" -G"附加组" -s "登陆的shell" "用户"

-m  创建用户主目录/home

-g    设置用户的初始组名称或id

-G    设置用户附属组

-s    设置用户登陆shell &#xff0c;/sbin/nologin  禁止登陆系统

-u      指定用户的uuid

-d    指定用户的主目录

#改变用户信息

usermod -aG 组名 用户名

-u      UID

-d      宿主目录

-g      起始组            #只能有一个

-G      附加组            #可以有多个

-s      登录shell

-L      锁定

#删除用户及家目录

userdel -r user

#创建用户密码

passwd user

echo123456 |passwd --stdin user

#修改密码

chage 用来更改用户密码过期信息

-m&#xff1a;密码可更改的最小天数。为0时代表任何时候都可以更改密码

-M&#xff1a;密码保持有效的最大天数

-W&#xff1a;用户密码到期前&#xff0c;提前收到警告信息的天数

-E&#xff1a;帐号到期的日期。过了这天&#xff0c;此帐号将不可用

-d&#xff1a;上一次更改的日期&#xff0c;为0表示强制在下次登录时更新密码

-I&#xff1a;停滞时期。如果一个密码已过期这些天&#xff0c;那么此帐号将不可用

-l&#xff1a;(list)列出当前的设置&#xff0c;由非特权用户来确定他们的密码或帐号何时过期

#添加用户到指定组

gpasswd

-a&#xff1a;添加用户到组&#xff1b;

-d&#xff1a;从组删除用户&#xff1b;

-A&#xff1a;指定管理员&#xff1b;

-M&#xff1a;指定组成员和-A的用途差不多&#xff1b;

-r&#xff1a;删除密码&#xff1b;

-R&#xff1a;限制用户登入组&#xff0c;只有组中的成员才可以用newgrp加入该组。

gpasswd -a users user

授权

#创建用户

useradd user

#编辑sudoers文件

vi /etc/sudoers

## Allows people in group wheel to run all commands

%wheel ALL&#61;(ALL)      ALL

## Same thing without a password

# %wheel      ALL&#61;(ALL)      NOPASSWD: ALL

use rALL&#61;(ALL)  NOPASSWD:ALL

加%表示组&#xff0c;NOPASSWD表示使用sudo不需要密码认证

文件权限管理

文件基本权限

#查看文件权限

ll /etc/passwd

-rw-r--r--.1root root9305月2306:46 /etc/passwd

p 表示命名管道文件

d 表示目录文件

l 表示符号连接文件

- 表示普通文件

s 表示socket套接口文件&#xff0c;比如我们启用mysql时&#xff0c;会产生一个mysql.sock文件

c 表示字符设备文件

b 表示块设备文件

#文件属性说明

-|rw-|r--|r--|属主|属组|修改时间|对象&#xff1a;文件名

rw-  文件所有者对文件具有读取、写入的权限

r--  用户组里用户则具有读取的权限

r--  其他用户则具有读取的权限

#更改文件的属主和属组

语法&#xff1a;chown chgrp&#43;文件或目录

chown user&#xff1a;user text.txt    更改文件的属主&#xff0c;属组

chown user text.txt                更改文件的属主

chown&#xff1a;user text.txt            更改文件的属组

chown -R user&#xff1a;user /text    更改目录的属主&#xff0c;属组

chgrp user text.txt                更改文件的属组

#修改权限

语法&#xff1a;chmod&#43;  文件或目录

&#43;-&#61;                      添加或者删除对应的权限

r&#61;4&#xff0c;w&#61;2&#xff0c;x&#61;1数字权限

u&#43;-&#61;(rwx)      添加删除拥有者权限

g&#43;-&#61;(rwx)      添加删除组的权限

o&#43;-&#61;(rwx)      添加删除其他的权限

a&#43;-&#61;(rwx)      添加删除所有用户的权限

chmodu&#43;x test.txt    添加拥有者可执行的权限

chmoda-r text.txt    删除所有人可读的权限

#文件默认权限

umask    设定文件的缺省值&#xff0c;从权限中去掉部分权限

umask    000-777

默认创建目录权限为777-022&#61;755

默认创建文件权限为666-022&#61;644

修改umask的值&#xff0c;改变默认文件目录权限

vi/etc/profile | $[HOME]/.bash.profile | $[HOME]/.profile

if[$UID-gt199] && ["&#96;id -gn&#96;"&#61;"&#96;id -un&#96;"];then

umask002

else

umask022

#查看文件权限

ll /etc/passwd

-rw-r--r--.1root root9815月2517:34 /etc/passwd

stat -c %a /etc/passwd

644

stat -c %A /etc/passwd

-rw-r--r--

文件高级权限

特殊权限

SUID&#xff1a;限定&#xff1a;只能设置在二进制可执行程序上面&#xff0c;对目录设置无效。

功能&#xff1a;程序运行时的权限从执行者变更成程序所有者。

SGID&#xff1a;限定&#xff1a;既可以给二进制可执行程序设置&#xff0c;也可以对目录设置。

功能&#xff1a;在设置了SGID权限的目录下建立文件时&#xff0c;新创建的文件的所属组会继承上级目录的所属组。

Stickybit&#xff1a;粘滞位权限是针对目录的&#xff0c;对文件无效&#xff0c;也叫防删除位。

SGID SUID Stickybit

u&#61;4&#xff0c;u&#43;s | g&#61;2&#xff0c;g&#43;s | o&#61;1&#xff0c;o&#43;t

#增加特殊权限

chmod u&#43;s text.txt  对文件需要可执行权限

chmod g&#43;s /text    对目录使用

chmod o&#43;t /text    只能针对目录

chmod 4777 text.txt  对文件需要可执行权限

chmod 2777 /text    对目录使用

chmod 1777 /text    只能针对目录

ACL访问控制列表

ACL: 访问控制列表

它是一种权限分配之外的普遍范式。例如&#xff0c;默认情况下你需要确认3个权限组&#xff1a;UGO。而使用ACL&#xff0c;你可以增加权限给其他用户或组别&#xff0c;可以允许指定的用户A、B、C拥有写权限而不再是让他们整个组拥有写权限。

#ACL参数解释

ACL_USER_OBJ: 相当于Linux里file_owner的权限

ACL_USER: 定义了额外的用户可以对此文件拥有的权限

ACL_GROUP_OBJ: 相当于Linux里group的权限

ACL_GROUP: 定义了额外的组可以对此文件拥有的权限

ACL_MASK: 定义了ACL_USER, ACL_GROUP_OBJ和ACL_GROUP的最大权限

ACL_OTHER: 相当于Linux里other的权限

#查看ACL

getfacl  /etc/passwd

# file: etc/passwd

# owner: root

# group: root

user::rw-

group::r--

other::r--

#设置文件权限

#创建文件

touch  a.txt

#查看acl

getfacl a.txt

# file: a.txt

# owner: root

# group: root

user::rw-

group::r--

other::r--

#设置文件acl

setfacl -m:&#xff1a; a.txt    设置用户&#xff0c;组权限

setfacl -m&#xff1a; a.txt    设置mask的权限

#设置默认目录权限

setfacl -md::&#xff1a; /test 目录中所有新建文件都继承此权限&#xff0c;这个权限对目录本身不生效&#xff0c;并且不会影响目录中已经存在的文件

#删除acl权限

setfacl -x: a.txt 删除用户组acl权限

setfacl -xd:: a.txt 删除默认目录下acl权限

setfacl -b a.txt  删除所有acl权限

#acl权限复制

getfacl  /text | setfacl --set-file&#61;/text1

文件锁

chattr 命令的作用很大&#xff0c;通过chattr命令修改文件属性能够提高系统的安全性&#xff0c;包括(root)但是它并不适合所有的目录&#xff0c;chattr命令不能保护/&#xff0c;/dev&#xff0c;/tmp&#xff0c;/var等目录。

#chattr属性

chattr &#43;-&#61;文件#添加&#xff0c;删除&#xff0c;给予权限

chattr &#43;a

对文件来说&#xff1a;只能在文件中追加数据&#xff0c;但现有数据不能删除也不能进行修改

对目录来说&#xff1a;只能只允许在目录中建立和修改文件&#xff0c;但是不允许删除

chattr &#43;i

对文件来说&#xff1a;不能修改&#xff0c;删除文件&#xff0c;也不能添加和修改其内的数据,但可以查看文件里面的内容

对目录来说&#xff1a;只能修改目录下的文件数据&#xff0c;但不能建立和删除文件

lsattr 文件      #查看文件属性

#举例说明(针对文件)

touchb.txt

chattr&#43;a b.txt

echo"123456">b.txt  无法修改

-bash: b.txt: 不允许的操作

echo"123456">>b.txt &&echook  可以追加

ok

chattr&#43;i b.txt

echo"123456">b.txt

-bash: b.txt: 不允许的操作

echo"123456">>b.txt

-bash: b.txt: 权限不够

catb.txt    可以查看

123456

123456

123456

#举例说明(针对目录)

mkdirb

chattr&#43;a b

touchb/{file1,file2}

rm-rfb/file1

rm: 无法删除"b/file1": 不允许的操作

echo123456>b/file1

catb/file1

123456

chattr&#43;i b

touchb/file4

touch: 无法创建"b/file4":

rm-rfb/file1

rm: 无法删除"b/file1": 权限不够

echoaaaa>b/file1

catb/file1

aaaa

我是MIkel Pan&#xff0c;云计算爱好者&#xff0c;定期更新生活感悟&#xff0c;心灵进化者就在MIkel Pan&#xff0c;喜欢我就来找我吧&#xff01;

博客园地址&#xff1a;http://www.cnblogs.com/plyx/

简书地址&#xff1a;https://www.jianshu.com/u/5986765934f4

内容来源于网络如有侵权请私信删除



推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • Echarts图表重复加载、axis重复多次请求问题解决记录
    文章目录1.需求描述2.问题描述正常状态:问题状态:3.解决方法1.需求描述使用Echats实现了一个中国地图:通过选择查询周期&#x ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • LINUX学习之centos7营救模式
    今天卸载软件的时候,不小心把GNOME的一些组件给卸了,导致桌面无法正常开启,会卡在启动过程中,而我的开机启动模式又是设置为图形界面,所以一开LINUX就卡住了,进入不了命令行界面 ... [详细]
  • 随着我司的应用都开始容器化,相应的ETL流程也需要迁移到容器中。常规的SQL和shell脚本迁移之后执行基本没有问题,主要的问题在于数据接入使用kettle的场景下,kettle启 ... [详细]
  • 详解 Python 的二元算术运算,为什么说减法只是语法糖?[Python常见问题]
    原题|UnravellingbinaryarithmeticoperationsinPython作者|BrettCannon译者|豌豆花下猫(“Python猫 ... [详细]
author-avatar
笑看天下
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有