欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

linux用户及文件管理

程序员文章站 2022-08-31 21:58:57
帮助命令 whatis 命令 #显示命令的简短功能 man 命令 #查看手册页和命令描述 命令--help #适用于外部命令 help 命令 #适用于内部命令 type 命令 #查看命令内嵌还是外部 文件管理 位置判断 绝对路径 :从/开始 相对路径:以 . 或 .. 开始的 文件管理 touch/ ......

帮助命令

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