帮助命令

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. 导入自定义模块model

    编写m2.py,脚本内容如下: #!/usr/bin/python # -*- coding: utf-8 -*- 'its a module test' __author__ = 'mm' impo ...

  2. 转移RMS模拟器

    在PowerShell中识别当前 RMS 模拟器 get-SCOMRMSemulator ?移至另一个管理服务器 –首先将一个新的RMS模拟器管理指定为一个变量 $MS = get-scommanag ...

  3. Python学习---django重点之视图函数

    django重点之视图函数 http请求中产生两个核心对象: http请求:HttpRequest对象,由Django自己创建 http响应:HttpResponse对象,由开发自己创建,必须返回一个 ...

  4. Java学习---Quartz定时任务快速入门

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...

  5. ORA-12514

    ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 监听器目前不知道在 ...

  6. 骑士周游问题跳马问题C#实现(附带WPF工程代码)

    骑士周游问题,也叫跳马问题. 问题描述: 将马随机放在国际象棋的8×8棋盘的某个方格中,马按走棋规则进行移动.要求每个方格只进入一次,走遍棋盘上全部64个方格. 代码要求: 1,可以任意选定马在棋盘上 ...

  7. php性能调优

    第一章  针对系统调用过多的优化 我这次的优化针对syscall调用过多的问题,所以使用strace跟踪apache进行分析. 1.  apache2ctl -X & 使用-X(debug)参 ...

  8. [EffectiveC++]item02:尽量以const,enum,inline代替#define

  9. Yahoo!团队经验:网站性能优化的34条黄金法则

    英文原文:http://developer.yahoo.com/performance/rules.html 1.尽量减少HTTP请求次数 (1)合并文件就是通过把所有的脚本放到一个文件中来减少HTT ...

  10. Discuz!在线中文分词服务

    Discuz!在线中文分词服务是基于API返回分词结果的.在项目中,我们只需要一个函数即可方便地进行分词.关键词提取.以下是根据Discuz!在线分词服务API写的函数,测试可正常运行: 代码代码如下 ...