linux用户及文件管理
帮助命令
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用户及文件管理的更多相关文章
- Linux用户与“最小权限”原则
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 作为一个Linux用户来说,我们并不需要特别关心下面的机制.但是,当我们去编写一个 ...
- 高效Linux用户需要了解的命令行技能
最近在Quora上看到一个问答题目,关于在高效率Linux用户节省时间Tips. 将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考. 下面介绍的都是一些命令行工具,这些工具 ...
- linux用户及权限管理
[文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...
- Linux用户管理简介
Linux用户管理是Linux的优良特性之一,本文说明了Linux中用户的登录过程和登录用户的类型. 一.Linux用户登录过程 用户要使用Linux系统,必须先进行登录.Linux的登录过程和win ...
- linux系统入门—文件管理
目录 linux系统入门-文件管理 系统目录结构 目录管理 linux系统入门-文件管理 系统目录结构 几乎所有的计算机操作系统都是使用目录结构组织文件.具体来说就是在一个目录中存放子目录和文件,而在 ...
- Linux用户都应该了解的命令行省时技巧
每个Linux用户都应该了解的命令行省时技巧 有网友在问答网站Quora上提问:“有哪些省时小技巧,是每个Linux用户都应该知道的?” Joshua Levy 平常就在 Linux 平台工作,并且他 ...
- linux用户权限相关内容查看
linux用户权限相关内容查看 1 用户信息 创建用户一个名为 webuser 的账号,并填写相应的信息: root@iZ94fabhqhuZ:~# adduser webuser Adding ...
- Linux用户体系和文件权限总结
一. Linux系统用户和用户组相关文件 1. /etc/passwd文件 这个passwd文件是Linux用户信息文件.文件格式说明如下: root:x:0:0:root:/r ...
- linux 用户管理
linux 用户管理 创建一个用户 foo 这个用户只能在/home/foo 上面增加删除文件, foo 不能在其他目录加减文件 useradd -d /home/foo -m foo [root@] ...
随机推荐
- [转]实现Hive数据同步更新的shell脚本
引言: 上一篇文章<Sqoop1.4.4 实现将 Oracle10g 中的增量数据导入 Hive0.13.1 ,并更新Hive中的主表>http://www.linuxidc.com/Li ...
- ASP.NET Core 编码、web编码、网页编码 System.Text.Encodings.Web
System.Text.Encodings.Web 空间包含表示 Web 编码器的基类.表示 HTML.JavaScript 和 Url 字符编码的子类,以及表示仅允许编码特定字符.字符范围或码位的筛 ...
- [EffectiveC++]item24:若所有参数皆需类型转换,请为此采用non-member函数
Declare non-member functions when type conversions should apply to all parameters. 104页 只有当参数被列于参数列( ...
- 43、ThreadPool 、WaitHandle、原子操作InterLocked
ThreadPool 创建线程需要时间.如果有不同的小任务要完成,就可以事先创建许多线程/在应完成这些任务时发出请求.不需要自己创建这样一个列表. 该列表由ThreadPool类托管.这个类会在需要时 ...
- 枚举类型与位域枚举Enum
一.概述 定义一个值类型,其中包含固定值集合.枚举类型变量可以是此集合中的任意一个或多个值.枚举使用enum关键字来声明,与类同级.枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符.枚 ...
- html禁用缓存
<!-- 禁用缓存 --><meta http-equiv="pragma" content="no-cache"><META H ...
- SQL的别名和SQL的执行顺序和SQL优化
SQL的别名 1.不可以在where子句中使用列名的别名,即select name t from emp where t>2999;是不允许的 2.使用别名的好处: 提高SQL的易读性 提高SQ ...
- css根据屏幕大小切换样式
首先html head之间加入: <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, ma ...
- sed.md
SED sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用s ...
- 「BZOJ3226」[Sdoi2008]校门外的区间
题目 首先是开闭区间的处理,我们把\(1.5\)这种数加进来,用\([1.5,6]\)来表示\((2,6]\) 根据离散数学的基本知识,尝试把五个操作转化成人话 把\([x,y]\)变成\(1\) 把 ...