帮助命令

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                    #递归,包含目录下的子目录一并处理

#查看文件

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

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

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

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

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

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

less 文件                #可前后翻页

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

tail 文件                  #显示文件尾部内容,默认显示末尾10行

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

xfs文件系统备份与恢复

xfs备份介绍

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

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

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

完全备份 0

增量备份 1-9

备份

语法: 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/

恢复

语法: xfsrestore –f 指定恢复文件的位置 要恢复的目录

xfsrestore-f /opt/dump_sdb1 /sdb1

#指定恢复单个文件

xfsrestore -f/opt/dump_sdb1-spasswd /sdb1

用户管理

用户分类

超级用户: root  拥有对系统的最高的管理权

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

​                  本地用户 UID:1000+                    500+

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

#创建用户

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

-m  创建用户主目录/home

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

-G    设置用户附属组

-s    设置用户登陆shell ,/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:密码可更改的最小天数。为0时代表任何时候都可以更改密码

-M:密码保持有效的最大天数

-W:用户密码到期前,提前收到警告信息的天数

-E:帐号到期的日期。过了这天,此帐号将不可用

-d:上一次更改的日期,为0表示强制在下次登录时更新密码

-I:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用

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

#添加用户到指定组

gpasswd

-a:添加用户到组;

-d:从组删除用户;

-A:指定管理员;

-M:指定组成员和-A的用途差不多;

-r:删除密码;

-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。

gpasswd -a users user

授权

#创建用户

useradd user

#编辑sudoers文件

vi /etc/sudoers

## Allows people in group wheel to run all commands

%wheel ALL=(ALL)      ALL

## Same thing without a password

# %wheel      ALL=(ALL)      NOPASSWD: ALL

use rALL=(ALL)  NOPASSWD:ALL

加%表示组,NOPASSWD表示使用sudo不需要密码认证

文件权限管理

文件基本权限

#查看文件权限

ll /etc/passwd

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

p 表示命名管道文件

d 表示目录文件

l 表示符号连接文件

- 表示普通文件

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

c 表示字符设备文件

b 表示块设备文件

#文件属性说明

-|rw-|r--|r--|属主|属组|修改时间|对象:文件名

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

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

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

#更改文件的属主和属组

语法:chown chgrp+文件或目录

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

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

chown:user text.txt            更改文件的属组

chown -R user:user /text    更改目录的属主,属组

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

#修改权限

语法:chmod+  文件或目录

+-=                      添加或者删除对应的权限

r=4,w=2,x=1数字权限

u+-=(rwx)      添加删除拥有者权限

g+-=(rwx)      添加删除组的权限

o+-=(rwx)      添加删除其他的权限

a+-=(rwx)      添加删除所有用户的权限

chmodu+x test.txt    添加拥有者可执行的权限

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

#文件默认权限

umask    设定文件的缺省值,从权限中去掉部分权限

umask    000-777

默认创建目录权限为777-022=755

默认创建文件权限为666-022=644

修改umask的值,改变默认文件目录权限

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

if[$UID-gt199] && ["`id -gn`"="`id -un`"];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:限定:只能设置在二进制可执行程序上面,对目录设置无效。

功能:程序运行时的权限从执行者变更成程序所有者。

SGID:限定:既可以给二进制可执行程序设置,也可以对目录设置。

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

Stickybit:粘滞位权限是针对目录的,对文件无效,也叫防删除位。

SGID SUID Stickybit

u=4,u+s | g=2,g+s | o=1,o+t

#增加特殊权限

chmod u+s text.txt  对文件需要可执行权限

chmod g+s /text    对目录使用

chmod o+t /text    只能针对目录

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

chmod 2777 /text    对目录使用

chmod 1777 /text    只能针对目录

ACL访问控制列表

ACL: 访问控制列表

它是一种权限分配之外的普遍范式。例如,默认情况下你需要确认3个权限组:UGO。而使用ACL,你可以增加权限给其他用户或组别,可以允许指定的用户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:: a.txt    设置用户,组权限

setfacl -m: a.txt    设置mask的权限

#设置默认目录权限

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

#删除acl权限

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

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

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

#acl权限复制

getfacl  /text | setfacl --set-file=/text1

文件锁

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

#chattr属性

chattr +-=文件#添加,删除,给予权限

chattr +a

对文件来说:只能在文件中追加数据,但现有数据不能删除也不能进行修改

对目录来说:只能只允许在目录中建立和修改文件,但是不允许删除

chattr +i

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

对目录来说:只能修改目录下的文件数据,但不能建立和删除文件

lsattr 文件      #查看文件属性

#举例说明(针对文件)

touchb.txt

chattr+a b.txt

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

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

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

ok

chattr+i b.txt

echo"123456">b.txt

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

echo"123456">>b.txt

-bash: b.txt: 权限不够

catb.txt    可以查看

123456

123456

123456

#举例说明(针对目录)

mkdirb

chattr+a b

touchb/{file1,file2}

rm-rfb/file1

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

echo123456>b/file1

catb/file1

123456

chattr+i b

touchb/file4

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

rm-rfb/file1

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

echoaaaa>b/file1

catb/file1

aaaa

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

博客园地址:http://www.cnblogs.com/plyx/
简书地址:https://www.jianshu.com/u/5986765934f4

linux用户及文件管理的更多相关文章

  1. Linux用户与“最小权限”原则

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 作为一个Linux用户来说,我们并不需要特别关心下面的机制.但是,当我们去编写一个 ...

  2. 高效Linux用户需要了解的命令行技能

    最近在Quora上看到一个问答题目,关于在高效率Linux用户节省时间Tips. 将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考. 下面介绍的都是一些命令行工具,这些工具 ...

  3. linux用户及权限管理

    [文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...

  4. Linux用户管理简介

    Linux用户管理是Linux的优良特性之一,本文说明了Linux中用户的登录过程和登录用户的类型. 一.Linux用户登录过程 用户要使用Linux系统,必须先进行登录.Linux的登录过程和win ...

  5. linux系统入门—文件管理

    目录 linux系统入门-文件管理 系统目录结构 目录管理 linux系统入门-文件管理 系统目录结构 几乎所有的计算机操作系统都是使用目录结构组织文件.具体来说就是在一个目录中存放子目录和文件,而在 ...

  6. Linux用户都应该了解的命令行省时技巧

    每个Linux用户都应该了解的命令行省时技巧 有网友在问答网站Quora上提问:“有哪些省时小技巧,是每个Linux用户都应该知道的?” Joshua Levy 平常就在 Linux 平台工作,并且他 ...

  7. linux用户权限相关内容查看

    linux用户权限相关内容查看 1   用户信息 创建用户一个名为 webuser 的账号,并填写相应的信息: root@iZ94fabhqhuZ:~# adduser webuser Adding ...

  8. Linux用户体系和文件权限总结

    一.           Linux系统用户和用户组相关文件 1.  /etc/passwd文件 这个passwd文件是Linux用户信息文件.文件格式说明如下: root:x:0:0:root:/r ...

  9. linux 用户管理

    linux 用户管理 创建一个用户 foo 这个用户只能在/home/foo 上面增加删除文件, foo 不能在其他目录加减文件 useradd -d /home/foo -m foo [root@] ...

随机推荐

  1. 为订阅内虚拟机批量安装并配置 Microsoft Anti-Malware 扩展

    本文提供了对订阅内的 Windows 经典部署虚拟机和资源管理器部署虚拟机执行批量安装并配置 Microsoft Anti-Malware 扩展的 PowerShell 脚本. 关于安装 Window ...

  2. .net core系列之《.net core中使用MySql以及Dapper》

    当我们决定使用.Net Core开发的时候,就放弃使用SqlServer的打算吧.那应该选择哪个数据库呢?一般选择MySql的比较多. 接下来我们来演示在.Net Core中使用MySQL吧. 1.原 ...

  3. .net core系列之《在.net core中使用MemoryCache实现本地缓存》

    说到内存缓存MemoryCache不由的让我想起.Net Framework中的MemoryCache,它位于 System.Runtime.Caching 程序集中. 接下来我们来看看.net co ...

  4. Linux虚拟机将ip改为自定义模式网络

    查看当前ip:ifconfig 配置linux的ip地址:vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="dhcp" ...

  5. SQL读取注册表值

    最近写一个自动检查SQL Serve安全配置的检查脚本,需要查询注册表,下面是使用SQL查询注册表值的方法. ) ) ) ) --For Named instance --SET @Instance ...

  6. 内置模块之sys

    一.模块sys sys模块主要对解释器相关的操作 1.常用方法和属性 sys.argv    命令行参数List,第一个元素是程序本身路径 sys.exit(n)  退出程序,正常退出时exit(0) ...

  7. December 24th 2016 Week 52nd Saturday

    The first step is as good as half over. 第一步是最关键的一步. If one goes wrong at the first steps, what shoul ...

  8. 020.2.3 math类

    内容:一个数的最小整数,平方,随机数其他数学上常用的,去API里面找些对象试一下,在Java.lang包里面 Math.ceil()返回一个大于这个小数的最小整数,比如12.56156,返回13 Ma ...

  9. facebook页面种简单测试js调用flash开放的js接口的方法

    无意间折腾出来的,此方法很triky,但是很简单有效. 背景说明: facebook种内嵌的iframe无法直接访问. 解决方法: chrome浏览器为例 1.右键查看iframe源代码,此时进入if ...

  10. fastjson反序列化JdbcRowSetImpl

    Gadget com.sun.rowset.JdbcRowSetImpl setAutoCommit() -> connect() -> InitialContext.lookup() p ...